NVIDIA ได้เปิดตัว Tilus ภาษาโปรแกรมมิ่ง GPU kernel ระดับ tile ตัวใหม่ที่สัญญาว่าจะทำให้การเขียนโปรแกรม GPU ง่ายขึ้นด้วยความละเอียดระดับ thread-block และการควบคุมหน่วยความจำแบบชัดเจน อย่างไรก็ตาม การเปิดตัวครั้งนี้ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนนักพัฒนาเกี่ยวกับแรงจูงใจเชิงกลยุทธ์ของ NVIDIA และการต่อสู้ที่ดำเนินอยู่เพื่อครอบงำระบบนิเวศการเขียนโปรแกรม GPU
คุณสมบัติหลักของ Tilus :
- ความละเอียดระดับ thread-block โดยใช้ tensor เป็นชนิดข้อมูลหลัก
- การควบคุมแบบชัดเจนเหนือ shared memory และ register tensor
- ชนิดข้อมูลความแม่นยำต่ำที่มีความกว้างของบิตแบบกำหนดเอง (1 ถึง 8 บิต)
- ความสามารถในการปรับแต่งและแคชแบบอัตโนมัติ
- อินเทอร์เฟซแบบ Pythonic เพื่อความง่ายในการใช้งาน
การตอบสนองเชิงกลยุทธ์ต่อภัยคุกคามข้ามแพลตฟอร์มของ Triton
จังหวะเวลาและการออกแบบของ Tilus ดูเหมือนจะเป็นการตอบสนองโดยตรงของ NVIDIA ต่อความนิยมที่เพิ่มขึ้นของ Triton ภาษาโปรแกรมมิ่ง GPU ของ OpenAI ที่รองรับฮาร์ดแวร์ทั้ง NVIDIA และ AMD ผู้สังเกตการณ์ในชุมชนสังเกตว่าการผลักดันเครื่องมือพัฒนาที่เน้น Python เป็นหลักของ NVIDIA ในช่วงล่าสุด รวมถึงทั้ง CUDA Python ระดับต่ำและ Tilus ระดับสูง แสดงถึงความพยายามที่คำนวณมาแล้วเพื่อป้องกันไม่ให้นักพัฒนาย้ายไปใช้ทางเลือกข้ามแพลตฟอร์ม
ความกังวลมุ่งเน้นไปที่การล็อกอินระบบนิเวศ หากนักพัฒนาใช้ Triton เพื่อความสามารถข้ามแพลตฟอร์ม คูคำแข่งขันของ NVIDIA จะอ่อนแอลงอย่างมีนัยสำคัญ Tilus เสนอแนวคิดการเขียนโปรแกรมแบบ tile-based ที่คล้ายกับ Triton แต่ยังคงผูกติดอยู่กับระบบนิเวศของ NVIDIA ซึ่งอาจทำให้นักพัฒนาอยู่ในวงอิทธิพลของ NVIDIA ต่อไป
การต่อสู้ที่ยังคงดำเนินต่อไปของ AMD และ Intel
การถกเถียงเผยให้เห็นความผิดหวังอย่างลึกซึ้งต่อความไร้ความสามารถของ AMD และ Intel ในการท้าทายการครอบงำของ NVIDIA แม้จะมีเวลาหลายปีในการพัฒนาทางเลือกที่แข่งขันได้ ROCm ของ AMD และ SYCL ของ Intel แม้จะเป็นโอเพนซอร์ส แต่กลับเสนอประสบการณ์การติดตั้งและการสนับสนุนฮาร์ดแวร์ที่แย่กว่า CUDA toolkit ที่เป็นกรรมสิทธิ์ของ NVIDIA อย่างขัดแย้ง
AMD มีเวลาที่จะตามทัน--หนึ่งทศวรรษจริงๆ พวกเขาเพียงแค่ไม่เข้าใจ: การสนับสนุนซอฟต์แวร์ที่แข็งแกร่งต้องการการลงทุนอย่างมีนัยสำคัญจากฝั่งของพวกเขา
ชุมชนชี้ไปที่ความเข้าใจผิดพื้นฐานเกี่ยวกับสิ่งที่ทำให้ CUDA ประสบความสำเร็จ มันไม่ใช่แค่ภาษาโปรแกรมมิ่งหรือประสิทธิภาพ - แต่เป็นระบบนิเวศที่สมบูรณ์รวมถึงไลบรารีที่กว้างขวาง การรวม IDE เครื่องมือดีบักแบบกราฟิก และการสนับสนุนหลายภาษาที่นักวิจัยและนักพัฒนาพึ่พาในชีวิตประจำวัน
การวางตำแหน่งทางเทคนิคและความเป็นจริงของตลาด
Tilus แยกความแตกต่างจากการเขียนโปรแกรม GPU แบบดั้งเดิมด้วยการทำงานในระดับ workgroup แทนที่จะเป็นระดับ thread แต่ละตัว แนวทางนี้ช่วยให้นักพัฒนาทำงานกับค่าเวกเตอร์และเมทริกซ์ขนาดใหญ่ได้ในขณะที่คอมไพเลอร์จัดการการกระจายข้ามทรัพยากรฮาร์ดแวร์ ภาษานี้ยังรองรับประเภทความแม่นยำต่ำแบบกำหนดเองจาก 1 ถึง 8 บิต โดยมุ่งเป้าไปที่ความต้องการที่เพิ่มขึ้นสำหรับการอนุมาน AI ที่มีประสิทธิภาพ
อย่างไรก็ตาม คำถามยังคงอยู่เกี่ยวกับความสัมพันธ์ของ Tilus กับโครงการภายในของ NVIDIA เช่น cuTile และ Warp ลักษณะที่แยกส่วนของความพยายามวิจัยของ NVIDIA แสดงให้เห็นว่าเครื่องมือเหล่านี้อาจไม่ได้แสดงถึงกลยุทธ์ที่ประสานงานกัน แต่เป็นความริเริ่มของทีมอิสระที่ภายหลังได้รับการรวมเข้าสู่ระบบนิเวศที่กว้างขึ้น
ผู้ให้บริการคลาวด์ในฐานะผู้เปลี่ยนเกมที่มีศักยภาพ
เรื่องราวย่อยที่น่าสนใจในการถกเถียงเกี่ยวข้องกับผู้ให้บริการคลาวด์รายใหญ่ที่กำลังพัฒนาตัวเร่ง AI ของตนเอง TPU ของ Google ชิป Inferentia และ Trainium ของ AWS และความพยายามที่คล้ายกันจากยักษ์คลาวด์อื่นๆ แสดงถึงการท้าทายที่น่าเชื่อถือที่สุดต่อการครอบงำของ NVIDIA บริษัทเหล่านี้มีทั้งทรัพยากรและแรงจูงใจที่จะหลุดพ้นจากอำนาจการกำหนดราคาของ NVIDIA
การพัฒนา OpenXLA ที่ได้รับการสนับสนุนจากผู้เล่นรายใหญ่รวมถึง Alibaba, Amazon, AMD, Apple, Google, Intel, Meta และแม้แต่ NVIDIA เอง แสดงให้เห็นความพยายามที่ประสานงานกันเพื่อทำให้ชั้นการเร่ง GPU เป็นสินค้าโภคภัณฑ์ สิ่งนี้อาจพิสูจน์ได้ว่าเป็นภัยคุกคามต่อการล็อกอินของ NVIDIA มากกว่าทางเลือกภาษาโปรแกรมมิ่งใดๆ เพียงอย่างเดียว
ระบบนิเวศการเขียนโปรแกรม GPU ที่แข่งขันกัน:
- NVIDIA: CUDA, CUDA Python, Tilus, cuTile, Warp
- ข้ามแพลตฟอร์ม: Triton (OpenAI), SYCL, OpenXLA
- AMD: ROCm (โอเพนซอร์สแต่รองรับฮาร์ดแวร์อย่างจำกัด)
- ผู้ให้บริการคลาวด์: Google TPUs, AWS Inferentia/Trainium, ตัวเร่งความเร็วแบบกำหนดเอง
มองไปข้างหน้า
การเปิดตัว Tilus เน้นย้ำความตึงเครียดที่ดำเนินอยู่ระหว่างนวัตกรรมและการควบคุมตลาดในพื้นที่การคำนวณ GPU ในขณะที่ NVIDIA ยังคงผลักดันขอบเขตของสิ่งที่เป็นไปได้ด้วยการเขียนโปรแกรม GPU ชุมชนยังคงแบ่งแยกเกี่ยวกับว่าความก้าวหน้าเหล่านี้ให้บริการผลประโยชน์ของนักพัฒนาหรือปกป้องตำแหน่งตลาดของ NVIDIA เป็นหลัก การทดสอบขั้นสุดท้ายจะเป็นว่า Tilus จะได้รับการยอมรับอย่างแท้จริงตามคุณค่าทางเทคนิคหรือยังคงเป็นเพียงเครื่องมืออีกชิ้นหนึ่งในคลังแสงป้องกันของ NVIDIA ต่อทางเลือกข้ามแพลตฟอร์ม
อ้างอิง: Tilus: A Tile-Level GPU Kernel Programming Language