การรัน CUDA บน Radeon RX 9060 XT ใน Windows ทำได้จริงแล้ว ผ่านโปรเจกต์โอเพนซอร์สของนักพัฒนาเดี่ยวที่ใช้ชื่อ Speedstu ซึ่งเชื่อมชั้นแปลง ZLUDA เข้ากับ HIP/ROCm ของ AMD โดยไม่ต้องพึ่ง virtual machine, WSL2 หรือ dual-boot
สรุปสั้นๆ: Speedstu ปล่อยโปรเจกต์ CUDA-for-AMD-Windows ที่เชื่อม ZLUDA เวอร์ชัน pinned v6-preview.69 เข้ากับไลบรารีคณิตศาสตร์ของ ROCm ทำให้ CUDA driver API พร้อมกับ cuBLAS, cuSPARSE และ cuFFT ทำงานบน Radeon RX 9060 XT ได้จริงบน Windows ส่วน cuDNN ยังใช้ไม่ได้ และตอนนี้ RX 9060 XT เป็นการ์ดใบเดียวที่โปรเจกต์รองรับอย่างเป็นทางการ
AMD มีการ์ดแรงพอ แต่ซอฟต์แวร์ล็อกไว้กับ CUDA อย่างเดียว
มี Radeon อยู่แล้ว แต่พอเปิดโปรแกรม AI งานประมวลผลภาพ หรือเครื่องมือพัฒนาที่ผูกกับ CUDA ก็เหมือนถูกบังคับให้เปลี่ยนการ์ดจอทันที ทางเลือกที่เหลือคือซื้อ NVIDIA เพิ่ม ย้ายไปใช้ Linux หรือหาวิธีใหม่บน Windows
ปัญหานี้ไม่ได้อยู่ที่การ์ด AMD แรงไม่พอ แต่อยู่ที่ซอฟต์แวร์เขียนมาให้เรียก CUDA โดยตรงเท่านั้น RX 9060 XT เองก็เป็นการ์ดเกมมิ่งทั่วไปที่ไม่ได้ออกแบบมาเพื่อ ecosystem ของ CUDA แต่ก็กลายเป็นการ์ดทดสอบหลักของโปรเจกต์นี้ เพราะเป็นรุ่นที่ Speedstu ใช้พัฒนาและปักหมุดรองรับอย่างเป็นทางการ
Speedstu ต่อ ZLUDA เข้ากับ HIP ของ AMD ได้อย่างไร

หัวใจของโปรเจกต์ CUDA-for-AMD-Windows คือสคริปต์ PowerShell ที่ทำงานอัตโนมัติเกือบทั้งหมด ตัวสคริปต์จะตรวจจับสถาปัตยกรรม GPU ของเครื่อง ดึง ZLUDA เวอร์ชันที่ปักหมุดไว้คือ v6-preview.69 มาติดตั้ง แล้วแมปคำสั่งของ ZLUDA เข้ากับไลบรารีคณิตศาสตร์ของ ROCm ที่มีอยู่แล้วบน Windows
วิธีนี้ต่างจากแนวทางเดิมที่ต้องพึ่ง virtual machine, WSL2 หรือ dual-boot ไปใช้ Linux เพราะทุกอย่างรันตรงบน Windows โดยอาศัยไดรเวอร์ AMD ที่ติดตั้งอยู่แล้วเป็นตัวส่งคำสั่งไปยัง GPU จริง
ไลบรารีไหนใช้ได้แล้ว ไลบรารีไหนยังรอ

จากรายงานของ Speedstu โปรเจกต์นี้เชื่อมต่อและแมป CUDA driver API รวมถึงไลบรารี cuBLAS, cuSPARSE และ cuFFT ข้ามไปยังฝั่ง AMD ได้สำเร็จ นั่นครอบคลุมงานพีชคณิตเชิงเส้น การคำนวณ sparse matrix และการแปลงฟูริเยร่ ซึ่งเป็นพื้นฐานของงานคำนวณทางวิทยาศาสตร์และ machine learning จำนวนมาก
ส่วนที่ยังทำไม่ได้คือ cuDNN ซึ่งเป็นไลบรารีสำคัญของงาน deep learning หลายตัว หมายความว่า framework หรือโมเดลที่พึ่ง cuDNN โดยตรงยังใช้เส้นทางนี้ไม่ได้เต็มรูปแบบ และปัจจุบันโปรเจกต์รองรับอย่างเป็นทางการเฉพาะ Radeon RX 9060 XT เท่านั้น การ์ด Radeon รุ่นอื่นยังไม่มีการยืนยันว่าทำงานได้เหมือนกัน
พิสูจน์แนวคิดด้วยการเทรนโมเดล PPO ขนาด 2.2 ล้านพารามิเตอร์

