กลับสู่คอร์สเรียน
AI021 Professional

คู่มือการเขียนโปรแกรม CUDA

แหล่งข้อมูลทางการและครอบคลุมสำหรับนักพัฒนาที่ต้องการเรียนรู้โมเดลการเขียนโปรแกรม CUDA และวิธีเขียนโค้ดประสิทธิภาพสูงที่ทำงานบนหน่วยประมวลผลกราฟิกของ NVIDIA คู่มือนี้ครอบคลุมสถาปัตยกรรมแพลตฟอร์ม ชุดคำสั่งการเขียนโปรแกรม คุณสมบัติฮาร์ดแวร์ขั้นสูง และข้อมูลเทคนิคต่างๆ

5.0
30.0h
1762 ผู้เรียน
1 การถูกใจ
ปัญญาประดิษฐ์
เริ่มเรียน

ภาพรวมคอร์สเรียน

📚 สรุปเนื้อหา

แหล่งข้อมูลทางการและครบถ้วนสำหรับนักพัฒนาที่ต้องการเรียนรู้โมเดลโปรแกรม CUDA และวิธีเขียนโค้ดประสิทธิภาพสูงที่ทำงานบนหน่วยประมวลผลกราฟิกของ NVIDIA คู่มือนี้ครอบคลุมสถาปัตยกรรมแพลตฟอร์ม หน้าที่การใช้งานของโปรแกรม การใช้คุณสมบัติฮาร์ดแวร์ขั้นสูง และรายละเอียดทางเทคนิค

เชี่ยวชาญศิลปะของการคำนวณแบบขนานด้วยคู่มือมาตรฐานในอุตสาหกรรมสำหรับ NVIDIA CUDA

ผู้เขียน: บริษัท NVIDIA Corporation

คำขอบคุณ: สิทธิ์การใช้งาน © 2007-2024 บริษัท NVIDIA Corporation และบริษัทในเครือ สงวนลิขสิทธิ์ทั้งหมด

🎯 เป้าหมายการเรียนรู้

  1. กำหนดบทบาทของโฮสต์ (โปรเซสเซอร์) และอุปกรณ์ (กราฟิกไพเพอร์) ภายในระบบไฮบริด
  2. อธิบายโมเดลโปรแกรมแบบ SIMT และโครงสร้างระดับชั้นของเธรด บล็อก และกริด
  3. แยกความแตกต่างระหว่างรหัส PTX (Parallel Thread Execution) และรหัสไบนารี (cubins) และอธิบายว่าการคอมไพล์แบบจุดเวลา (JIT) ช่วยให้เกิดความเข้ากันได้ได้อย่างไร
  4. พัฒนาและคอมไพล์เคอร์เนล CUDA: เขียนฟังก์ชัน global กำหนดการดำเนินการด้วยสัญลักษณ์สามชั้น และจัดการกระบวนการคอมไพล์โดยใช้ NVCC
  5. ปรับปรุงการจัดการหน่วยความจำและการเคลื่อนย้ายข้อมูล: แยกแยะโมเดลหน่วยความจำแบบรวม (Unified), แบบระบุชัด (Explicit), และแบบแมป (Mapped) และนำหน่วยความจำโฮสต์ที่ตรึงหน้า (page-locked) มาใช้เพื่อการส่งข้อมูลอย่างมีประสิทธิภาพ
  6. จัดการการดำเนินการแบบขนาน: ใช้สตรีม, อีเวนต์ และกลุ่มการทำงานร่วมกัน (Cooperative Groups) เพื่อจัดการงานแบบไม่ซิงโครนัส และทำให้การดำเนินการระหว่าง CPU กับ GPU ซิงโครนัสกันได้
  7. ดำเนินการคำนวณตัวชี้ที่ซับซ้อนและระบุจุดที่เป็นปัญหาในสถาปัตยกรรม (แบบ von Neumann ตรงกับแบบ Harvard)
  8. ใช้รูปแบบการดำเนินงานขั้นสูงของ CUDA เช่น การเรียกเคอร์เนลตามเงื่อนไขที่ควบคุมด้วยโปรแกรม และการถ่ายโอนข้อมูลแบบบัทช์ที่หลากหลาย
  9. ใช้คุณสมบัติเฉพาะฮาร์ดแวร์ เช่น ขอบเขตของเธรด (Thread Scopes), ตัวแทนแบบไม่ซิงโครนัส (Asynchronous Proxies), และพายเปล (Pipelines) เพื่อเพิ่มความสามารถในการทำงานพร้อมกันสูงสุด
  10. ตั้งค่าและปรับแต่งประสิทธิภาพของหน่วยความจำแบบรวม (Unified Memory) โดยใช้การดึงข้อมูลล่วงหน้า (prefetching), คำแนะนำการใช้งาน (usage hints), และการจัดการขนาดหน้า (page size management)

บทเรียน