NVIDIA đã giới thiệu Tilus , một ngôn ngữ lập trình kernel GPU cấp tile mới hứa hẹn đơn giản hóa việc lập trình GPU với độ chi tiết ở mức thread-block và kiểm soát bộ nhớ rõ ràng. Tuy nhiên, việc phát hành này đã châm ngòi cho một cuộc thảo luận sôi nổi trong cộng đồng nhà phát triển về động cơ chiến lược của NVIDIA và cuộc chiến đang diễn ra để thống trị hệ sinh thái lập trình GPU.
Các tính năng chính của Tilus:
- Độ chi tiết ở mức thread-block với tensor là kiểu dữ liệu chính
- Kiểm soát rõ ràng đối với shared memory và register tensor
- Các kiểu độ chính xác thấp với độ rộng bit tùy ý (từ 1 đến 8 bit)
- Khả năng tự động điều chỉnh và lưu trữ cache
- Giao diện Pythonic để dễ sử dụng
Phản ứng chiến lược trước mối đe dọa đa nền tảng của Triton
Thời điểm và thiết kế của Tilus có vẻ là phản ứng trực tiếp của NVIDIA trước sự phổ biến ngày càng tăng của Triton , ngôn ngữ lập trình GPU của OpenAI hỗ trợ cả phần cứng NVIDIA và AMD . Các nhà quan sát cộng đồng lưu ý rằng việc NVIDIA gần đây thúc đẩy các công cụ phát triển ưu tiên Python , bao gồm cả CUDA Python cấp thấp và Tilus cấp cao, đại diện cho một nỗ lực có tính toán để ngăn các nhà phát triển chuyển sang các lựa chọn thay thế đa nền tảng.
Mối quan ngại tập trung vào việc khóa chặt hệ sinh thái. Nếu các nhà phát triển áp dụng Triton vì khả năng đa nền tảng của nó, lợi thế cạnh tranh của NVIDIA sẽ suy yếu đáng kể. Tilus cung cấp các khái niệm lập trình dựa trên tile tương tự như Triton nhưng vẫn gắn liền với hệ sinh thái của NVIDIA , có khả năng giữ các nhà phát triển trong phạm vi ảnh hưởng của NVIDIA .
Cuộc đấu tranh tiếp tục của AMD và Intel
Cuộc thảo luận tiết lộ sự thất vọng sâu sắc với việc AMD và Intel không thể thách thức sự thống trị của NVIDIA mặc dù đã có nhiều năm để phát triển các lựa chọn thay thế cạnh tranh. ROCm của AMD và SYCL của Intel , mặc dù là mã nguồn mở, nhưng nghịch lý là lại cung cấp trải nghiệm cài đặt và hỗ trợ phần cứng tệ hơn so với bộ công cụ CUDA độc quyền của NVIDIA .
AMD đã có thời gian để bắt kịp--thực tế là một thập kỷ. Họ đơn giản là không hiểu: hỗ trợ phần mềm mạnh mẽ đòi hỏi một khoản đầu tư đáng kể từ phía họ.
Cộng đồng chỉ ra một sự hiểu lầm cơ bản về điều gì làm cho CUDA thành công. Đó không chỉ là ngôn ngữ lập trình hay hiệu suất - mà là toàn bộ hệ sinh thái bao gồm các thư viện mở rộng, tích hợp IDE , trình gỡ lỗi đồ họa và hỗ trợ đa ngôn ngữ mà các nhà nghiên cứu và phát triển dựa vào hàng ngày.
Định vị kỹ thuật và thực tế thị trường
Tilus phân biệt mình với lập trình GPU truyền thống bằng cách hoạt động ở cấp workgroup thay vì cấp thread riêng lẻ. Cách tiếp cận này cho phép các nhà phát triển làm việc với các giá trị vector và ma trận lớn trong khi trình biên dịch xử lý việc phân phối trên các tài nguyên phần cứng. Ngôn ngữ này cũng hỗ trợ các kiểu độ chính xác thấp tùy ý từ 1 đến 8 bit, nhắm vào nhu cầu ngày càng tăng cho suy luận AI hiệu quả.
Tuy nhiên, vẫn còn những câu hỏi về mối quan hệ của Tilus với các dự án nội bộ của NVIDIA như cuTile và Warp . Bản chất phân mảnh của các nỗ lực nghiên cứu của NVIDIA cho thấy những công cụ này có thể không đại diện cho một chiến lược phối hợp mà là các sáng kiến của các nhóm độc lập sau đó được tích hợp vào hệ sinh thái rộng lớn hơn.
Các nhà cung cấp đám mây như những người thay đổi cuộc chơi tiềm năng
Một tình tiết thú vị trong cuộc thảo luận liên quan đến các nhà cung cấp đám mây lớn đang phát triển bộ tăng tốc AI riêng của họ. TPU của Google , chip Inferentia và Trainium của AWS , và những nỗ lực tương tự từ các gã khổng lồ đám mây khác đại diện cho thách thức đáng tin cậy nhất đối với sự thống trị của NVIDIA . Những công ty này có cả nguồn lực và động cơ để thoát khỏi sức mạnh định giá của NVIDIA .
Việc phát triển OpenXLA , được hỗ trợ bởi các tên tuổi lớn bao gồm Alibaba , Amazon , AMD , Apple , Google , Intel , Meta , và thậm chí cả chính NVIDIA , cho thấy một nỗ lực phối hợp để hàng hóa hóa lớp tăng tốc GPU . Điều này cuối cùng có thể chứng tỏ đe dọa hơn đối với việc khóa chặt của NVIDIA so với bất kỳ lựa chọn thay thế ngôn ngữ lập trình đơn lẻ nào.
Các Hệ Sinh Thái Lập Trình GPU Cạnh Tranh:
- NVIDIA: CUDA , CUDA Python , Tilus , cuTile , Warp
- Đa nền tảng: Triton ( OpenAI ), SYCL , OpenXLA
- AMD: ROCm (mã nguồn mở nhưng hỗ trợ phần cứng hạn chế)
- Nhà Cung Cấp Đám Mây: Google TPUs , AWS Inferentia / Trainium , bộ gia tốc tùy chỉnh
Nhìn về phía trước
Việc phát hành Tilus làm nổi bật căng thẳng đang diễn ra giữa đổi mới và kiểm soát thị trường trong không gian điện toán GPU . Trong khi NVIDIA tiếp tục đẩy ranh giới của những gì có thể với lập trình GPU , cộng đồng vẫn chia rẽ về việc liệu những tiến bộ này phục vụ lợi ích của các nhà phát triển hay chủ yếu bảo vệ vị thế thị trường của NVIDIA . Thử thách cuối cùng sẽ là liệu Tilus có được chấp nhận thực sự dựa trên giá trị kỹ thuật của nó hay vẫn là một công cụ khác trong kho vũ khí phòng thủ của NVIDIA chống lại các lựa chọn thay thế đa nền tảng.
Tham khảo: Tilus: A Tile-Level GPU Kernel Programming Language