ZLUDA ทำให้แอปพลิเคชัน CUDA รันบน GPU ของ AMD ได้
- ZLUDA 3 เป็นโปรเจกต์โอเพนซอร์สที่พัฒนาโดย Andrzej Janik ซึ่งทำให้แอปพลิเคชันที่ใช้ GPU และออกแบบมาสำหรับ GPU ของ NVIDIA สามารถทำงานบนฮาร์ดแวร์ของผู้ผลิตรายอื่นได้
- เทคโนโลยีนี้ถูกออกแบบมาเพื่อให้แอปพลิเคชันเดิมสามารถรันบนฮาร์ดแวร์ใหม่ได้โดยไม่ต้องให้ผู้พัฒนาแก้ไขงานเพิ่ม
- ZLUDA เวอร์ชันก่อนหน้าทำให้แอปพลิเคชัน CUDA รันบน GPU ของ Intel ได้ แต่ในเวอร์ชัน 3 ได้เปลี่ยนมาเป็น GPU ของ AMD
ZLUDA ไม่ได้มีไว้สำหรับ GPU ของ Intel หรือ?
- ZLUDA เปิดตัวครั้งแรกในปี 2020 ในฐานะทางเลือกแทน CUDA สำหรับ GPU ของ Intel
- หลังการเปิดตัวเวอร์ชัน 2 ในปี 2021 Janik เคยประกาศว่าไม่สามารถพัฒนาโปรเจกต์ต่อได้ แต่ต่อมา Intel เริ่มประเมิน ZLUDA ในฐานะเทคโนโลยีอย่างเป็นทางการ
- Intel ตัดสินใจว่าไม่มีกรณีธุรกิจสำหรับการรันแอปพลิเคชัน CUDA บน GPU ของ Intel และ Janik จึงออกจากบริษัทแล้วไปติดต่อ AMD
- AMD ประเมิน ZLUDA เป็นเวลา 2 ปี แต่ตัดสินใจไม่เดินหน้าโปรเจกต์ต่อ และ Janik ก็เผยแพร่โค้ดที่อัปเดตแล้วในรูปแบบโอเพนซอร์ส
ทำไมจึงสำคัญต่อศิลปิน CG?
- ZLUDA เวอร์ชัน 3 ทำให้แอปพลิเคชันที่ใช้ GPU และพัฒนาด้วย CUDA API ของ NVIDIA สามารถรันบน GPU ของ AMD ได้
- ในอุตสาหกรรมอย่าง VFX โมชันกราฟิก และการสร้างภาพข้อมูล แอปพลิเคชัน CG หลักจำนวนมาก โดยเฉพาะเรนเดอร์จำนวนมาก ใช้ CUDA และผูกกับ NVIDIA
- AMD มีเทคโนโลยีของตนเองคือ HIP แต่ต้องอาศัยงานจากผู้พัฒนาซอฟต์แวร์
- ZLUDA สร้างขึ้นบนพื้นฐานของ HIP และออกแบบมาเพื่อให้แอปพลิเคชัน CUDA รันบน GPU ของ AMD ได้โดยไม่ต้องแก้ไข
แอปพลิเคชัน CUDA รันภายใต้ ZLUDA ได้เร็วแค่ไหน?
- Janik อธิบายว่าสามารถรันแอปพลิเคชัน CUDA บน GPU ของ AMD ได้ด้วย "ประสิทธิภาพใกล้เคียงเนทีฟ"
- อย่างไรก็ตาม ตามข้อมูลใน GitHub repository ของ ZLUDA นั้น 3DF Zephyr และ RealityCapture ทำงาน "ช้ากว่ามาก" ภายใต้ ZLUDA
- ผู้พัฒนา GPU renderer หลายรายยังใช้ OptiX ซึ่งเป็น NVIDIA API ตัวที่สองที่มีส่วนต่อประสิทธิภาพ และ ZLUDA รองรับ OptiX ในระดับ "ขั้นต่ำ"
แอปพลิเคชัน CG อื่น ๆ สามารถรันผ่าน ZLUDA บน GPU ของ AMD ได้หรือไม่?
- หากไม่มีการทดสอบจากผู้ใช้ ก็ยากจะบอกได้ว่าแอปพลิเคชัน CG ที่ใช้ CUDA อื่น ๆ จะทำงานภายใต้ ZLUDA ได้ดีเพียงใด
- มีปัญหาที่ทราบอยู่หลายอย่าง และ Janik ก็ประสบความสำเร็จอย่างจำกัดกับ GPU renderer ตัวอื่น ๆ
ในอนาคตจะมีแอปพลิเคชัน CG ที่ใช้ CUDA รันภายใต้ ZLUDA ได้มากขึ้นหรือไม่?
- Janik ระบุว่าหากไม่มีการสนับสนุนจาก Intel หรือ AMD แล้ว ZLUDA ก็ "แทบจะอยู่ในสภาพถูกทอดทิ้ง"
- เขาเปิดรับข้อเสนอที่อาจช่วยผลักดันโปรเจกต์ไปข้างหน้า แต่หากไม่มี ก็น่าจะรองรับเฉพาะเทคโนโลยีของ NVIDIA ที่เขาสนใจเป็นการส่วนตัว
- ซอร์สโค้ดเปิดให้ใช้งานสาธารณะ และแม้ในสภาพปัจจุบัน ZLUDA ก็ยังสามารถถูกใช้โดยนักพัฒนาซอฟต์แวร์เป็นส่วนหนึ่งของการ "พอร์ตแบบค่อยเป็นค่อยไป" จาก CUDA ไปสู่ HIP ได้
ไลเซนส์และความต้องการของระบบ
- ZLUDA 3 เวอร์ชันที่คอมไพล์แล้วมีให้ใช้งานบน Windows และ Linux ส่วนซอร์สโค้ดเผยแพร่ภายใต้ไลเซนส์ Apache 2.0 หรือ MIT
ความเห็นของ GN⁺
- ZLUDA มีศักยภาพในการกระตุ้นการแข่งขันในตลาด GPU ด้วยการเปิดระบบนิเวศ CUDA ที่เป็นกรรมสิทธิ์ของ NVIDIA ให้ผู้ใช้ AMD เข้าถึงได้
- โปรเจกต์นี้อาจเป็นประโยชน์อย่างยิ่งต่อผู้ใช้ซอฟต์แวร์เรนเดอร์หรือแอปพลิเคชันประมวลผลทางวิทยาศาสตร์ที่พึ่งพา CUDA โดยเพิ่มทางเลือกด้านฮาร์ดแวร์ให้หลากหลายขึ้น
- อย่างไรก็ตาม เนื่องจาก ZLUDA ยังอยู่ในระยะเริ่มต้นและยังไม่ให้ทั้งประสิทธิภาพและความเข้ากันได้อย่างสมบูรณ์ การนำไปใช้ในสภาพแวดล้อมการผลิตจริงจึงควรทำอย่างระมัดระวัง
- การลดช่องว่างทางเทคโนโลยีระหว่าง AMD และ NVIDIA อาจทำให้ผู้บริโภคได้ทั้งราคาที่ดีขึ้นและตัวเลือกที่มากขึ้น ซึ่งจะส่งเสริมการแข่งขันที่ดีต่อสุขภาพของตลาด
- ความสนใจและการมีส่วนร่วมอย่างต่อเนื่องจากชุมชนโอเพนซอร์สจะมีความสำคัญต่อความสำเร็จของโปรเจกต์นี้ และยังเป็นโอกาสที่ดีให้ผู้เชี่ยวชาญในสาขาที่เกี่ยวข้องเข้ามามีส่วนร่วม
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
การสนทนาก่อนหน้าเมื่อ 22 วันที่แล้ว: AMD พัฒนา implementation ของ CUDA บนพื้นฐาน ROCm และเปิดซอร์ส [0] โดยมีความคิดเห็น 400 รายการ
การที่ AMD หยุดสนับสนุนเงินทุนให้โครงการนี้เป็นเรื่องไร้เหตุผลมาก ทันทีที่เปิดซอร์ส มันก็เริ่มสร้างคุณค่าให้ผู้ใช้ AMD แล้ว ทั้งที่สิ่งนี้ดูเหมือนควรเป็นลำดับความสำคัญสูงสุดของ AMD แต่ AMD กลับเสียเวลามาหลายปีกับ API ทางเลือกสองตัว (หรือสามตัว?) ที่แทบไม่ได้รับการสนับสนุนเลยจนถึงตอนนี้
ประเด็นที่เกี่ยวข้องกับการถกเถียงนี้: Nvidia ห้ามใช้ translation layer ของซอฟต์แวร์ CUDA เพื่อรันบนชิปอื่น [1]
ในที่สุด Intel ก็สรุปเช่นกันว่า "ไม่มีกรณีทางธุรกิจสำหรับการรันแอปพลิเคชัน CUDA บน Intel GPU" ซึ่งเป็นการยืนยันสิ่งที่ใครก็ตามที่เคยทำงานกับ AMD GPGPU ต่างก็รู้อยู่แล้ว
เป็นที่รู้กันดีว่าซอฟต์แวร์ของ AMD แย่มาก และนี่คือปัจจัยเดียวที่ขัดขวางไม่ให้ AMD กลายเป็นบริษัทมูลค่า 2 ล้านล้านดอลลาร์ มีบั๊กในคอมไพเลอร์ OpenCL ของ AMD และสามารถทำให้คอมไพเลอร์แครชผ่าน segfault ได้อย่างง่ายดาย (สุดท้ายก็ยอมแพ้และไม่ได้รายงาน) การที่ AMD ไม่สร้างคู่แข่งขึ้นมาต่อกรกับ CUDA เป็นมุมมองที่สั้นมาก ผมไม่เข้าใจว่าทำไมบอร์ดของ AMD ยังไม่ถูกเปลี่ยนออก ถึงจะสร้างฮาร์ดแวร์ที่ดีที่สุดได้ แต่ถ้าซอฟต์แวร์สำหรับใช้งานมันห่วย ก็จะไม่มีใครซื้อหรือใช้อยู่ดี ในฐานะลูกค้า มันดูเหมือนว่าบอร์ดของ AMD ไม่ได้สนใจมูลค่าระดับหลายล้านล้านดอลลาร์ที่ปล่อยหลุดมือไป ทำให้ต้องจำใจซื้อการ์ด Nvidia ที่ราคาเกินจริง คนที่ถือหุ้น AMD ควรถามคำถาม และบอร์ดชุดนั้นควรถูกส่งลงท่อระบายน้ำที่ใกล้ที่สุด
สงสัยว่ามีภาษาโปรแกรมใดบ้างที่สามารถคอมไพล์ไปเป็นภาษาเคอร์เนลหลายแบบ เช่น Metal, CUDA และสิ่งที่ AMD มีอยู่ ถ้ายังไม่มี ทำไมถึงไม่มี? ในเมื่อมีคอมไพเลอร์ C ที่คอมไพล์ไปยังสถาปัตยกรรม CPU หลากหลายแบบได้ ก็น่าจะมีคอมไพเลอร์ที่คอมไพล์ไปยังสถาปัตยกรรม GPU ได้ด้วยไม่ใช่หรือ? อาจเป็นไปได้ว่ายังไม่มีใครสร้างมันขึ้นมา
สงสัยว่ามีใครลองรันสิ่งนี้กับเครื่องมือ photogrammetry แบบ OSS อย่าง Meshroom หรือยัง บทความพูดถึงของ proprietary อยู่ไม่กี่อย่าง แต่สิ่งที่จำเป็นจริง ๆ มีไม่มาก
ปัญหาของ AMD GPU ไม่ใช่เคอร์เนลแต่ละตัว แต่เป็นไลบรารี จากที่ release note ระบุว่า 'เพิ่มการรองรับขั้นต่ำสำหรับ cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL, NVML' ดูเหมือนว่าโครงการนี้กำลังมุ่งไปในทิศทางนั้น ไม่มีใครรู้ว่าโครงการนี้จะยังรักษาโมเมนตัมต่อไปได้หรือไม่หลังจาก AMD หยุดให้ทุน
นี่แทบจะเป็นปัญหาเดียวกันกับกรณี Oracle ปะทะ Google ในเรื่องการใช้ JVM bytecode
การต่อสู้อย่างต่อเนื่อง (และมีค่าใช้จ่ายสูง) ของ geohot กับ AMD GPU ก็เกี่ยวข้องเช่นกัน: ลิงก์ Twitter