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