驚天霹靂!AMD顯卡官方支持NVIDIA CUDA
2023-11-12 05:52:28
NVIDIA喜歡搞一些封閉技術,比如說PhysX物理加速、CUDA並行計算等,都僅限自家顯卡支持,不過在AMD老家德州舉辦的SC15高性能計算大會上,AMD做出了一個驚人的宣布,他們的顯卡也可以支持CUDA了!
這是AMD Boltzmann Initiative計劃的一部分,代號取自奧地利物理學家、哲學家、熱力學、統計物理學路德維希·玻爾茲曼,現代GPU中也有應用他的成果。
該計劃是AMD致力於高性能計算(HPC)、異構計算(HSA)所做的諸多努力,包含多個方面,我們這裡重點看看和CUDA相關的。
首先,AMD宣布了一個異構計算編譯器(HCC),單一編譯環境統一支持ISO C++ 11/14、C14、OpenMP 4.0,而且是同時適用於CPU、GPU。
不過即便如此,AMD也只是做到和NVIDIA差不多的水平,而後者有開發者非常喜歡的CUDA。
為此,AMD又打造了一個「異構計算可移植界面」(HIP),也就是針對AMD GPU的CUDA編譯環境,開發者可以將代碼輕鬆移植過來。
開發者可以在HIP裡得到和CUDA類似的編程語法,和大量的API指令,從而以類似CUDA的風格為AMD GPU編程。
此外它還包含一套工具集HIPify Tools,可以自動將CUDA代碼轉換成HIP代碼。
關鍵的是,無論是轉換來的還是原生的HIP代碼,就可以分別利用HCC、NVCC編譯器(利用HIP頭文件增加支持HIP)為AMD、NVIDIA GPU進行編譯了!
當然,AMD GPU是不可能直接運行編譯好的CUDA程序的,後者仍然是NVIDIA的私有技術,但是有了HIP這種代碼級別的轉換,開發者可以輕鬆挖掘AMD GPU潛力了。雖然轉換的效率總是不如原生的,但至少比沒有強得多。
微軟直接移植Android應用的努力歸於失敗,但是在高性能計算領域,開發者通常都是完全自己寫自己的代碼,並針對特定架構優化,所以HIP代碼轉換是十分有用的。
不過,AMD HIP能否隨時跟上NVIDIA CUDA的最新技術特性還是個未知數,更關鍵的是NVIDIA對此怎麼看?會不會告AMD侵權?
AMD的法律團隊肯定研究過這個問題,尤其是Google就搞開源的CUDA編譯器GPUCC。
反正,AMD說了,開發社區對HIP是非常非常歡迎的。■