01
先了解什么是異構(gòu)并行計(jì)算
同構(gòu)計(jì)算是使用相同類型指令集和體系架構(gòu)的計(jì)算單元組成系統(tǒng)的計(jì)算方式。 而異構(gòu)計(jì)算主要是指使用不同類型指令集和體系架構(gòu)的計(jì)算單元組成系統(tǒng)的計(jì)算方式,常見(jiàn)的計(jì)算單元類別包括CPU、GPU、DSP、ASIC、FPGA等。 異構(gòu)計(jì)算用簡(jiǎn)單的公式可以表示為“CPU+XXX”。舉例來(lái)說(shuō),AMD著力發(fā)展的APU就屬于異構(gòu)計(jì)算,用公式表示就是CPU+GPU。 由于術(shù)業(yè)有專攻,CPU、GPU、DSP、ASIC、FPGA各有所長(zhǎng),在一些場(chǎng)景下,引入特定計(jì)算單元,讓計(jì)算系統(tǒng)變成混合結(jié)構(gòu),就能讓CPU、GPU、DSP、FPGA執(zhí)行自己最擅長(zhǎng)的任務(wù)。 異構(gòu)計(jì)算(Heterogeneous Computing)在80年代中期就已產(chǎn)生,其定義更加寬泛。異構(gòu)計(jì)算主要是指使用不同類型指令集和體系架構(gòu)的計(jì)算單元組成系統(tǒng)的計(jì)算方式。常見(jiàn)的計(jì)算單元類別包括CPU、GPU等協(xié)處理器、DSP、ASIC、FPGA等。一個(gè)異構(gòu)計(jì)算平臺(tái)往往包含使用不同指令集架構(gòu)(ISA)的處理器。 從軟件的角度來(lái)講,異構(gòu)并行計(jì)算框架是讓軟件開(kāi)發(fā)者高效地開(kāi)發(fā)異構(gòu)并行的程序,充分使用計(jì)算平臺(tái)資源。從硬件角度來(lái)講,一方面,多種不同類型的計(jì)算單元通過(guò)更多時(shí)鐘頻率和內(nèi)核數(shù)量提高計(jì)算能力,另一方面,各種計(jì)算單元通過(guò)技術(shù)優(yōu)化(如GPU從底層架構(gòu)支持通用計(jì)算,通過(guò)分支預(yù)測(cè)、原子運(yùn)算、動(dòng)態(tài)并行、統(tǒng)一尋址、NIC直接訪問(wèn)顯存等能力)提高執(zhí)行效率。
正是因?yàn)楫悩?gòu)計(jì)算在理論上有著諸多的優(yōu)勢(shì),一些媒體將“CPU+XXX”稱為下一代處理器。 異構(gòu)計(jì)算在理論上相對(duì)于同構(gòu)計(jì)算擁有很多優(yōu)勢(shì)——HSA能夠簡(jiǎn)化芯片結(jié)構(gòu)設(shè)計(jì)、降低應(yīng)用編程門檻、縮短項(xiàng)目研發(fā)周期、顯著提升芯片性能、廣泛共享軟件生態(tài)。 有廠家甚至宣傳異構(gòu)計(jì)算可以實(shí)現(xiàn)任何程序都不必費(fèi)心考慮不同處理器內(nèi)核之間的存儲(chǔ)差異。但在現(xiàn)階段,異構(gòu)計(jì)算除了在超算上取得了明顯成績(jī),在其他領(lǐng)域優(yōu)勢(shì)并不大。 即便異構(gòu)計(jì)算目前還存在這樣或那樣的一些問(wèn)題,但卻是非常具有發(fā)展?jié)摿Φ募夹g(shù)。 隨著技術(shù)的進(jìn)步,電子消費(fèi)品市場(chǎng)對(duì)于高性能并行計(jì)算的需求正在爆發(fā)性增長(zhǎng),特別是在機(jī)器視覺(jué)、人工智能、云計(jì)算、AR/VR、軟件定義無(wú)線電以及其他新興領(lǐng)域,都對(duì)異構(gòu)計(jì)算系統(tǒng)有著非常大的需求。 而HSA在系統(tǒng)編程方式上的邁進(jìn)使得一個(gè)復(fù)雜片上系統(tǒng)能夠協(xié)調(diào)在并行計(jì)算上比CPU更高效、更低功耗的GPU、DSP以及硬件加速器等計(jì)算單元承擔(dān)大部分繁重的計(jì)算工作任務(wù),在上述新興領(lǐng)域能發(fā)揮較理想的作用。 也正是因此,Parmance公司計(jì)劃與華夏芯在ML-HSA項(xiàng)目上進(jìn)行合作——該項(xiàng)目面向機(jī)器學(xué)習(xí)和深層神經(jīng)網(wǎng)絡(luò),并針對(duì)華夏芯此前發(fā)起的開(kāi)源gccbrig項(xiàng)目進(jìn)行優(yōu)化,gccbrig項(xiàng)目為任何支持GCC的平臺(tái)提供編譯(終結(jié)轉(zhuǎn)換)功能。 國(guó)外巨頭也一直著力發(fā)展異構(gòu)計(jì)算系統(tǒng)——Intel在去年以167億美元收購(gòu)阿爾特拉,發(fā)展CPU+FPGA,AMD著力發(fā)展的APU也屬于異構(gòu)計(jì)算,像Imagination、MTK等一些廠商也在異構(gòu)計(jì)算領(lǐng)域積極布局??梢哉f(shuō),異構(gòu)計(jì)算的市場(chǎng)前景還是值得期待。 02
CPU與GPU的區(qū)別
隨著GPU的可編程性不斷增強(qiáng),GPU的應(yīng)用能力已經(jīng)遠(yuǎn)遠(yuǎn)超出了圖形渲染任務(wù),利用GPU完成通用計(jì)算的研究逐漸活躍起來(lái),將GPU用于圖形渲染以外領(lǐng)域的計(jì)算成為GPGPU(General Purpose computing on graphics processing units,基于GPU的通用計(jì)算)。而與此同時(shí)CPU則遇到了一些障礙,CPU為了追求通用性,將其中大部分晶體管主要用于構(gòu)建控制電路(比如分支預(yù)測(cè)等)和Cache,只有少部分的晶體管來(lái)完成實(shí)際的運(yùn)算工作。
CPU + GPU 是一個(gè)強(qiáng)大的組合,因?yàn)?CPU 包含幾個(gè)專為串行處理而優(yōu)化的核心,而 GPU 則由數(shù)以千計(jì)更小、更節(jié)能的核心組成,這些核心專為提供強(qiáng)勁的并行性能而設(shè)計(jì)。程序的串行部分在 CPU 上運(yùn)行,而并行部分則在 GPU上運(yùn)行。GPU 已經(jīng)發(fā)展到成熟階段,可輕松執(zhí)行現(xiàn)實(shí)生活中的各種應(yīng)用程序,而且程序運(yùn)行速度已遠(yuǎn)遠(yuǎn)超過(guò)使用多核系統(tǒng)時(shí)的情形。未來(lái)計(jì)算架構(gòu)將是并行核心 GPU 與多核 CPU 共同運(yùn)行的混合型系統(tǒng)。
1、CPU即中央處理器
CPU( Central Processing Unit, 中央處理器)就是機(jī)器的“大腦”,也是布局謀略、發(fā)號(hào)施令、控制行動(dòng)的“總司令官”。
CPU的結(jié)構(gòu)主要包括運(yùn)算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數(shù)據(jù)、控制及狀態(tài)的總線。
簡(jiǎn)單來(lái)說(shuō)就是:計(jì)算單元、控制單元和存儲(chǔ)單元,架構(gòu)如下圖所示:
圖:CPU微架構(gòu)示意圖
從字面上我們也很好理解,計(jì)算單元主要執(zhí)行算術(shù)運(yùn)算、移位等操作以及地址運(yùn)算和轉(zhuǎn)換;存儲(chǔ)單元主要用于保存運(yùn)算中產(chǎn)生的數(shù)據(jù)以及指令等;控制單元?jiǎng)t對(duì)指令譯碼,并且發(fā)出為完成每條指令所要執(zhí)行的各個(gè)操作的控制信號(hào)。
所以一條指令在CPU中執(zhí)行的過(guò)程是這樣的:讀取到指令后,通過(guò)指令總線送到控制器(黃色區(qū)域)中進(jìn)行譯碼,并發(fā)出相應(yīng)的操作控制信號(hào);然后運(yùn)算器(綠色區(qū)域)按照操作指令對(duì)數(shù)據(jù)進(jìn)行計(jì)算,并通過(guò)數(shù)據(jù)總線將得到的數(shù)據(jù)存入數(shù)據(jù)緩存器(大塊橙色區(qū)域)。過(guò)程如下圖所示:
圖:CPU執(zhí)行指令圖 CPU遵循的是馮諾依曼架構(gòu),其核心就是:存儲(chǔ)程序,順序執(zhí)行。在這個(gè)結(jié)構(gòu)圖中,負(fù)責(zé)計(jì)算的綠色區(qū)域占的面積似乎太小了,而橙色區(qū)域的緩存Cache和黃色區(qū)域的控制單元占據(jù)了大量空間。
因?yàn)镃PU的架構(gòu)中需要大量的空間去放置存儲(chǔ)單元(橙色部分)和控制單元(黃色部分),相比之下計(jì)算單元(綠色部分)只占據(jù)了很小的一部分,所以它在大規(guī)模并行計(jì)算能力上極受限制,而更擅長(zhǎng)于邏輯控制。
另外,因?yàn)樽裱T諾依曼架構(gòu)(存儲(chǔ)程序,順序執(zhí)行),CPU就像是個(gè)一板一眼的管家,人們吩咐的事情它總是一步一步來(lái)做。但是隨著人們對(duì)更大規(guī)模與更快處理速度的需求的增加,這位管家漸漸變得有些力不從心。
于是,能不能把多個(gè)處理器放在同一塊芯片上,讓它們一起來(lái)做事,這樣效率不就提高了嗎?GPU便由此誕生了。
2、GPU即圖形處理器。
GPU全稱為Graphics Processing Unit,中文為圖形處理器,就如它的名字一樣,GPU最初是用在個(gè)人電腦、工作站、游戲機(jī)和一些移動(dòng)設(shè)備(如平板電腦、智能手機(jī)等)上運(yùn)行繪圖運(yùn)算工作的微處理器。
為什么GPU特別擅長(zhǎng)處理圖像數(shù)據(jù)呢?這是因?yàn)閳D像上的每一個(gè)像素點(diǎn)都有被處理的需要,而且每個(gè)像素點(diǎn)處理的過(guò)程和方式都十分相似,也就成了GPU的天然溫床。
GPU簡(jiǎn)單架構(gòu)如下圖所示:
圖:GPU微架構(gòu)示意圖 從架構(gòu)圖我們就能很明顯的看出,GPU的構(gòu)成相對(duì)簡(jiǎn)單,有數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線,特別適合處理大量的類型統(tǒng)一的數(shù)據(jù)。 但GPU無(wú)法單獨(dú)工作,必須由CPU進(jìn)行控制調(diào)用才能工作。CPU可單獨(dú)作用,處理復(fù)雜的邏輯運(yùn)算和不同的數(shù)據(jù)類型,但當(dāng)需要大量的處理類型統(tǒng)一的數(shù)據(jù)時(shí),則可調(diào)用GPU進(jìn)行并行計(jì)算。
注:GPU中有很多的運(yùn)算器ALU和很少的緩存cache,緩存的目的不是保存后面需要訪問(wèn)的數(shù)據(jù)的,這點(diǎn)和CPU不同,而是為線程thread提高服務(wù)的。如果有很多線程需要訪問(wèn)同一個(gè)相同的數(shù)據(jù),緩存會(huì)合并這些訪問(wèn),然后再去訪問(wèn)dram。
再把CPU和GPU兩者放在一張圖上看下對(duì)比,就非常一目了然了。
GPU的工作大部分都計(jì)算量大,但沒(méi)什么技術(shù)含量,而且要重復(fù)很多很多次。
借用知乎上某大神的說(shuō)法,就像你有個(gè)工作需要計(jì)算幾億次一百以內(nèi)加減乘除一樣,最好的辦法就是雇上幾十個(gè)小學(xué)生一起算,一人算一部分,反正這些計(jì)算也沒(méi)什么技術(shù)含量,純粹體力活而已;而CPU就像老教授,積分微分都會(huì)算,就是工資高,一個(gè)老教授頂二十個(gè)小學(xué)生,你要是富士康你雇哪個(gè)?
GPU就是用很多簡(jiǎn)單的計(jì)算單元去完成大量的計(jì)算任務(wù),純粹的人海戰(zhàn)術(shù)。這種策略基于一個(gè)前提,就是小學(xué)生A和小學(xué)生B的工作沒(méi)有什么依賴性,是互相獨(dú)立的。
有一點(diǎn)需要強(qiáng)調(diào),雖然GPU是為了圖像處理而生的,但是我們通過(guò)前面的介紹可以發(fā)現(xiàn),它在結(jié)構(gòu)上并沒(méi)有專門為圖像服務(wù)的部件,只是對(duì)CPU的結(jié)構(gòu)進(jìn)行了優(yōu)化與調(diào)整,所以現(xiàn)在GPU不僅可以在圖像處理領(lǐng)域大顯身手,它還被用來(lái)科學(xué)計(jì)算、密碼破解、數(shù)值分析,海量數(shù)據(jù)處理(排序,Map-Reduce等),金融分析等需要大規(guī)模并行計(jì)算的領(lǐng)域。
所以GPU也可以認(rèn)為是一種較通用的芯片。 從根本上說(shuō)CPU和GPU它們的目的不同,且有不同側(cè)重點(diǎn),也有著不同的性能特性,在某些工作中CPU執(zhí)行得更快,另一工作中或許GPU能更好。當(dāng)你需要對(duì)大量數(shù)據(jù)做同樣的事情時(shí),GPU更合適,當(dāng)你需要對(duì)同一數(shù)據(jù)做很多事情時(shí),CPU正好。
然而在實(shí)際應(yīng)用中,后一種情形更多,也就是CPU更為靈活能勝任更多的任務(wù)。GPU能做什么?關(guān)于圖形方面的以及大型矩陣運(yùn)算,如機(jī)器學(xué)習(xí)算法、挖礦、暴力破解密碼等,GPU會(huì)大幅提高計(jì)算效率。
Cache, local memory:CPU > GPU
Threads(線程數(shù)): GPU > CPU
Registers: GPU > CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread數(shù)目大,register也必須得跟著很大才行。
SIMD Unit(單指令多數(shù)據(jù)流,以同步方式,在同一時(shí)間內(nèi)執(zhí)行同一條指令): GPU > CPU。
簡(jiǎn)單地說(shuō),CPU擅長(zhǎng)分支預(yù)測(cè)等復(fù)雜操作,GPU擅長(zhǎng)對(duì)大量數(shù)據(jù)進(jìn)行簡(jiǎn)單操作。一個(gè)是復(fù)雜的勞動(dòng),一個(gè)是大量并行的工作。
其實(shí)GPU可以看作是一種專用的CPU,專為單指令在大塊數(shù)據(jù)上工作而設(shè)計(jì),這些數(shù)據(jù)都是進(jìn)行相同的操作,要知道處理一大塊數(shù)據(jù)比處理一個(gè)一個(gè)數(shù)據(jù)更有效,執(zhí)行指令開(kāi)銷也會(huì)大大降低,因?yàn)橐幚泶髩K數(shù)據(jù),意味著需要更多的晶體管來(lái)并行工作,現(xiàn)在旗艦級(jí)顯卡都是百億以上的晶體管。
CPU呢,它的目的是盡可能快地在單個(gè)數(shù)據(jù)上執(zhí)行單個(gè)指令。由于它只需要使用單個(gè)數(shù)據(jù)單條指令,因此所需的晶體管數(shù)量要少得多,目前主流桌面CPU晶體管都是十億以下,和頂級(jí)GPU相差十倍以上,但它需要更大的指令集,更復(fù)雜的ALU(算術(shù)邏輯單元),更好的分支預(yù)測(cè),更好的虛擬化架構(gòu)、更低的延遲等等。
另外,像我們的操作系統(tǒng)Windows,它是為x86處理器編寫的,它需要做的任務(wù)執(zhí)行的進(jìn)程,在CPU上肯定更為高效,你想每個(gè)線程的任務(wù)并不相同,基本上難以并行化,完全發(fā)揮不了GPU的長(zhǎng)處。
總而言之,CPU和GPU因?yàn)樽畛跤脕?lái)處理的任務(wù)就不同,所以設(shè)計(jì)上有不小的區(qū)別。CPU的運(yùn)算速度取決于請(qǐng)了多么厲害的教授。教授處理復(fù)雜任務(wù)的能力是碾壓小學(xué)生的,但是對(duì)于沒(méi)那么復(fù)雜的任務(wù),還是頂不住人多。當(dāng)然現(xiàn)在的GPU也能做一些稍微復(fù)雜的工作了,相當(dāng)于升級(jí)成初中生高中生的水平。但還需要CPU來(lái)把數(shù)據(jù)喂到嘴邊才能開(kāi)始干活,最終還是靠CPU來(lái)管的。
03
CPU+GPU并行計(jì)算的好處
一 、CPU多核轉(zhuǎn)到GPU并行化(適合算術(shù)密集型)
雖然GPU并不適用于所有問(wèn)題的求解,但是我們發(fā)現(xiàn)那些對(duì)運(yùn)算力量耗費(fèi)巨大的科學(xué)命題都具備天然的特色。這類程序在運(yùn)行時(shí)擁有極高的運(yùn)算密度、并發(fā)線程數(shù)量和頻繁地存儲(chǔ)器訪問(wèn),無(wú)論是在音頻處理、視覺(jué)仿真還是到分子動(dòng)力學(xué)模擬和金融風(fēng)險(xiǎn)評(píng)估領(lǐng)域都有大量涉及。這種問(wèn)題如果能夠順利遷移到GPU為主的運(yùn)算環(huán)境中,將為我們帶來(lái)更高效的解決方案。
傳統(tǒng)意義上的GPU不善于運(yùn)行分支代碼,但是ATI和NVIDIA經(jīng)過(guò)長(zhǎng)期改進(jìn)其內(nèi)部架構(gòu)已經(jīng)使得GPU可以較為高效地運(yùn)行分支、循環(huán)等復(fù)雜代碼。同時(shí)因?yàn)镚PU屬于并行機(jī)范疇,相同的運(yùn)算可以應(yīng)用到每個(gè)數(shù)據(jù)元素的時(shí)候,它們可以達(dá)到最好的性能。在CPU編程環(huán)境中,寫出每個(gè)輸入數(shù)據(jù)元素有不同數(shù)量的輸入的程序很容易,但在GPU這種并行機(jī)上還是有不少麻煩。
通用的數(shù)據(jù)結(jié)構(gòu)正是GPU編程的最大困難之一。CPU程序員經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)如列表和樹(shù)在GPU身上并不容易實(shí)現(xiàn)。GPU目前還不允許任意存儲(chǔ)器訪問(wèn),而且GPU運(yùn)算單元的設(shè)計(jì)為主要操作是在表現(xiàn)位置和顏色的四維向量上。
不過(guò)這些并不能阻擋GPU編程的加速發(fā)展,因?yàn)镚PU不是真的為通用計(jì)算而設(shè)計(jì)的,需要一些努力才能讓GPU高速地服務(wù)通用計(jì)算程序。這些努力前些年是程序員而單獨(dú)實(shí)現(xiàn)的,而隨著ATI和NVIDIA開(kāi)始看到高性能計(jì)算市場(chǎng)的硬件需求,我們看到無(wú)論是Fermi架構(gòu)添加全能二級(jí)緩存和統(tǒng)一定址還是RV870架構(gòu)不斷優(yōu)化LDS并放大并發(fā)線程數(shù),這些都是GPU自身硬件體系為了適應(yīng)未來(lái)的運(yùn)算環(huán)境而做出的變革。
二、并行化編程優(yōu)點(diǎn)
在GPU并行編程過(guò)程中,OpenCL是一個(gè)不錯(cuò)的選擇。OpenCL是Open Computing Language(開(kāi)放式計(jì)算語(yǔ)言)的簡(jiǎn)稱,它是第一個(gè)為異構(gòu)系統(tǒng)的通用并行編程而產(chǎn)生的統(tǒng)一的、免費(fèi)的標(biāo)準(zhǔn)。OpenCL支持由多核的CPU、GPU、Cell類型架構(gòu)以及信號(hào)處理器(DSP)等其他的并行設(shè)備組成的異構(gòu)系統(tǒng)。
OpenCL的出現(xiàn),使得軟件開(kāi)發(fā)人員編寫高性能服務(wù)器、桌面計(jì)算系統(tǒng)以及手持設(shè)備的代碼變得更加快捷。OpenCL由用于編寫內(nèi)核程序的語(yǔ)言和定義并控制平臺(tái)的API組成,提供了基于任務(wù)和基于數(shù)據(jù)的兩種并行計(jì)算機(jī)制,使得GPU的計(jì)算不在僅僅局限于圖形領(lǐng)域,而能夠進(jìn)行更多的并行計(jì)算。但是,如果通過(guò)傳統(tǒng)的方法開(kāi)發(fā)一個(gè)能夠運(yùn)行在異構(gòu)平臺(tái)(在CPU和GPU的平臺(tái))的程序是很難的。不同的廠商,不同的產(chǎn)品型號(hào)的GPU一般有著不一樣的架構(gòu),這樣要想開(kāi)發(fā)出一款能夠高效的能夠運(yùn)用不同平臺(tái)的所有計(jì)算資源的軟件是很難的。OpenCL的出現(xiàn)有效地解決了異構(gòu)平臺(tái)的問(wèn)題。
OpenCL規(guī)范是由Khronos Group推出的,OpenCL程序不僅僅可以運(yùn)行在多核的CPU上,也可以在GPU上進(jìn)行執(zhí)行,這充分體現(xiàn)了OpenCL的跨平臺(tái)性和可移植性,也讓編程人員可以充分利用GPU的強(qiáng)大的并行計(jì)算能力,相對(duì)于CPU來(lái)說(shuō),GPU存在很多特點(diǎn)。
GPU擁有的核心的數(shù)量要比高端CPU的核心數(shù)量多很多。雖然GPU的每個(gè)運(yùn)算核心沒(méi)有CPU的每個(gè)運(yùn)算核心工作頻率高,但是GPU的總體性能-芯片面積比以及性能-功耗比比CPU高很多,所以在處理越多線程的并行計(jì)算的任務(wù)性能高很多。
GPU能夠通過(guò)大量并行線程之間的交織運(yùn)行隱藏全局的延遲,除此之外GPU還擁有大量的寄存器、局部存儲(chǔ)器和cache等用來(lái)提升外部存儲(chǔ)的訪問(wèn)性能。
在傳統(tǒng)的CPU運(yùn)算中,線程之間的切換是需要很大的開(kāi)銷的,所以在開(kāi)啟了大量線程的算法的效率是很低的。但是,在GPU中,線程之間的切換是很廉價(jià)的。
GPU的計(jì)算能力比CPU強(qiáng)很多。
三、OpenCL環(huán)境下并行化編程
OpenCL是一個(gè)開(kāi)放的工業(yè)標(biāo)準(zhǔn),它可以為CPU和GPU等不同的設(shè)備組成的異構(gòu)平臺(tái)進(jìn)行編程。OpenCL是一種語(yǔ)言,也是一個(gè)為并行編程而提供的框架,編程人員可以利用OpenCL編寫出一個(gè)能夠在GPU上執(zhí)行的通用程序。
OpenCL的技術(shù)核心包好了下面的四種模型: 平臺(tái)模型(Platform Model):OpenCL平臺(tái)模型定義了主機(jī)和設(shè)備的角色,為程序員寫在設(shè)備上執(zhí)行的OpenCL C函數(shù)(內(nèi)核)提供了一個(gè)抽象的硬件模型。平臺(tái)模型確定了主機(jī)上的處理器能夠協(xié)調(diào)執(zhí)行,而且存在一個(gè)或者多個(gè)處理器能夠執(zhí)行OpenCL C代碼(設(shè)備)。
執(zhí)行模型(Execution Model):定義如何在主機(jī)上配置OpenCL環(huán)境以及內(nèi)核(kernel)是如何在設(shè)備上執(zhí)行的。這其中包括在主機(jī)上設(shè)置OpenCL上下文,提供主機(jī)和設(shè)備交互的機(jī)制,定義了內(nèi)核在設(shè)備上執(zhí)行的兵法模式。
內(nèi)存模型(Memory Model):定義了內(nèi)核使用的抽象的內(nèi)存層次。
編程模型(Programming Model):定義了并發(fā)模型如何讓映射到物理硬件。
OpenCL框架被分成平臺(tái)層API和運(yùn)行時(shí)API,平臺(tái)層API允許應(yīng)用查詢平臺(tái)和設(shè)備,而且可以通過(guò)上下文來(lái)管理它們。運(yùn)行時(shí)的API利用上下文去管理設(shè)備上的內(nèi)核的執(zhí)行。
四、OpenCL并行化調(diào)試工具
在利用OpenCL進(jìn)行編程之后,我們可以使用gDEBugger進(jìn)行調(diào)試,gDEBugger是一個(gè)高級(jí)的OpenCL和OpenGL調(diào)試器,分析器和內(nèi)存分析器。它可以完成其他工具無(wú)法完成的工作:追蹤在OpenCL和OpenGL之上的應(yīng)用程序的活動(dòng),并發(fā)現(xiàn)系統(tǒng)實(shí)現(xiàn)的內(nèi)部發(fā)生了什么。
程序員可以在以下的情況下使用gDEBugger: 優(yōu)化OpenCL和OpenGL應(yīng)用程序性能。 快速找到與OpenCL和OpenGL相關(guān)的bug。 改善程序性能和魯棒性
五、CPU和GPU共享記憶體空間
在過(guò)去的時(shí)間,雖然GPU和CPU已整合到同一個(gè)晶片上(GPGPU技術(shù)),但是晶片在運(yùn)算時(shí)要定位記憶體的位置仍然得經(jīng)過(guò)繁雜的步驟,這是因?yàn)镃PU和GPU的記憶體池仍然是獨(dú)立運(yùn)作。之前為了解決兩者記憶體池獨(dú)立的運(yùn)算問(wèn)題,當(dāng)CPU程式需要在GPU上進(jìn)行部分運(yùn)算時(shí),CPU都必須從CPU的記憶體上復(fù)制所有的資料到GPU的記憶體上,而當(dāng)GPU上的運(yùn)算完成時(shí),這些資料還得再?gòu)?fù)制回到CPU記憶體上。
這些步驟都會(huì)不斷耗費(fèi)時(shí)間以及程式處理的效能。2012年,AMD就攜手ARM、高通、三星、聯(lián)發(fā)科等廠商成立HSA(Heterogeneous Systems Architecture)基金會(huì),希望拓展CPU和GPU協(xié)同運(yùn)算的新架構(gòu)。
日前,AMD進(jìn)一步公開(kāi)說(shuō)明此運(yùn)算架構(gòu)的新技術(shù):hUMA(heterogeneous Uniform Memory Access)。透過(guò)hUMA,CPU和GPU能共享同一個(gè)記憶體空間,并且CPU能夠直接存取GPU的記憶體位址,不必像過(guò)去得花工夫再將GPU的運(yùn)算資料復(fù)寫到CPU上。近日,在HotChips會(huì)議上,AMD連續(xù)公布了桌面FX處理器使用的Steamroller架構(gòu)、面向低功耗平臺(tái)的Jaguar架構(gòu)等,但是這都不是AMD的終極目標(biāo),他們聲稱處理器速度的競(jìng)爭(zhēng)已經(jīng)結(jié)束,未來(lái)屬于HSA。
六、未來(lái)發(fā)展趨勢(shì)
在計(jì)算機(jī)發(fā)展歷程中,為了解決各種特定的問(wèn)題,不斷有互不兼容的計(jì)算模塊被加入系統(tǒng),卻很少?gòu)娜謨?yōu)化的角度加以考察。計(jì)算機(jī)整體效率不高的現(xiàn)狀正是這種設(shè)計(jì)模式的直接后果。常見(jiàn)情況是軟件的計(jì)算負(fù)載被調(diào)度在一個(gè)并不適合當(dāng)前任務(wù)的計(jì)算設(shè)備上低效執(zhí)行。HSA則展現(xiàn)了一種全新的體系架構(gòu),可以適應(yīng)各種特性的計(jì)算任務(wù)。
HSA版本可以在CPU和GPU之間無(wú)縫地共享數(shù)據(jù),而無(wú)需內(nèi)存拷貝和緩存刷新,因?yàn)槿蝿?wù)以極低的開(kāi)銷被調(diào)度到合適的處理器上。最終的結(jié)果是HSA版本的性能高出2.3倍,而功耗降低2.4倍。相較而言,無(wú)論是多核CPU、GPU、甚至非HSA方式的混合CPU和GPU都無(wú)法達(dá)到這樣的性能水平。同樣重要的是,無(wú)需轉(zhuǎn)換到迥異的編程模型,僅僅通過(guò)C++的簡(jiǎn)單擴(kuò)展就可以實(shí)現(xiàn)程序。 04
xPU都是些什么鬼
▍APU
Accelerated Processing Unit。目前還沒(méi)有 AI 公司將自己的處理器命名為 APU,因?yàn)?AMD 早就用過(guò) APU 這個(gè)名字了。APU 是 AMD 的一個(gè)處理器品牌。AMD 在一顆芯片上集成傳統(tǒng) CPU 和圖形處理器 GPU,任務(wù)可以靈活地在 CPU 和 GPU 間分配。AMD 將這種異構(gòu)結(jié)構(gòu)稱為加速處理單元,即 APU。
Audio Processing Unit。聲音處理器,顧名思義,處理聲音數(shù)據(jù)的專用處理器。不多說(shuō),生產(chǎn) APU 的芯片商有好多家。聲卡里都有。
▍BPU
Brain Processing Unit。地平線機(jī)器人(Horizon Robotics)以 BPU 來(lái)命名自家的 AI 芯片。相比于國(guó)內(nèi)外其他 AI 芯片 start-up 公司,地平線的第一代 BPU 走的相對(duì)保守的 TSMC 的 40nm 工藝。BPU 已經(jīng)被地平線申請(qǐng)了注冊(cè)商標(biāo),其他公司就別打 BPU 的主意了。
▍CPU
上文也進(jìn)行了詳細(xì)的介紹。也不會(huì)有 AI 公司將自己的處理器命名為 CPU 的。不過(guò),CPU 與 AI 處理器并不沖突。
▍DPU
Deep-Learning Processing Unit。深度學(xué)習(xí)處理器。創(chuàng)立于 2010 年的 wave computing 公司將其開(kāi)發(fā)的深度學(xué)習(xí)加速處理器稱為 Dataflow Processing Unit(DPU),應(yīng)用于數(shù)據(jù)中心。
▍EPU
Emotion Processing Unit伴隨機(jī)情緒機(jī)器人而生,可以讓機(jī)器人具有情緒。從官方渠道消息看,EPU 本身并不復(fù)雜,也不需要做任務(wù)量巨大的神經(jīng)網(wǎng)絡(luò)計(jì)算,是基于 MCU 的芯片。
▍FPU
Floating Point Unit。浮點(diǎn)單元,不多做解釋了。現(xiàn)在高性能的 CPU、DSP、GPU 內(nèi)都集成了 FPU 做浮點(diǎn)運(yùn)算。
▍GPU
Graphics Processing Unit。圖形處理器。GPU 原來(lái)最大的需求來(lái)自 PC 市場(chǎng)上各類游戲?qū)D形處理的需求。但是隨著移動(dòng)設(shè)備的升級(jí),在移動(dòng)端也逐漸發(fā)展起來(lái)。
▍HPU
Holographic Processing Unit。全息處理器。Microsoft 專為自家 Hololens 應(yīng)用開(kāi)發(fā)的。
▍IPU
Intelligence Processing Unit。智能處理器。以 IPU 命名芯片的有兩家公司——Graphcore和Mythic。
Image Cognition Processor。圖像認(rèn)知處理器 ICP,加拿大公司 CogniVue 開(kāi)發(fā)的用于視覺(jué)處理和圖像認(rèn)知的 IP。
Image Processing Unit。圖像處理器。一些 SOC 芯片中將處理靜態(tài)圖像的模塊稱為 IPU。但是,IPU 不是一個(gè)常用的縮寫,更常見(jiàn)的處理圖像信號(hào)的處理器的縮寫為下面的 ISP。
Image Signal Processor。圖像信號(hào)處理器。這個(gè)話題也不是一個(gè)小話題。ISP 的功能,簡(jiǎn)單的來(lái)說(shuō)就是處理 camera 等攝像設(shè)備的輸出信號(hào),實(shí)現(xiàn)降噪、Demosaicing、HDR、色彩管理等功能。
▍KPU
Knowledge Processing Unit。嘉楠耘智(canaan)號(hào)稱 2017 年將發(fā)布自己的 AI 芯片 KPU。嘉楠耘智要在 KPU 單一芯片中集成人工神經(jīng)網(wǎng)絡(luò)和高性能處理器,主要提供異構(gòu)、實(shí)時(shí)、離線的人工智能應(yīng)用服務(wù)。這又是一家向 AI 領(lǐng)域擴(kuò)張的不差錢的礦機(jī)公司。作為一家做礦機(jī)芯片(自稱是區(qū)塊鏈專用芯片)和礦機(jī)的公司,嘉楠耘智累計(jì)獲得近 3 億元融資,估值近 33 億人民幣。據(jù)說(shuō)嘉楠耘智近期將啟動(dòng)股改并推進(jìn) IPO。
另:Knowledge Processing Unit 這個(gè)詞并不是嘉楠耘智第一個(gè)提出來(lái)的,早在 10 年前就已經(jīng)有論文和書(shū)籍講到這個(gè)詞匯了。只是,現(xiàn)在嘉楠耘智將 KPU 申請(qǐng)了注冊(cè)商標(biāo)。
▍MPU
Micro Processing Unit。微處理器。MPU,CPU,MCU,這三個(gè)概念差不多,知道就行了。
Mind Processing Unit。意念處理器,聽(tīng)起來(lái)不錯(cuò)?!附庾x腦電波」,「意念交流」,永恒的科幻話題。如果采集大量人類「思考」的腦電波數(shù)據(jù),通過(guò)深度學(xué)習(xí),再加上強(qiáng)大的意念處理器 MPU,不知道能否成為 mind-reader。如果道德倫理上無(wú)法接受,先了解一下家里寵物貓寵物狗的「想法」也是可以的嗎。再進(jìn)一步,從 mind-reader 發(fā)展為 mind-writer,持續(xù)升級(jí)之后,是不是就可以成為冰與火中的 Skinchanger?
▍NPU
Neural-Network Processing Unit。與 GPU 類似,神經(jīng)網(wǎng)絡(luò)處理器 NPU 已經(jīng)成為了一個(gè)通用名詞,而非某家公司的專用縮寫。由于神經(jīng)網(wǎng)絡(luò)計(jì)算的類型和計(jì)算量與傳統(tǒng)計(jì)算的區(qū)別,導(dǎo)致在進(jìn)行 NN 計(jì)算的時(shí)候,傳統(tǒng) CPU、DSP 甚至 GPU 都有算力、性能、能效等方面的不足,所以激發(fā)了專為 NN 計(jì)算而設(shè)計(jì) NPU 的需求。這里羅列幾個(gè)以 NPU 名義發(fā)布過(guò)產(chǎn)品的公司,以及幾個(gè)學(xué)術(shù)圈的神經(jīng)網(wǎng)絡(luò)加速器。
▍OPU
Optical-Flow Processing Unit。光流處理器。有需要用專門的芯片來(lái)實(shí)現(xiàn)光流算法嗎?不知道,但是,用 ASIC IP 來(lái)做加速應(yīng)該是要的。
▍PPU
Physical Processing Unit。物理處理器。要先解釋一下物理運(yùn)算,就知道物理處理器是做什么的了。物理計(jì)算,就是模擬一個(gè)物體在真實(shí)世界中應(yīng)該符合的物理定律。具體的說(shuō),可以使虛擬世界中的物體運(yùn)動(dòng)符合真實(shí)世界的物理定律,可以使游戲中的物體行為更加真實(shí),例如布料模擬、毛發(fā)模擬、碰撞偵測(cè)、流體力學(xué)模擬等。開(kāi)發(fā)物理計(jì)算引擎的公司有那么幾家,使用 CPU 來(lái)完成物理計(jì)算,支持多種平臺(tái)。但是,Ageia 應(yīng)該是唯一一個(gè)使用專用芯片來(lái)加速物理計(jì)算的公司。Ageia 于 2006 年發(fā)布了 PPU 芯片 PhysX,還發(fā)布了基于 PPU 的物理加速卡,同時(shí)提供 SDK 給游戲開(kāi)發(fā)者。2008 年被 NVIDIA 收購(gòu)后,PhysX 加速卡產(chǎn)品被逐漸取消,現(xiàn)在物理計(jì)算的加速功能由 NVIDIA 的 GPU 實(shí)現(xiàn),PhysX SDK 被 NVIDIA 重新打造。
▍QPU
Quantum Processing Unit。量子處理器。量子計(jì)算機(jī)也是近幾年比較火的研究方向。作者承認(rèn)在這方面所知甚少??梢躁P(guān)注這家成立于 1999 年的公司 D-Wave System。DWave 大概每?jī)赡昕梢詫⑵?QPU 上的量子位個(gè)數(shù)翻倍一次。
▍RPU
Resistive Processing Unit。阻抗處理單元 RPU。這是 IBM Watson Research Center 的研究人員提出的概念,真的是個(gè)處理單元,而不是處理器。RPU 可以同時(shí)實(shí)現(xiàn)存儲(chǔ)和計(jì)算。利用 RPU 陣列,IBM 研究人員可以實(shí)現(xiàn) 80TOPS/s/W 的性能。
Ray-tracing Processing Unit。光線追蹤處理器。Ray tracing 是計(jì)算機(jī)圖形學(xué)中的一種渲染算法,RPU 是為加速其中的數(shù)據(jù)計(jì)算而開(kāi)發(fā)的加速器?,F(xiàn)在這些計(jì)算都是 GPU 的事情了。
▍SPU
Streaming Processing Unit。流處理器。流處理器的概念比較早了,是用于處理視頻數(shù)據(jù)流的單元,一開(kāi)始出現(xiàn)在顯卡芯片的結(jié)構(gòu)里??梢哉f(shuō),GPU 就是一種流處理器。甚至,還曾經(jīng)存在過(guò)一家名字為「Streaming Processor Inc」的公司,2004 年創(chuàng)立,2009 年,隨著創(chuàng)始人兼董事長(zhǎng)被挖去 NVIDIA 當(dāng)首席科學(xué)家,SPI 關(guān)閉。
Speech-Recognition Processing Unit。語(yǔ)音識(shí)別處理器,SPU 或 SRPU。這個(gè)縮寫還沒(méi)有公司拿來(lái)使用?,F(xiàn)在的語(yǔ)音識(shí)別和語(yǔ)義理解主要是在云端實(shí)現(xiàn)的,比如科大訊飛??拼笥嶏w最近推出了一個(gè)翻譯機(jī),可以將語(yǔ)音傳回云端,做實(shí)時(shí)翻譯,內(nèi)部硬件沒(méi)有去專門了解。和語(yǔ)音識(shí)別相關(guān)的芯片如下。
Space Processing Unit??臻g處理器。全景攝像,全息成像,這些還都是處理我們的生活空間。當(dāng)面對(duì)廣闊的太陽(yáng)系、銀河系這些宇宙空間,是不是需要新的更強(qiáng)大的專用處理器呢?飛向 M31 仙女座星系,對(duì)抗黑暗武士,只靠 x86 估計(jì)是不行的。
▍TPU
Tensor Processing Unit。Google 的張量處理器。2016 年 AlphaGo 打敗李世石,2017 年 AlphaGo 打敗柯潔,兩次人工智能催化事件給芯片行業(yè)帶來(lái)的沖擊無(wú)疑就是 TPU 的出現(xiàn)和解密。Google 在 2017 年 5 月的開(kāi)發(fā)者 I/O 大會(huì)上正式公布了 TPU2,又稱 Cloud TPU。
▍UPU
Universe Processing Unit。宇宙處理器。和 Space Processing Unit 相比,你更喜歡哪個(gè)?
▍VPU
Vision Processing Unit。視覺(jué)處理器 VPU 也有希望成為通用名詞。作為現(xiàn)今最火熱的 AI 應(yīng)用領(lǐng)域,計(jì)算機(jī)視覺(jué)的發(fā)展的確能給用戶帶來(lái)前所未有的體驗(yàn)。為了處理計(jì)算機(jī)視覺(jué)應(yīng)用中遇到的超大計(jì)算量,多家公司正在為此設(shè)計(jì)專門的 VPU。
Visual Processing Unit。
Video Processing Unit。視頻處理器。處理動(dòng)態(tài)視頻而不是圖像,例如進(jìn)行實(shí)時(shí)編解碼。
Vector Processing Unit。向量處理器。標(biāo)量處理器、向量處理器、張量處理器,這是以處理器處理的數(shù)據(jù)類型進(jìn)行的劃分。
▍WPU
Wearable Processing Unit。一家印度公司 Ineda Systems 在 2014 年大肆宣傳了一下他們針對(duì) IOT 市場(chǎng)推出的 WPU 概念,獲得了高通和三星的注資。Ineda Systems 研發(fā)的這款「Dhanush WPU」分為四個(gè)級(jí)別,可適應(yīng)普通級(jí)別到高端級(jí)別的可穿戴設(shè)備的運(yùn)算需求,可以讓可穿戴設(shè)備的電池達(dá)到 30 天的持續(xù)續(xù)航、減少 10x 倍的能耗。但是,一切似乎在 2015 年戛然而止,沒(méi)有了任何消息。只在主頁(yè)的最下端有文字顯示,Ineda 將 WPU 申請(qǐng)了注冊(cè)商標(biāo)。
Wisdom Processing Unit。智慧處理器。
▍ZPU
Zylin CPU。挪威公司 Zylin 的 CPU 的名字。為了在資源有限的 FPGA 上能擁有一個(gè)靈活的微處理器,Zylin 開(kāi)發(fā)了 ZPU。ZPU 是一種 stack machine(堆棧結(jié)構(gòu)機(jī)器),指令沒(méi)有操作數(shù),代碼量很小,并有 GCC 工具鏈支持,被稱為「The worlds smallest 32 bit CPU with GCC toolchain」。Zylin 在 2008 年將 ZPU 在 opencores 上開(kāi)源。有組織還將 Arduino 的開(kāi)發(fā)環(huán)境進(jìn)行了修改給 ZPU 用。
▍其他非 xPU 的 AI 芯片
寒武紀(jì)科技(Cambricon)中科院背景的寒武紀(jì)并沒(méi)有用 xPU 的方式命名自家的處理器。媒體的文章既有稱之為深度學(xué)習(xí)處理器 DPU 的,也有稱之為神經(jīng)網(wǎng)絡(luò)處理器 NPU 的。陳氏兄弟的 DianNao 系列芯片架構(gòu)連續(xù)幾年在各大頂級(jí)會(huì)議上刷了好幾篇 best paper,為其公司的成立奠定了技術(shù)基礎(chǔ)。寒武紀(jì) Cambricon-X 指令集是其一大特色。目前其芯片 IP 已擴(kuò)大范圍授權(quán)集成到手機(jī)、安防、可穿戴設(shè)備等終端芯片中。據(jù)流傳,2016 年就已拿到一億元訂單。在一些特殊領(lǐng)域,寒武紀(jì)的芯片將在國(guó)內(nèi)具有絕對(duì)的占有率。最新報(bào)道顯示,寒武紀(jì)又融了 1 億美元。
IntelIntel 在智能手機(jī)芯片市場(chǎng)的失利,讓其痛定思痛,一改當(dāng)年的猶豫,在 AI 領(lǐng)域的幾個(gè)應(yīng)用方向上接連發(fā)了狠招。什么狠招呢,就是三個(gè)字:買,買,買。在數(shù)據(jù)中心/云計(jì)算方面,167 億美金收購(gòu)的 Altera,4 億美金收購(gòu) Nervana;在移動(dòng)端的無(wú)人機(jī)、安防監(jiān)控等方面,收購(gòu) Movidius(未公布收購(gòu)金額);在 ADAS 方面,153 億美金收購(gòu) Mobileye。Movidius 在前面 VPU 部分進(jìn)行了介紹,這里補(bǔ)充一下 Nervana 和 Mobileye(基于視覺(jué)技術(shù)做 ADAS 方案,不是單純的視覺(jué)處理器,所以沒(méi)寫在 VPU 部分)。
Nervana Nervana成立于 2014 年,總部在 SanDiego,以提供 AI 全棧軟件平臺(tái) Nervana Cloud 為主要業(yè)務(wù)。和硬件扯上關(guān)系的是,Nervana Cloud 除了支持 CPU、GPU 甚至 Xeon Phi 等后臺(tái)硬件外,還提供有自家定制的 Nervana Engine 硬件架構(gòu)。根據(jù) The Next Platform 的報(bào)道「Deep Learning Chip Upstart Takes GPUs to Task」,Nervana Engine 使用 TSMC 28nm 工藝,算力 55 TOPS。報(bào)道發(fā)布不到 24 小時(shí),就被 Intel 收購(gòu)了,全部 48 位員工并入 Intel。Intel 以 Nervana Engine 為核心打造了 Crest Family 系列芯片。項(xiàng)目代碼為「Lake Crest」的芯片是第一代 Nervana Engine,「Knights Crest」為第二代。哦,對(duì)了,Nervana 的 CEO 在創(chuàng)立 Nervana 之前,在高通負(fù)責(zé)一個(gè)神經(jīng)形態(tài)計(jì)算的研究項(xiàng)目,就是上面提到的 Zeroth。
Mobileye一家基于計(jì)算機(jī)視覺(jué)做 ADAS 的以色列公司,成立于 1999 年,總部在耶路撒冷。Mobileye 為自家的 ADAS 系統(tǒng)開(kāi)發(fā)了專用的芯片——EyeQ 系列。2015 年,Tesla 宣布正在使用 Mobileye 的芯片(EyeQ3)和方案。但是,2016 年 7 月,Tesla 和 Mobileye 宣布將終止合作。隨后,Mobile 于 2017 年被 Intel 以$153 億收入囊中,現(xiàn)在是 Intel 的子公司。Mobileye 的 EyeQ4 使用了 28nm SOI 工藝,其中用了 4 個(gè) MIPS 的大 CPU core 做主控和算法調(diào)度以及一個(gè) MIPS 的小 CPU core 做外設(shè)控制,集成了 10 個(gè)向量處理器(稱為 VMP,Vector Microcode Processor)來(lái)做數(shù)據(jù)運(yùn)算(有點(diǎn)眼熟,回去看看 Movidius 部分)。Mobileye 的下一代 EyeQ5 將使用 7nm FinFET 工藝,集成 18 個(gè)視覺(jué)處理器,并且為了達(dá)到自動(dòng)駕駛的 level 5 增加了硬件安全模塊。
比特大陸 Bitmain比特大陸設(shè)計(jì)的全定制礦機(jī)芯片性能優(yōu)越,讓其大賺特賺。在賣礦機(jī)芯片之余,比特大陸自己也挖挖礦??傊酒O(shè)計(jì)能力非凡、土豪有錢的比特大陸對(duì)標(biāo) NVIDIA 的高端 GPU 芯片,任性地用 16nm 的工藝開(kāi)啟了自家的 AI 芯片之路。芯片測(cè)試已有月余,據(jù)傳功耗 60W 左右,同步在招攬產(chǎn)品、市場(chǎng)人員。最近的推文爆出了這款 AI 芯片的名字:「智子(Sophon)」,來(lái)自著名的《三體》,可見(jiàn)野心不小,相信不久即將正式發(fā)布。
華為&海思市場(chǎng)期待華為的麒麟 970 已經(jīng)很長(zhǎng)時(shí)間了,內(nèi)置 AI 加速器已成公開(kāi)的秘密,據(jù)傳用了寒武紀(jì)的 IP,就等秋季發(fā)布會(huì)了。還是據(jù)傳,海思的 HI3559 用了自己研發(fā)的深度學(xué)習(xí)加速器。
蘋果蘋果正在研發(fā)一款 AI 芯片,內(nèi)部稱為「蘋果神經(jīng)引擎」(Apple Neural Engine)。這個(gè)消息大家并不驚訝,大家想知道的就是,這個(gè) ANE 會(huì)在哪款 iphone 中用上。
高通高通除了維護(hù)其基于 Zeroth 的軟件平臺(tái),在硬件上也動(dòng)作不斷。收購(gòu) NXP 的同時(shí),據(jù)傳高通也一直在和 Yann LeCun 以及 Facebook 的 AI 團(tuán)隊(duì)保持合作,共同開(kāi)發(fā)用于實(shí)時(shí)推理的新型芯片。
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229852 -
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211778 -
指令集
+關(guān)注
關(guān)注
0文章
224瀏覽量
23384
原文標(biāo)題:暈:剛分清CPU、GPU,卻發(fā)現(xiàn)還有...
文章出處:【微信號(hào):EngicoolArabic,微信公眾號(hào):電子工程技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論