ZLUDA CUDA 模擬器已第三次啓動。該項目曾由 AMD 悄悄資助,並展示了在 AMD GPU 上以接近原生性能運行未經修改的 CUDA 應用程序的能力。ZLUDA 被認爲是 alpha 質量,已確認可與各種原生 CUDA HPC 應用程序(例如 LAMMPS、NAMD、OpenFOAM 等)配合使用。
直到最近 AMD 要求撤銷其資助的項目部分。開發人員 Andrzej Janik 明確表示,Nvidia 不會施加壓力要求其撤銷或停止該項目。
Phoronix 上最近的一篇文章報道稱,ZLUDA在 AMD 贊助/參與之前重新開始,以避免任何受污染的源代碼。Janik 表示,一個未具名的組織現在贊助 ZLUDA 的開發。這個沉默的組織與 Janik 對 ZLUDA 的未來有着共同的願景。
有了第三個分支,開發將專注於支持多種 GPU 架構。最初,大多數開發將使用 AMD GPU(但不由 AMD 資助)。ZLUDA 的開發將保持開源並歡迎社區貢獻。此版本不會針對所有 CUDA 應用程序,而是專注於機器學習和 AI 工作負載。Phoronix 報道稱,Janik 預計大約需要一年時間才能使新的 ZLUDA 代碼成型。
創建 ZLUDA 涉及在其他 GPU 上實現 CUDA 標準 API,類似於 Google 在 Dalvik 中實現 Java API 以在 Android 設備上運行 Java 標準庫的方式。Oracle 起訴 Google 侵犯版權和專利,但 2012 年 5 月,該案的陪審團裁定 Google 並未侵犯 Oracle 的專利,審判法官裁定 Google 使用的 Java API 的結構不具有版權。因此,在其他硬件上重新實現 CUDA API 不存在法律問題。
使用 Nvidia 工具編譯 CUDA 源代碼時,代碼會被寫入 Nvidia PTX,這是一種類似於 Java 字節碼的中間表示。只要有 CUDA API,PTX 代碼就會被編譯爲適合特定 GPU 的機器代碼。這種方法使 ZLUDA 能夠與之前命運多舛的 AMD GPU 開發相媲美,實現近乎原生的性能。
如果該項目獲得持續的資金支持,AMD 和英特爾顯卡都有可能進入CUDA 城堡。
ZLUDA 迎來第三次生命
開源ZLUDA項目最初是作爲使用 Level Zero API 在Intel GPU 上運行的嵌入式 CUDA 替代品而誕生的。隨後,AMD 悄悄地開始資助該項目數年,將其作爲在 AMD GPU 上運行的可行 CUDA 實現,直到今年早些時候停止資助。隨後,AMD GPU 的 ZLUDA 開源,但 8 月,應 AMD 的要求,ZLUDA 代碼被刪除。如今,它迎來了第三次化身。ZLUDA
開發人員 Andrzej Janik 繼續從事該項目,儘管在 AMD 贊助/參與之前,他從頭開始,以避免任何受污染的源代碼。他一直在努力爭取項目贊助商,現在已成功做到這一點。有一個未具名的組織正在贊助 ZLUDA 的開發,但目前他們想成爲「隱形」贊助商,因此 Andrzej Janik 尚未透露該組織。該未具名的組織與 Janik 一樣,對 ZLUDA 的未來抱有共同的願景。
ZLUDA 正在重建,重點關注多 GPU 供應商支持,並將特別強調機器學習/AI 類型的工作負載。以前,ZLUDA 更專注於支持專業創作者工作負載,而現在它將更專注於基於 CUDA 的 AI/ML 軟件。
希望讓 Llama.cpp、PyTorch、TensorFlow 和其他使用 NVIDIA 代碼路徑的 AI/ML 軟件在 ZLUDA 上運行。在最新的 ZLUDA 重寫中,正在進行的早期工作之一是利用他從之前的 ZLUDA 實施中獲得的經驗和見解來改進 NVIDIA PTX 解析器和其他更改。
雖然 ZLUDA 未來的開發重點是支持多種 GPU 架構,但至少在最初,大多數開發都是使用 AMD GPU 完成的。新的 ZLUDA 代碼將專注於 RDNA1 和更新的支持以及 ROCm 6.1+ 計算堆棧支持。ZLUDA
的開發將保持開源,並歡迎社區貢獻。在今天計劃發佈公告之前,在與 Andrzej 的交談中,他認爲大約需要一年時間才能使新的 ZLUDA 代碼成型,但啓用不同的應用程序可能需要更長時間。 通過ZLUDA GitHub
跟蹤 ZLUDA 開發的進展。當然,隨着 ZLUDA 達到新的里程碑,您將能夠在 Phoronix 上閱讀有關它的信息。目前,ZLUDA 贊助商仍處於隱身狀態,但一旦揭曉,了解有關該組織的更多信息將會很有趣。