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