A卡支持CUDA?AMD給NV挖個大坑!
為了推動GPU通用計算,AMD聯(lián)絡(luò)多家公司成立了HSA異構(gòu)運算基金會,今年9月份已經(jīng)推出了1.0版HSA規(guī)范。只不過HAS雖然人多勢眾,但AMD在GPU通用計算上還是不如NVIDIA的CUDA做得好,這次的TOP500計算機中有104臺是異構(gòu)系統(tǒng)的,其中使用NVIDIA加速卡的有66臺,使用AMD顯卡的只有3臺。為了解決這個問題,AMD在SC15國際超算會議上宣布了一個“玻爾茲曼計劃”,可以讓自家的專業(yè)卡FirePro運行原本針對CUDA開發(fā)的代碼,這是要把NVIDIA氣死??!
AMD推出的“玻爾茲曼計劃”(Boltzmann initiative)以奧地利物理學(xué)家、哲學(xué)家路德維希?愛德華?玻爾茲曼命名,他從統(tǒng)計學(xué)角度闡釋了熱力學(xué)第二定律,提出了著名的玻爾茲曼熵公式,現(xiàn)代GPU也從玻爾茲曼的工作中受益。
AMD的玻爾茲曼計劃,跟NVIDIA的GPU代號一樣都選擇了著名物理學(xué)家。
AMD的玻爾茲曼計劃實際上分為兩個層面的,首先AMD徹底返修了自家的驅(qū)動,開發(fā)了專用的64位Linux驅(qū)動,后者允許AMD的硬件運行無頭Linux(headless linux,指沒有外設(shè)、顯示的Linux)并完整應(yīng)用HSA功能,AMD稱之為HSA+運行時,除了HSA功能之外HSA+實際上還可以添加額外的、用于FirePro顯卡的額外指令。
第二部分就更重要了,AMD推出了HCC異構(gòu)計算編譯器,支持C++語言,同時支持CPU和GPU,是專為高性能計算開發(fā)的編譯器。
第三個部分是HIP(Heterogeneous-compute Interface for Portability)可移植異構(gòu)計算界面,這個東西就是專門對付NVIDIA的。由于NVIDIA專心搞自家的CUDA,對OpenCL并不怎么上心,硬件規(guī)格支持也僅限于OpenCL 1.2,AMD倒是一心想著支持OpenCL,但NVIDIA的不配合只能讓他們痛下殺招――HIP可以讓開發(fā)者把CUDA代碼轉(zhuǎn)換成AMD HIP代碼,支持CUDA與HIP之間的源碼到源碼轉(zhuǎn)換。
很多人認為AMD的HIP實際上是讓AMD顯卡支持了CUDA,但實際上并不是,AMD是不可能這么做的,NVIDIA同樣也不會允許AMD這么做。HIP實際上是開發(fā)者把針對CUDA開發(fā)的代碼轉(zhuǎn)換成AMD顯卡可以運行的代碼,只不過是幫助開發(fā)者節(jié)省重新開發(fā)的時間,提高效率。
這樣做其實并不動搖NVIDIA的CUDA地位,因為開發(fā)者對CUDA開發(fā)的代碼不受影響,而對AMD來說,HIP的存在就相當于多了一個從NVIDIA那邊加速移植代碼的工具,這多少可以緩解AMD在GPU運算環(huán)境上落后于NVIDIA的局面。