6 คะแนน โดย GN⁺ 2024-02-13 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

AMD สนับสนุนอิมพลีเมนเทชัน CUDA บน ROCm แบบเงียบ ๆ และตอนนี้เปิดซอร์สแล้ว

  • AMD พยายามมาหลายปีเพื่อให้นักพัฒนาสามารถรันโค้ดเบสที่เขียนสำหรับ API ของ NVIDIA CUDA บน HIP/ROCm ได้
  • แม้จะมีความพยายามเหล่านี้ แต่หากต้องการประสิทธิภาพสูงสุด ก็ยังไม่ใช่ทางออกที่ดีนัก (ไม่เรียบง่าย ไม่ทันที และไม่การันตีประสิทธิภาพ)
  • ตลอด 2 ปีที่ผ่านมา AMD ได้สนับสนุนโครงการอย่างเงียบ ๆ เพื่อมอบความเข้ากันได้ระดับไบนารีในระดับไลบรารี ทำให้แอปพลิเคชัน NVIDIA CUDA จำนวนมากสามารถทำงานบนสแตก AMD ROCm ได้โดยไม่ต้องแก้ซอร์สโค้ด

ZLUDA: รองรับ CUDA สำหรับกราฟิกส์ Intel

  • หลายปีก่อนมีโครงการชื่อ ZLUDA ที่เริ่มต้นขึ้นเพื่อรองรับ CUDA บนกราฟิกส์ Intel แต่ได้หยุดไปด้วยเหตุผลส่วนตัว
  • Andrzej Janik ผู้พัฒนา ZLUDA ได้รับสัญญาจาก AMD ในปี 2022 เพื่อนำ ZLUDA มาปรับใช้กับ GPU ของ AMD โดยใช้ HIP/ROCm
  • ตลอด 2 ปีที่ผ่านมา Janik ได้พัฒนา ZLUDA สำหรับ GPU Radeon ทำให้ซอฟต์แวร์ CUDA จำนวนมากสามารถทำงานบน HIP/ROCm ได้โดยไม่ต้องแก้ไข

การเปิดซอร์สของ ZLUDA

  • ปีนี้ AMD ได้ยุติการสนับสนุนเงินทุนสำหรับโครงการนี้ และตัดสินใจว่าจะไม่ออกเป็นผลิตภัณฑ์ซอฟต์แวร์
  • อย่างไรก็ตาม ในตอนสิ้นสุดสัญญามีเงื่อนไขที่เปิดทางให้ Janik สามารถเผยแพร่งานนี้เป็นโอเพนซอร์สได้
  • Janik ได้เปิดให้เข้าถึงเพื่อทดสอบและทำเบนช์มาร์กอิมพลีเมนเทชัน ZLUDA ใหม่นี้

ข้อจำกัดของอิมพลีเมนเทชัน ZLUDA และโค้ดโอเพนซอร์ส

  • อิมพลีเมนเทชันของ ZLUDA ยังไม่ปลอดภัย 100% เช่น การรองรับ NVIDIA OptiX ยังไม่สมบูรณ์ และซอฟต์แวร์ที่ไม่ใช้โค้ดแอสเซมบลี PTX ยังไม่สามารถจัดการได้ในขณะนี้
  • ในกรณีส่วนใหญ่ อิมพลีเมนเทชันนี้มีความสามารถน่าทึ่งมากเมื่อพิจารณาว่าเป็นผลงานของนักพัฒนาเพียงคนเดียว
  • โค้ดโอเพนซอร์สใช้ไลเซนส์คู่แบบ Apache 2.0 หรือ MIT
  • ใช้ภาษาโปรแกรม Rust ในการพัฒนาอิมพลีเมนเทชันสำหรับ Radeon นี้

ความเห็นของ GN⁺

  • บทความนี้แนะนำโครงการที่ AMD สนับสนุนอย่างเงียบ ๆ เพื่อมอบความเข้ากันได้กับ CUDA ซึ่งอาจเป็นการมีส่วนร่วมครั้งสำคัญต่อชุมชนโอเพนซอร์ส
  • ZLUDA เป็นความก้าวหน้าสำคัญที่ช่วยให้นักพัฒนารันแอปพลิเคชัน CUDA บนแพลตฟอร์ม AMD ได้โดยไม่ต้องแก้ไขซอร์สโค้ด
  • ความพยายามลักษณะนี้เปิดโอกาสให้ผู้ใช้ GPU ของ AMD เข้าถึงระบบนิเวศซอฟต์แวร์ที่กว้างขึ้น และก็น่าสนใจเป็นพิเศษที่มีการใช้ภาษาโปรแกรมสมัยใหม่อย่าง Rust

2 ความคิดเห็น

 
bbulbum 2024-02-13