เพื่อพิสูจน์ว่าแนวทางนี้ใช้งานได้จริงไม่ใช่แค่ทฤษฎี Speedstu เทรนโมเดล reinforcement learning แบบ PPO ขนาด 2.2 ล้านพารามิเตอร์แบบ end-to-end บน RX 9060 XT โดยใช้ไลบรารี CUDA ที่ไม่ได้ดัดแปลงเลย
การทดสอบนี้สำคัญเพราะแสดงว่า workload ที่พึ่งพา cuBLAS และ cuFFT ร่วมกันตลอด training loop สามารถรันจบได้บนฮาร์ดแวร์ AMD โดยไม่ต้องแก้โค้ดต้นทางของโมเดล แต่ก็ยังเป็นเพียงกรณีเดียวที่มีการยืนยัน ไม่ได้แปลว่างาน deep learning ทุกแบบจะรันผ่านได้ในระดับเดียวกัน
ทางเลือกอื่นเมื่อซอฟต์แวร์ของคุณยังต้องการ CUDA
| Factor | Radeon RX 9060 XT + ZLUDA/HIP | การ์ด NVIDIA รองรับ CUDA โดยตรง | Linux หรือระบบเสมือน |
|---|---|---|---|
| ความเข้ากันได้ | จำกัดเฉพาะ cuBLAS, cuSPARSE, cuFFT (cuDNN ยังไม่ได้) | สูงกับงาน CUDA แทบทุกไลบรารี | ขึ้นกับระบบและการตั้งค่า |
| ประสิทธิภาพ | อาจมี overhead จากชั้นแปลง | ตรงตามซอฟต์แวร์ ไม่มีชั้นแปลงคั่น | มี overhead จากระบบเสมือน |
| ความยุ่งยาก | ต้องรันสคริปต์ติดตั้งและตามอัปเดต ZLUDA เอง | เริ่มใช้งานง่ายกว่าเมื่อมีการ์ดพร้อม | ตั้งค่าหลายชั้นก่อนใช้งาน |
| ค่าใช้จ่าย | ใช้ฮาร์ดแวร์ Radeon เดิม | ต้องซื้อการ์ด NVIDIA เพิ่ม | อาจมีค่าไลเซนส์หรือพื้นที่จัดเก็บ |
| ขอบเขตการรองรับ | ปักหมุดที่ RX 9060 XT เท่านั้น | ครอบคลุมการ์ด NVIDIA รุ่นใหม่ทุกรุ่น | ขึ้นกับ driver ของแต่ละระบบ |
ถ้างานต้องการความแน่นอนและใช้ cuDNN เป็นหลัก NVIDIA ยังตรงที่สุด ส่วน Radeon RX 9060 XT เหมาะกับคนที่อยากทดลองงานที่พึ่ง cuBLAS, cuSPARSE หรือ cuFFT บนฮาร์ดแวร์ AMD ที่มีอยู่แล้ว
จุดเด่นและข้อจำกัดที่เห็นจากโปรเจกต์นี้
ข้อดี
- +ใช้ฮาร์ดแวร์ AMD เดิมรันงาน CUDA บางส่วนบน Windows ได้จริง
- +ไม่ต้องพึ่ง virtual machine, WSL2 หรือ dual-boot
- +มีกรณีทดสอบจริงคือการเทรนโมเดล PPO 2.2 ล้านพารามิเตอร์แบบ end-to-end
ข้อเสีย
- −cuDNN ยังใช้ไม่ได้ ทำให้งาน deep learning หลายแบบยังรันไม่ครบ
- −รองรับอย่างเป็นทางการเฉพาะ Radeon RX 9060 XT เท่านั้น
- −ต้องติดตั้งผ่านสคริปต์เองและตามอัปเดตเวอร์ชัน ZLUDA ที่ปักหมุดไว้
ต้นทุนแฝงหลังโหลดสคริปต์ Speedstu มาใช้
ต้นทุนจริงไม่ได้จบที่การมีการ์ด Radeon อยู่แล้ว เพราะต้องเผื่อเวลารันสคริปต์ติดตั้ง ตรวจสอบว่าไลบรารีที่งานของตัวเองใช้อยู่ในกลุ่มที่รองรับหรือไม่ และแก้ปัญหาเฉพาะจุดเมื่อ workload ไปแตะ cuDNN ที่ยังใช้ไม่ได้
ยังมีเวลาที่ต้องเสียไปกับการตรวจผลลัพธ์เทียบกับการรันบน NVIDIA จริง เพราะงานที่รันผ่านไม่ได้แปลว่าค่าที่ได้ถูกต้องเสมอไป ถ้าไม่ได้ใช้ CUDA เป็นประจำหรืองานสำคัญต้องพึ่ง cuDNN ทางเลือกนี้อาจยังไม่คุ้มเวลาที่ต้องลงทุน
บทสรุป: นี่คือสะพานเชื่อมชั่วคราวหรือจุดเปลี่ยนของ GPU บน Windows
โปรเจกต์ของ Speedstu พิสูจน์แล้วว่า การเปิดใช้ CUDA บางส่วนบนฮาร์ดแวร์ AMD ใน Windows ทำได้จริง ผ่านการเชื่อม ZLUDA เข้ากับ HIP/ROCm โดยไม่ต้องใช้ virtual machine, WSL2 หรือ dual-boot
แต่ยังไม่ใช่คำตอบแทน NVIDIA สำหรับทุกงาน เพราะ cuDNN ยังใช้ไม่ได้ และรองรับอย่างเป็นทางการเฉพาะ RX 9060 XT เท่านั้น ก่อนลอง ควรเช็คว่างานของตัวเองพึ่งไลบรารีไหนเป็นหลัก ถ้าเป็น cuBLAS, cuSPARSE หรือ cuFFT มีโอกาสใช้ได้จริง แต่ถ้าต้องพึ่ง cuDNN NVIDIA ยังเป็นทางเลือกที่ปลอดภัยกว่าในตอนนี้