現在Intel的處理器大部分都會整合核顯,在台式機上這傢伙大多數時間都被關閉了,即使把它打開你也會發現他長期處於閒置狀態,那麼有沒有人挖掘一下它的利用價值呢?還真有,現在github上有一個叫ZLUDA的項目,它的目的就是用Intel的GPU運行CUDA程序,而且目標是無需對程序進行任何修改就能運行。

該項目基於Intel的oneAPI零級規範,這是一個個人項目,與Intel和NVIDIA沒有直接關係。項目的創建者聲稱它可以提供近乎原生的性能,讓Intel的GPU在沒有性能損失的情況下運行CUDA程序。當然目前該項目只是出於起步狀態,缺乏對CUDA的全面支持,實際上作者只展示了用Core i7-8700K上的UHD Graphics 630使用ZLUDA和OpenCL運行GeekBench 5的情況,ZLUDA讓GeekBench認為UHD 630是一個慢速的NVIDIA GPU,從而走了CUDA API來運算,上面就是ZLUDA和OpenCL的運行結果,6個項目裏面有4個是比OpenCL更快,整體來説快了10%。
目前ZLUDA支持Intel的Gen 9以及更新版本的核顯,但目前測試是基於Gen 9核顯的,不知道它在Ice Lake上的Gen 11與Tiger Lake上的Xe有怎麼樣的表現。至於AMD的GPU,目前是不支持的,但技術上是可行的,以後可能會支持。
其實Intel有自己的DPC++,AMD也有HIP,但這兩個都需程序員在開發時就套用特定的API工具,而ZLUDA不需要任何額外的工作就能讓CUDA的程序在Intel GPU上運行,當然如果想運行效率高就需要GPU支持對應的硬件指令,沒有的也就會改用軟件進行運算,這對性能會有明顯影響,上面GeekBench 5那兩個跑得比OpenCL慢的項目就很能説明問題。
當然這個ZLUDA項目會威脅到NVIDIA的CUDA生態系統,估計NVIDIA對它會不太滿意,但其他人應該會很樂意看到它的誕生。