โครงการ ZLUDA เพิ่มทีมพัฒนาเป็นสองเท่าและก้าวหน้าอย่างมากในการทำลายการผูกขาด CUDA ของ NVIDIA

ทีมบรรณาธิการ BigGo
โครงการ ZLUDA เพิ่มทีมพัฒนาเป็นสองเท่าและก้าวหน้าอย่างมากในการทำลายการผูกขาด CUDA ของ NVIDIA

โครงการโอเพนซอร์ส ZLUDA ที่มีเป้าหมายในการรันโค้ด CUDA ของ NVIDIA บน GPU ที่ไม่ใช่ของ NVIDIA ได้ฟื้นตัวอย่างมีนัยสำคัญหลังจากเกือบจะปิดตัวลงเมื่อปีที่แล้ว เทคโนโลยี translation layer นี้แสดงถึงความก้าวหน้าที่อาจเป็นจุดเปลี่ยนในการทำลายกำแพงการผูกขาดฮาร์ดแวร์ที่ครอบงำการคำนวณ GPU มาอย่างยาวนาน โดยเฉพาะในงาน AI

การขยายทีมพัฒนาเร่งความก้าวหน้า

การพัฒนาที่สำคัญที่สุดสำหรับ ZLUDA คือการขยายทีมพัฒนาหลักจากหนึ่งเป็นสองนักพัฒนาเต็มเวลา นักพัฒนาคนที่สองที่รู้จักในนาม Violet เข้าร่วมโครงการเมื่อไม่ถึงเดือนที่แล้ว แต่ได้สร้างผลงานที่สำคัญแล้ว โดยเฉพาะในการพัฒนาการรองรับงาน large language model การเพิ่มทรัพยากรการพัฒนาเป็นสองเท่านี้ได้แปลงเป็นความก้าวหน้าที่เร็วขึ้นในหลายด้านทันที ตั้งแต่การแก้ไขบั๊กไปจนถึงการพัฒนาฟีเจอร์ใหม่

การเติบโตของทีมพัฒนา:

  • ขนาดทีมก่อนหน้า: นักพัฒนาเต็มเวลา 1 คน
  • ขนาดทีมปัจจุบัน: นักพัฒนาเต็มเวลา 2 คน
  • นักพัฒนาใหม่ ( Violet ) เข้าร่วม: เมื่อไม่ถึง 1 เดือนที่แล้ว
  • พื้นที่ที่มุ่งเน้น: งานด้าน LLM , การสนับสนุน PhysX , การปรับปรุงความแม่นยำ

ความก้าวหน้าในการทดสอบความเข้ากันได้ของ LLM

นักพัฒนา ZLUDA ได้ทำงานอย่างเข้มข้นในเรื่องความเข้ากันได้กับ llm.c ซึ่งเป็นโครงการทดสอบที่พยายามรันโมเดล GPT-2 โดยใช้ CUDA นี่เป็นครั้งแรกที่ ZLUDA ได้จัดการทั้งฟังก์ชัน CUDA มาตรฐานและไลบรารีเฉพาะทางอย่าง cuBLAS พร้อมกัน โปรแกรมทดสอบเรียกใช้ฟังก์ชัน CUDA แยกกัน 8,186 ครั้งผ่าน API ที่แตกต่างกัน 44 ตัว ในขณะที่ความพยายามเริ่มแรกส่งผลให้เกิดการ crash ทันที การปรับปรุงล่าสุดได้ทำให้ระบบสามารถประมวลผล 552 การเรียกใช้ได้สำเร็จก่อนที่จะล้มเหลว ทีมงานได้ทำการรองรับ 16 จาก 44 ฟังก์ชันที่ต้องการเสร็จสมบูรณ์แล้ว ซึ่งเป็นความก้าวหน้าที่สำคัญสู่ความเข้ากันได้แบบเต็มรูปแบบ

