ZLUDA giúp chạy ứng dụng CUDA trên GPU AMD
- ZLUDA 3, dự án mã nguồn mở do Andrzej Janik phát triển, cho phép chạy các ứng dụng dựa trên GPU được thiết kế cho GPU NVIDIA trên phần cứng của nhà sản xuất khác.
- Công nghệ này được thiết kế để cho phép chạy các ứng dụng hiện có trên phần cứng mới mà không cần thêm công việc từ phía nhà phát triển.
- Các phiên bản trước của ZLUDA cho phép chạy ứng dụng CUDA trên GPU Intel, nhưng ở phiên bản 3 đã chuyển sang GPU AMD.
ZLUDA không phải dành cho GPU Intel sao?
- ZLUDA lần đầu được phát hành vào năm 2020 như một giải pháp thay thế cho CUDA trên GPU Intel.
- Sau khi phát hành phiên bản 2 vào năm 2021, Janik thông báo rằng anh không thể tiếp tục phát triển dự án, nhưng sau đó Intel bắt đầu đánh giá ZLUDA như một công nghệ chính thức.
- Intel kết luận rằng không có cơ sở kinh doanh cho việc chạy ứng dụng CUDA trên GPU Intel, và Janik rời công ty rồi tiếp cận AMD.
- AMD đã đánh giá ZLUDA trong 2 năm, nhưng quyết định không tiếp tục dự án và Janik đã công bố mã nguồn đã cập nhật dưới dạng mã nguồn mở.
Vì sao điều này quan trọng với nghệ sĩ CG?
- ZLUDA phiên bản 3 cho phép chạy các ứng dụng dựa trên GPU được phát triển bằng CUDA API của NVIDIA trên GPU AMD.
- Trong các ngành như VFX, motion graphics và visualization, nhiều ứng dụng CG chủ chốt, đặc biệt là các renderer, dựa trên CUDA và chỉ dành cho NVIDIA.
- AMD có công nghệ riêng là HIP, nhưng việc sử dụng nó đòi hỏi công sức từ phía nhà phát triển phần mềm.
- ZLUDA thực tế được xây dựng dựa trên HIP và được thiết kế để chạy ứng dụng CUDA trên GPU AMD mà không cần chỉnh sửa.
Chạy ứng dụng CUDA qua ZLUDA nhanh đến mức nào?
- Janik mô tả việc chạy ứng dụng CUDA trên GPU AMD đạt "hiệu năng gần như native".
- Tuy nhiên, theo kho GitHub của ZLUDA, 3DF Zephyr và RealityCapture chạy "chậm hơn nhiều" dưới ZLUDA.
- Nhiều nhà phát triển GPU renderer cũng sử dụng OptiX, API thứ hai của NVIDIA góp phần vào hiệu năng, và ZLUDA chỉ cung cấp hỗ trợ "tối thiểu" cho OptiX.
Các ứng dụng CG khác có thể chạy trên GPU AMD thông qua ZLUDA không?
- Nếu không có kiểm thử từ người dùng, rất khó để nói các ứng dụng CG dựa trên CUDA khác sẽ chạy tốt đến mức nào dưới ZLUDA.
- Có nhiều vấn đề đã được biết đến, và Janik chỉ đạt thành công hạn chế với các GPU renderer khác.
Trong tương lai, liệu nhiều ứng dụng CG dựa trên CUDA hơn có thể chạy dưới ZLUDA không?
- Janik nói rằng nếu không có hỗ trợ từ Intel hoặc AMD thì ZLUDA "trên thực tế đang bị bỏ rơi".
- Anh vẫn cởi mở với các đề xuất có thể đưa dự án tiến lên, nhưng nếu không thì nhiều khả năng chỉ hỗ trợ các công nghệ NVIDIA mà cá nhân anh quan tâm.
- Mã nguồn hiện đã được công khai, và ngay cả ở trạng thái hiện tại, ZLUDA vẫn có thể được các nhà phát triển phần mềm dùng như một phần của quá trình "port dần dần" từ CUDA sang HIP.
Giấy phép và yêu cầu hệ thống
- Các bản biên dịch của ZLUDA 3 có sẵn cho Windows và Linux. Mã nguồn được cung cấp theo giấy phép Apache 2.0 hoặc MIT.
Ý kiến của GN⁺
- ZLUDA có tiềm năng thúc đẩy cạnh tranh trên thị trường GPU bằng cách mở hệ sinh thái CUDA độc quyền của NVIDIA cho người dùng AMD.
- Dự án này có thể đặc biệt hữu ích cho người dùng phần mềm render hoặc ứng dụng tính toán khoa học phụ thuộc vào CUDA, nhờ cung cấp thêm lựa chọn phần cứng.
- Tuy nhiên, vì ZLUDA vẫn còn ở giai đoạn đầu và chưa cung cấp đầy đủ hiệu năng cũng như khả năng tương thích, việc triển khai trong môi trường production thực tế cần được cân nhắc thận trọng.
- Việc thu hẹp khoảng cách công nghệ giữa AMD và NVIDIA có thể mang lại cho người dùng mức giá tốt hơn và nhiều lựa chọn hơn, qua đó thúc đẩy cạnh tranh lành mạnh trên thị trường.
- Sự quan tâm và đóng góp liên tục từ cộng đồng mã nguồn mở sẽ rất quan trọng đối với thành công của dự án này, đồng thời tạo ra cơ hội tốt để các chuyên gia trong lĩnh vực liên quan tham gia đóng góp.
1 bình luận
Ý kiến Hacker News
Thảo luận trước đó cách đây 22 ngày: AMD phát triển một bản triển khai CUDA dựa trên ROCm và phát hành mã nguồn mở [0], đã có 400 bình luận.
Việc AMD ngừng tài trợ cho dự án này là cực kỳ phi lý. Ngay khi được phát hành mã nguồn mở, nó đã bắt đầu mang lại giá trị cho người dùng AMD, dù đây có vẻ phải là ưu tiên hàng đầu của AMD, thế mà AMD lại lãng phí nhiều năm với hai (hay là ba?) API thay thế gần như không có hỗ trợ nào cho đến nay.
Nội dung liên quan đến cuộc thảo luận: Nvidia cấm sử dụng lớp dịch cho phần mềm CUDA để chạy trên các chip khác [1]
Intel cuối cùng cũng đi đến kết luận rằng "không có cơ sở kinh doanh cho việc chạy các ứng dụng CUDA trên GPU Intel". Điều này xác nhận điều mà bất kỳ ai từng làm việc với AMD GPGPU đều đã biết.
Chuyện phần mềm của AMD cực kỳ tệ là điều ai cũng biết, và đó là yếu tố duy nhất ngăn AMD trở thành một công ty 2 nghìn tỷ đô la. Trình biên dịch OpenCL của AMD từng có lỗi, và bạn có thể dễ dàng làm nó crash bằng segfault (cuối cùng tôi bỏ cuộc và không báo lỗi). Việc AMD không phát triển một đối thủ cạnh tranh với CUDA là một tầm nhìn cực kỳ ngắn hạn. Tôi không hiểu vì sao hội đồng quản trị AMD vẫn chưa bị thay thế. Bạn có thể làm ra phần cứng tốt nhất, nhưng nếu phần mềm để sử dụng nó lại tệ hại thì sẽ không ai mua hay dùng. Với tư cách khách hàng, có cảm giác như hội đồng quản trị AMD không hề quan tâm đến giá trị hàng nghìn tỷ đô la bị bỏ lại trên bàn, nên tôi buộc phải mua các card Nvidia bị định giá quá cao. Những ai sở hữu cổ phiếu AMD nên đặt câu hỏi, và hội đồng quản trị đó nên bị cuốn thẳng xuống cống gần nhất.
Tôi tự hỏi liệu có ngôn ngữ lập trình nào có thể biên dịch sang nhiều ngôn ngữ kernel khác nhau như Metal, CUDA, hay thứ mà AMD đang có không. Nếu chưa có thì tại sao lại không? Giống như có các trình biên dịch C có thể biên dịch sang nhiều kiến trúc CPU khác nhau, chẳng phải cũng nên có trình biên dịch cho nhiều kiến trúc GPU sao? Có lẽ chỉ là chưa ai làm mà thôi.
Tôi tự hỏi có ai đã thử chạy thứ này với các công cụ photogrammetry OSS như Meshroom chưa. Bài viết có nhắc đến một vài thứ độc quyền, nhưng thực ra không cần quá nhiều.
Vấn đề của GPU AMD không nằm ở từng kernel riêng lẻ mà nằm ở các thư viện. Có vẻ như dự án này đã đi theo hướng đó, khi trong ghi chú phát hành có nhắc đến việc 'thêm hỗ trợ tối thiểu cho cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL, NVML'. Không ai biết liệu sau khi AMD ngừng tài trợ, dự án này có thể giữ được đà phát triển hay không.
Đây gần như là cùng một vấn đề với việc dùng bytecode JVM trong vụ Oracle kiện Google.
Cuộc chiến (tốn kém) liên tục của geohot với GPU AMD cũng có liên quan: liên kết Twitter