บทนำสู่การเขียนโปรแกรมด้วย ROCm และ HIP: บทเรียนปฏิบัติจริง
คู่มือปฏิบัติที่ทันสมัยเกี่ยวกับการเขียนโปรแกรมสำหรับ GPU ของ AMD โดยใช้ ROCm และ HIP ครอบคลุมชุดซอฟต์แวร์ทั้งหมด ตั้งแต่การติดตั้ง กระบวนการสร้าง การเขียนโค้ดแกน (kernel programming) การจัดการหน่วยความจำ การวิศวกรรมประสิทธิภาพ การใช้งานไลบรารี การย้ายโค้ดจาก CUDA และแนวทางการตรวจสอบข้อผิดพลาดในสภาพแวดล้อมผลิตภัณฑ์
ภาพรวมคอร์สเรียน
สรุปเนื้อหา
คู่มือปฏิบัติที่ทันสมัยเกี่ยวกับการเขียนโปรแกรม GPU ของ AMD โดยใช้ ROCm และ HIP ครอบคลุมชุดซอฟต์แวร์ทั้งหมด ตั้งแต่การติดตั้ง การจัดทำโครงการ (build workflows) การเขียนโค้ดเคอร์เนล การจัดการหน่วยความจำ การวิศวกรรมประสิทธิภาพ การใช้งานไลบรารี การย้ายจาก CUDA ไปยัง HIP และแนวทางการตรวจสอบข้อผิดพลาดในสภาพแวดล้อมผลิตภัณฑ์
เรียนรู้การเขียนโปรแกรม GPU ของ AMD และการย้ายจาก CUDA ไปยัง HIP อย่างมืออาชีพด้วยบทวิเคราะห์เชิงเทคนิค
ผู้เขียน: EvoClass
คำขอบคุณ: เอกสารทางเทคนิคของ AMD เกี่ยวกับ ROCm และ HIP ซึ่งรวมถึงโครงการต่าง ๆ เช่น ROCm, HIP และ ROCm LLVM
เป้าหมายการเรียนรู้
- นิยาม HIP และบทบาทของมันในระบบนิเวศของ ROCm ด้วยประโยคเดียวที่กระชับ
- แยกแยะความแตกต่างระหว่าง ROCm (แพลตฟอร์ม), HIP (อินเทอร์เฟซ), และไลบรารีของ ROCm (ส่วนประกอบหลัก)
- ระบุระดับโครงสร้างของสถาปัตยกรรม ROCm จากฮาร์ดแวร์ถึงกรอบงานแอปพลิเคชัน
- อธิบายความสัมพันธ์ระหว่าง SDK ของ HIP กับแพลตฟอร์ม ROCm ในระบบปฏิบัติการต่าง ๆ
- ดำเนินการตามขั้นตอนการติดตั้งอย่างเป็นระบบ รวมถึงการตรวจสอบแมทริกซ์รองรับและตั้งค่าเส้นทางหลังติดตั้ง
- คอมไพล์และรันโปรแกรมตรวจสอบขั้นพื้นฐานเพื่อแก้ไขปัญหาทั่วไปเกี่ยวกับไดรเวอร์และสิทธิ์การเข้าถึงสภาพแวดล้อม
- เข้าใจว่ากลยุทธ์การจัดทำโครงการที่แข็งแรงมีความสำคัญอย่างไรในการประสานความเข้ากันได้ของรหัสต้นฉบับกับประสิทธิภาพเฉพาะสถาปัตยกรรม
- ประยุกต์ใช้
hipLaunchKernelGGLเพื่อเรียกใช้เคอร์เนลแบบสามารถย้ายได้แทนการใช้รูปแบบสามเหลี่ยมสามชั้นของ CUDA - ตั้งค่าโปรเจกต์ CMake ระดับองค์กรที่กำหนดเป้าหมายไปยังสถาปัตยกรรม ROCm ที่เฉพาะเจาะจง และจัดการความพึ่งพาไลบรารีภายนอก
- วิเคราะห์โครงสร้างของเคอร์เนล HIP และนำไปใช้สูตรพื้นฐานในการจัดลำดับเธรด