ความคืบหน้าการทดสอบ ZLUDA LLM.c:

  • การเรียกใช้ฟังก์ชัน CUDA ทั้งหมด: 8,186 ครั้ง
  • จำนวน API ที่แตกต่างกัน: 44 ตัว
  • การเรียกใช้ที่ประมวลผลสำเร็จ: 552 ครั้ง (ก่อนเกิดข้อผิดพลาด)
  • การรองรับฟังก์ชันที่เสร็จสมบูรณ์: 16 จาก 44 ฟังก์ชันที่จำเป็น

ความแม่นยำที่เพิ่มขึ้นผ่านการทดสอบที่เข้มงวด

การพัฒนา ZLUDA ในปัจจุบันได้ก้าวหน้าอย่างมีนัยสำคัญในการบรรลุการประมวลผลที่แม่นยำระดับบิตในสถาปัตยกรรม GPU ที่แตกต่างกัน ทีมพัฒนาใช้การทดสอบ PTX 'sweep' ซึ่งตรวจสอบอย่างเป็นระบบว่าทุกคำสั่งและการรวมกันของ modifier ให้ผลลัพธ์ที่เหมือนกันกับฮาร์ดแวร์ NVIDIA กระบวนการตรวจสอบที่เข้มงวดนี้ได้เปิดเผยและแก้ไขข้อบกพร่องของคอมไพเลอร์หลายตัว เพื่อให้มั่นใจว่าคำสั่งที่ซับซ้อนอย่างคำสั่ง cvt สามารถให้ผลลัพธ์ที่แม่นยำระดับบิตได้แล้ว

การปรับปรุงด้านเทคนิค:

  • การใช้งานการประมวลผลที่แม่นยำระดับบิต
  • การทดสอบ 'sweep' ของ PTX สำหรับการตรวจสอบคำสั่ง
  • ระบบบันทึกข้อมูลที่ได้รับการปรับปรุงเพื่อรองรับการจับภาพกิจกรรมที่กว้างขึ้น
  • การแก้ไขความเข้ากันได้ของ ROCm/HIP v6.4
  • การพัฒนาการรองรับ PhysX แบบ 32-bit (อยู่ระหว่างดำเนินการ)

ความก้าวหน้าในการรองรับเกมเก่า

งานได้เริ่มต้นขึ้นในการเปิดใช้งานการรองรับ PhysX แบบ 32-bit ซึ่งมีความสำคัญสำหรับความเข้ากันได้กับเกมที่ใช้ CUDA รุ่นเก่า ผู้มีส่วนร่วมจากชุมชนได้เริ่มความพยายามนี้โดยการรวบรวมล็อก CUDA โดยละเอียด ซึ่งเปิดเผยบั๊กหลายตัวที่อาจส่งผลกระทบต่อการทำงานของ CUDA ทั้งแบบ 32-bit และ 64-bit แม้ว่าการรองรับ PhysX แบบ 32-bit อย่างเต็มรูปแบบยังต้องการการมีส่วนร่วมเพิ่มเติมจากชุมชน แต่ปัญหาที่ระบุได้ถูกเพิ่มเข้าไปในแผนงานการพัฒนาอย่างเป็นทางการแล้ว

การปรับปรุงระบบ Logging และความเข้ากันได้ของ Runtime

ระบบ logging ของ ZLUDA ได้รับการอัปเกรดอย่างครอบคลุม โดยตอนนี้สามารถจับภาพกิจกรรม GPU ในช่วงที่กว้างขึ้นมากซึ่งก่อนหน้านี้มองไม่เห็น การ logging ที่ปรับปรุงแล้วรวมถึงการติดตามโดยละเอียดของพฤติกรรมภายใน เช่น การโต้ตอบของ cuBLAS กับ cuBLASLt และการสื่อสารของ cuDNN กับ Driver APIs ระดับล่าง นอกจากนี้ ทีมงานได้แก้ไขปัญหาความเข้ากันได้กับ ROCm/HIP เวอร์ชัน 6.4 ของ AMD ซึ่งได้นำเสนอการเปลี่ยนแปลง application binary interface ที่สำคัญซึ่งทำให้ ZLUDA เรียกใช้การดำเนินการที่ไม่ถูกต้อง

ผลกระทบที่กว้างขึ้นสำหรับการคำนวณ GPU

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