Dự án mã nguồn mở ZLUDA , nhằm mục đích chạy mã CUDA của NVIDIA trên các GPU không phải NVIDIA , đã trải qua một sự hồi sinh đáng kể sau khi gần như đóng cửa vào năm ngoái. Công nghệ lớp dịch này đại diện cho một bước đột phá tiềm năng trong việc phá vỡ các rào cản độc quyền phần cứng đã thống trị lâu dài trong lĩnh vực tính toán GPU , đặc biệt là trong các khối lượng công việc AI .
Mở rộng đội ngũ phát triển thúc đẩy tiến độ
Sự phát triển quan trọng nhất đối với ZLUDA là việc mở rộng đội ngũ phát triển cốt lõi từ một lên hai nhà phát triển toàn thời gian. Nhà phát triển thứ hai, được biết đến với tên Violet , đã tham gia dự án chưa đầy một tháng trước nhưng đã có những đóng góp đáng kể, đặc biệt trong việc thúc đẩy hỗ trợ cho các khối lượng công việc mô hình ngôn ngữ lớn. Việc tăng gấp đôi nguồn lực phát triển này đã ngay lập tức chuyển thành tiến độ nhanh hơn trên nhiều mặt trận, từ sửa lỗi đến triển khai tính năng mới.
Tăng trưởng đội ngũ phát triển:
- Quy mô đội ngũ trước đây: 1 nhà phát triển toàn thời gian
- Quy mô đội ngũ hiện tại: 2 nhà phát triển toàn thời gian
- Nhà phát triển mới ( Violet ) gia nhập: Chưa đầy 1 tháng trước
- Các lĩnh vực trọng tâm: khối lượng công việc LLM, hỗ trợ PhysX, cải thiện độ chính xác
Đột phá trong thử nghiệm tương thích LLM
Các nhà phát triển ZLUDA đã làm việc tích cực về khả năng tương thích với llm.c , một dự án thử nghiệm cố gắng chạy mô hình GPT-2 sử dụng CUDA . Đây là lần đầu tiên ZLUDA giải quyết đồng thời cả các hàm CUDA tiêu chuẩn và các thư viện chuyên biệt như cuBLAS . Chương trình thử nghiệm thực hiện 8.186 lời gọi riêng biệt đến các hàm CUDA trên 44 API khác nhau. Trong khi các nỗ lực ban đầu dẫn đến sự cố ngay lập tức, những cải tiến gần đây đã cho phép hệ thống xử lý thành công 552 lời gọi trước khi thất bại. Đội ngũ đã hoàn thành hỗ trợ cho 16 trong số 44 hàm cần thiết, đánh dấu tiến bộ đáng kể hướng tới khả năng tương thích hoàn toàn.
Tiến độ kiểm thử ZLUDA LLM.c:
- Tổng số lần gọi hàm CUDA: 8,186
- Số lượng API khác nhau: 44
- Các lần gọi đã xử lý thành công: 552 (trước khi xảy ra lỗi)
- Hỗ trợ hoàn thành chức năng: 16 trong số 44 hàm cần thiết
Nâng cao độ chính xác thông qua thử nghiệm nghiêm ngặt
Việc triển khai ZLUDA hiện tại đã có những bước tiến đáng kể trong việc đạt được thực thi chính xác đến từng bit trên các kiến trúc GPU khác nhau. Đội ngũ phát triển hiện sử dụng các thử nghiệm 'quét' PTX , xác minh một cách có hệ thống rằng mọi kết hợp lệnh và bộ sửa đổi đều tạo ra kết quả giống hệt với phần cứng NVIDIA . Quá trình xác thực nghiêm ngặt này đã phát hiện và giải quyết một số lỗi trình biên dịch, đảm bảo rằng các lệnh phức tạp như lệnh cvt hiện cung cấp kết quả chính xác đến từng bit.
Cải tiến Kỹ thuật:
- Triển khai thực thi chính xác từng bit
- Kiểm thử 'quét' PTX để xác thực lệnh
- Hệ thống ghi nhật ký nâng cao để ghi lại hoạt động rộng hơn
- Sửa lỗi tương thích ROCm/HIP v6.4
- Phát triển hỗ trợ PhysX 32-bit (đang trong quá trình thực hiện)
Tiến độ hỗ trợ gaming cũ
Công việc đã bắt đầu để cho phép hỗ trợ PhysX 32-bit , điều quan trọng cho khả năng tương thích với các trò chơi cũ dựa trên CUDA . Một người đóng góp cộng đồng đã khởi xướng nỗ lực này bằng cách thu thập các nhật ký CUDA chi tiết, điều này đã tiết lộ một số lỗi có thể ảnh hưởng đến cả chức năng CUDA 32-bit và 64-bit. Mặc dù hỗ trợ PhysX 32-bit đầy đủ vẫn cần thêm đóng góp từ cộng đồng, các vấn đề đã xác định đã được thêm vào lộ trình phát triển chính thức.
Cải thiện khả năng tương thích logging và runtime
Hệ thống logging của ZLUDA đã nhận được một bản nâng cấp toàn diện, hiện ghi lại một phạm vi rộng hơn nhiều hoạt động GPU trước đây không thể nhìn thấy. Logging nâng cao bao gồm các dấu vết chi tiết về hành vi nội bộ, chẳng hạn như tương tác cuBLAS với cuBLASLt và giao tiếp cuDNN với các Driver API cấp thấp hơn. Ngoài ra, đội ngũ đã giải quyết các vấn đề tương thích với ROCm / HIP phiên bản 6.4 của AMD , điều này đã giới thiệu những thay đổi giao diện nhị phân ứng dụng đáng kể đang khiến ZLUDA gọi các hoạt động không chính xác.
Ý nghĩa rộng lớn hơn đối với tính toán GPU
Tiến bộ của dự án ZLUDA có thể định hình lại cảnh quan tính toán GPU bằng cách phá vỡ sự độc quyền hiệu quả của NVIDIA đối với các ứng dụng dựa trên CUDA . Với CUDA của NVIDIA vẫn phần lớn không thể tiếp cận được đối với các nhà sản xuất GPU khác và AMD tập trung vào ngăn xếp ROCm của mình, ZLUDA có thể đóng vai trò là cầu nối quan trọng giữa các hệ sinh thái phần cứng khác nhau. Thành công trong nỗ lực này sẽ cho phép các nhà nghiên cứu và phát triển AI tận dụng phần cứng từ nhiều nhà cung cấp mà không bị khóa vào hệ sinh thái của NVIDIA , có thể thúc đẩy đổi mới và cạnh tranh trong thị trường GPU .