NVIDIA เว้ย!

 
GN⁺ 2024-02-13
ความคิดเห็นจาก Hacker News
  • ZLUDA ถูกเปิดซอร์สหลังจาก AMD หยุดให้เงินสนับสนุน

    • หลังการพัฒนานาน 2 ปี AMD ตัดสินใจว่าการรันแอปพลิเคชัน CUDA บน AMD GPU ไม่ใช่กรณีทางธุรกิจที่คุ้มค่า
    • ตามเงื่อนไขสัญญา หาก AMD เห็นว่าการพัฒนาต่อไม่เหมาะสม ก็สามารถเปิดเผย ZLUDA ได้
  • มีการกล่าวถึง CUDA Dark API

    • CUDA Dark API ประกอบด้วยฟังก์ชันที่ไม่มีเอกสารกำกับ และไม่ทราบจำนวนที่แน่ชัดของฟังก์ชันเหล่านี้
    • แอปพลิเคชันทั่วไปมักใช้เพียงหนึ่งหรือสองฟังก์ชันที่พบบ่อยที่สุด
    • ฟังก์ชันเหล่านี้ไม่ทราบทั้งชื่อหรือชนิดของอาร์กิวเมนต์ จึงใช้เวลามากในการทำ implementation
    • ZLUDA ดำเนินการ reverse engineer และทำ implementation เป็นรายกรณี หลังจากสังเกตว่าแอปพลิเคชันมีการใช้งานมัน
  • มีความเห็นที่เชียร์ให้ AMD ทำลายการผูกขาดของ CUDA

    • เลเยอร์แปลมีข้อดีตรงที่สามารถทำให้ฮาร์ดแวร์ใช้งานได้จริงมากขึ้นในทันที และช่วยกระตุ้นการยอมรับ
    • แต่ก็มีความเสี่ยงที่นักพัฒนาจะไม่รองรับ ROCm และใช้เพียงเลเยอร์แปลเท่านั้น
    • Proton+DXVK ส่งผลเชิงบวกต่อเกมมิ่งบนลินุกซ์ แต่การดึงประสิทธิภาพของ GPU computing ออกมา ต้องอาศัยการจูนให้เข้ากับสถาปัตยกรรมเฉพาะ
    • AMD ต้องทำบางอย่างเพื่อให้แข่งขันได้ในตลาด
  • ประสบการณ์จากความพยายามรัน Stable Diffusion บน AMD GPU และความยากลำบากที่พบ

    • การติดตั้ง ROCm และการตรวจพบ GPU ไม่มีปัญหา แต่โลกของ ML มุ่งไปที่ Nvidia ทำให้การติดตั้งอย่าง PyTorch เป็นเรื่องยาก
    • ท้ายที่สุดสามารถโหลดโมเดลได้ แต่ซอฟต์แวร์ก็ทำให้กราฟิกเซสชันล่มก่อนจะสร้างภาพได้แม้แต่ภาพเดียว
    • ประสบการณ์นี้ทำให้อยากกลับไปซื้อ Nvidia GPU อีกครั้ง
  • หลายปีหลังจากที่ Blender เลิกใช้ OpenCL และหันไปใช้ CUDA backend ก็ได้เพิ่ม Radeon HIP backend เข้ามา แต่พบว่าการใช้ ZLUDA + CUDA backend เร็วกว่า Radeon HIP backend เล็กน้อย

  • การที่ AMD หยุดให้เงินสนับสนุนโครงการนี้ดูเป็นการตัดสินใจที่เข้าใจได้ยาก

    • CUDA-on-ROCm อาจทำลายการผูกขาดของ NVIDIA และช่วยยับยั้งไม่ให้ NVIDIA เปลี่ยนแปลง CUDA ตามอำเภอใจ
    • หากไม่ได้เป็นอันดับ 1 ในตลาด ก็ควรตามมาตรฐานโดยพฤตินัยเพื่อแข่งขันด้านคุณค่าจริง และควรสร้างพร้อมทั้งปฏิบัติตามมาตรฐานที่เปิดอย่างแท้จริง
  • มีคำถามที่เกี่ยวข้องกับข่าวว่า Nvidia เลี่ยงการตรวจสอบไดรเวอร์ที่ใช้ไลเซนส์ GPL ของเคอร์เนล

    • มีข่าวว่าบนเคอร์เนล 6.6 หาก Nvidia ไม่แก้ไขเรื่องนี้ ไดรเวอร์จะถูกบล็อก แต่ไม่มีการตอบสนองจาก Nvidia
    • ขณะนี้ใช้เคอร์เนล 6.7.4 อยู่ และมีข้อมูลที่ชวนสับสนว่า Nvidia แก้ปัญหาแล้ว หรือการบล็อกถูกเลื่อนออกไป
  • บทความของ Phoronix แนะนำไกด์สำหรับผู้ที่ต้องการคอมไพล์สแตก ROCm/HIP ของ AMD ด้วยตนเอง

  • ROCm ถูกอธิบายไว้ดีกว่าบน Github มากกว่าในเอกสารทางการ ซึ่งตอกย้ำความสำคัญของการสร้างแบรนด์ว่าเป็นหนึ่งในเหตุผลที่ AMD เสียความสามารถในการแข่งขันในตลาด

  • มีความเห็นว่า AMD ควรจัดสรรทีมให้กับโครงการนี้มากกว่านี้