CPU即中央處理器(Central Processing Unit)
GPU即圖形處理器(Graphics Processing Unit)
TPU即谷歌的張量處理器(Tensor Processing Unit)
NPU即神經(jīng)網(wǎng)絡處理器(Neural network Processing Unit)
概括三者區(qū)別:
CPU雖然有多核,但一般也就幾個,每個核都有足夠大的緩存和足夠多的數(shù)字和邏輯運算單元,需要很強的通用性來處理各種不同的數(shù)據(jù)類型,同時又要邏輯判斷又會引入大量的分支跳轉(zhuǎn)和中斷的處理,并輔助有很多加速分支判斷甚至更復雜的邏輯判斷的硬件;
GPU的核數(shù)遠超CPU,被稱為眾核(NVIDIA Fermi有512個核)。每個核擁有的緩存大小相對小,數(shù)字邏輯運算單元也少而簡單(GPU初始時在浮點計算上一直弱于CPU),面對的則是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境。
TPU是一款為機器學習而定制的芯片,經(jīng)過了專門深度機器學習方面的訓練,它有更高效能(每瓦計算能力)。大致上,相對于現(xiàn)在的處理器有7年的領(lǐng)先優(yōu)勢,寬容度更高,每秒在芯片中可以擠出更多的操作時間,使用更復雜和強大的機器學習模型,將之更快的部署,用戶也會更加迅速地獲得更智能的結(jié)果。
所謂NPU, 即神經(jīng)網(wǎng)絡處理器,用電路模擬人類的神經(jīng)元和突觸結(jié)構(gòu)。
CPU
中央處理器(CPU,Central Processing Unit),是電子計算機的主要設(shè)備之一,電腦中的核心配件。其功能主要是解釋計算機指令以及處理計算機軟件中的數(shù)據(jù)。電腦中所有操作都由CPU負責讀取指令,對指令譯碼并執(zhí)行指令的核心部件。
CPU的結(jié)構(gòu)主要包括運算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數(shù)據(jù)、控制及狀態(tài)的總線。
CPU遵循的是馮諾依曼架構(gòu),其核心就是:存儲程序,順序執(zhí)行。
另外,因為遵循馮諾依曼架構(gòu)(存儲程序,順序執(zhí)行),CPU就像是個一板一眼的管家,人們吩咐的事情它總是一步一步來做。但是隨著人們對更大規(guī)模與更快處理速度的需求的增加,這位管家漸漸變得有些力不從心。
于是,大家就想,能不能把多個處理器放在同一塊芯片上,讓它們一起來做事,這樣效率不就提高了嗎?
沒錯,GPU便由此誕生了。
GPU
在正式講解GPU之前,我們先來講講上文中提到的一個概念:并行計算。
并行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程,是提高計算機系統(tǒng)計算速度和處理能力的一種有效手段。它的基本思想是用多個處理器來共同求解同一問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來并行計算。
并行計算可分為時間上的并行和空間上的并行。
時間上的并行是指流水線技術(shù),比如說工廠生產(chǎn)食品的時候分為四步:清洗-消毒-切割-包裝。
如果不采用流水線,一個食品完成上述四個步驟后,下一個食品才進行處理,耗時且影響效率。但是采用流水線技術(shù),就可以同時處理四個食品。這就是并行算法中的時間并行,在同一時間啟動兩個或兩個以上的操作,大大提高計算性能。
空間上的并行是指多個處理機并發(fā)的執(zhí)行計算,即通過網(wǎng)絡將兩個以上的處理機連接起來,達到同時計算同一個任務的不同部分,或者單個處理機無法解決的大型問題。
比如小李準備在植樹節(jié)種三棵樹,如果小李1個人需要6個小時才能完成任務,植樹節(jié)當天他叫來了好朋友小紅、小王,三個人同時開始挖坑植樹,2個小時后每個人都完成了一顆植樹任務,這就是并行算法中的空間并行,將一個大任務分割成多個相同的子任務,來加快問題解決速度。
所以說,如果讓CPU來執(zhí)行這個種樹任務的話,它就會一棵一棵的種,花上6個小時的時間,但是讓GPU來種樹,就相當于好幾個人同時在種。
GPU全稱為Graphics Processing Unit,中文為圖形處理器,就如它的名字一樣,GPU最初是用在個人電腦、工作站、游戲機和一些移動設(shè)備(如平板電腦、智能手機等)上運行繪圖運算工作的微處理器。
為什么GPU特別擅長處理圖像數(shù)據(jù)呢?這是因為圖像上的每一個像素點都有被處理的需要,而且每個像素點處理的過程和方式都十分相似,也就成了GPU的天然溫床。
但GPU無法單獨工作,必須由CPU進行控制調(diào)用才能工作。CPU可單獨作用,處理復雜的邏輯運算和不同的數(shù)據(jù)類型,但當需要大量的處理類型統(tǒng)一的數(shù)據(jù)時,則可調(diào)用GPU進行并行計算。
GPU的工作大部分都計算量大,但沒什么技術(shù)含量,而且要重復很多很多次。
借用知乎上某大神的說法,就像你有個工作需要計算幾億次一百以內(nèi)加減乘除一樣,最好的辦法就是雇上幾十個小學生一起算,一人算一部分,反正這些計算也沒什么技術(shù)含量,純粹體力活而已;而CPU就像老教授,積分微分都會算,就是工資高,一個老教授資頂二十個小學生,你要是富士康你雇哪個?
但有一點需要強調(diào),雖然GPU是為了圖像處理而生的,但是我們通過前面的介紹可以發(fā)現(xiàn),它在結(jié)構(gòu)上并沒有專門為圖像服務的部件,只是對CPU的結(jié)構(gòu)進行了優(yōu)化與調(diào)整,所以現(xiàn)在GPU不僅可以在圖像處理領(lǐng)域大顯身手,它還被用來科學計算、密碼破解、數(shù)值分析,海量數(shù)據(jù)處理(排序,Map-Reduce等),金融分析等需要大規(guī)模并行計算的領(lǐng)域。
TPU
張量處理單元(TPU)是一種定制化的 ASIC 芯片,它由谷歌從頭設(shè)計,并專門用于機器學習工作負載。TPU 為谷歌的主要產(chǎn)品提供了計算支持,包括翻譯、照片、搜索助理和 Gmail 等。Cloud TPU 將 TPU 作為可擴展的云計算資源,并為所有在 Google Cloud 上運行尖端 ML 模型的開發(fā)者與數(shù)據(jù)科學家提供計算資源。
按照上文所述,CPU和GPU都是較為通用的芯片,但是有句老話說得好:萬能工具的效率永遠比不上專用工具。
隨著人們的計算需求越來越專業(yè)化,人們希望有芯片可以更加符合自己的專業(yè)需求,這時,便產(chǎn)生了ASIC(專用集成電路)的概念。
ASIC是指依產(chǎn)品需求不同而定制化的特殊規(guī)格集成電路,由特定使用者要求和特定電子系統(tǒng)的需要而設(shè)計、制造。
而TPU(Tensor Processing Unit, 張量處理器)就是谷歌專門為加速深層神經(jīng)網(wǎng)絡運算能力而研發(fā)的一款芯片,其實也是一款ASIC。
據(jù)稱,TPU與同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。初代的TPU只能做推理,要依靠Google云來實時收集數(shù)據(jù)并產(chǎn)生結(jié)果,而訓練過程還需要額外的資源;而第二代TPU既可以用于訓練神經(jīng)網(wǎng)絡,又可以用于推理。
NPU
所謂NPU(Neural network Processing Unit), 即神經(jīng)網(wǎng)絡處理器。用電路模擬人類的神經(jīng)元和突觸結(jié)構(gòu)。
神經(jīng)網(wǎng)絡中存儲和處理是一體化的,都是通過突觸權(quán)重來體現(xiàn)。而馮·諾伊曼結(jié)構(gòu)中,存儲和處理是分離的,分別由存儲器和運算器來實現(xiàn),二者之間存在巨大的差異。當用現(xiàn)有的基于馮·諾伊曼結(jié)構(gòu)的經(jīng)典計算機(如X86處理器和英偉達GPU)來跑神經(jīng)網(wǎng)絡應用時,就不可避免地受到存儲和處理分離式結(jié)構(gòu)的制約,因而影響效率。這也就是專門針對人工智能的專業(yè)芯片能夠?qū)鹘y(tǒng)芯片有一定先天優(yōu)勢的原因之一。
NPU的典型代表有國內(nèi)的寒武紀芯片和IBM的TrueNorth。以中國的寒武紀為例,DianNaoYu指令直接面對大規(guī)模神經(jīng)元和突觸的處理,一條指令即可完成一組神經(jīng)元的處理,并對神經(jīng)元和突觸數(shù)據(jù)在芯片上的傳輸提供了一系列專門的支持。
用數(shù)字來說話,CPU、GPU與NPU相比,會有百倍以上的性能或能耗比差距–以寒武紀團隊過去和Inria聯(lián)合發(fā)表的DianNao論文為例–DianNao為單核處理器,主頻為0.98GHz,峰值性能達每秒4520億次神經(jīng)網(wǎng)絡基本運算,65nm工藝下功耗為0.485W,面積3.02平方毫米mm。
BPU
BPU(Brain Processing Unit,大腦處理器)是由地平線科技提出的嵌入式人工智能處理器架構(gòu)。第一代是高斯架構(gòu),第二代是伯努利架構(gòu),第三代是貝葉斯架構(gòu)。目前地平線已經(jīng)設(shè)計出了第一代高斯架構(gòu),并與英特爾在2017年CES展會上聯(lián)合推出了ADAS系統(tǒng)(高級駕駛輔助系統(tǒng))。
DPU
DPU(Deep learning Processing Unit, 即深度學習處理器)最早由國內(nèi)深鑒科技提出,基于Xilinx可重構(gòu)特性的FPGA芯片,設(shè)計專用的深度學習處理單元(可基于已有的邏輯單元,設(shè)計并行高效的乘法器及邏輯電路,屬于IP范疇),且抽象出定制化的指令集和編譯器(而非使用OpenCL),從而實現(xiàn)快速的開發(fā)與產(chǎn)品迭代。事實上,深鑒提出的DPU屬于半定制化的FPGA。
總結(jié)
APU – Accelerated Processing Unit, 加速處理器,AMD公司推出加速圖像處理芯片產(chǎn)品。
BPU – Brain Processing Unit,地平線公司主導的嵌入式處理器架構(gòu)。
CPU – Central Processing Unit 中央處理器, 目前PC core的主流產(chǎn)品。
DPU – Deep learning Processing Unit, 深度學習處理器,最早由國內(nèi)深鑒科技提出;另說有Dataflow Processing Unit 數(shù)據(jù)流處理器, Wave Computing 公司提出的AI架構(gòu);Data storage Processing Unit,深圳大普微的智能固態(tài)硬盤處理器。
FPU – Floating Processing Unit 浮點計算單元,通用處理器中的浮點運算模塊。
GPU – Graphics Processing Unit, 圖形處理器,采用多線程SIMD架構(gòu),為圖形處理而生。
HPU – Holographics Processing Unit 全息圖像處理器, 微軟出品的全息計算芯片與設(shè)備。
IPU – Intelligence Processing Unit, Deep Mind投資的Graphcore公司出品的AI處理器產(chǎn)品。
MPU/MCU – Microprocessor/Micro controller Unit, 微處理器/微控制器,一般用于低計算應用的RISC計算機體系架構(gòu)產(chǎn)品,如ARM-M系列處理器。
NPU – Neural Network Processing Unit,神經(jīng)網(wǎng)絡處理器,是基于神經(jīng)網(wǎng)絡算法與加速的新型處理器總稱,如中科院計算所/寒武紀公司出品的diannao系列。
RPU – Radio Processing Unit, 無線電處理器, Imagination Technologies 公司推出的集合集Wifi/藍牙/FM/處理器為單片的處理器。
TPU – Tensor Processing Unit 張量處理器, Google 公司推出的加速人工智能算法的專用處理器。目前一代TPU面向Inference,二代面向訓練。
VPU – Vector Processing Unit 矢量處理器,Intel收購的Movidius公司推出的圖像處理與人工智能的專用芯片的加速計算核心。
WPU – Wearable Processing Unit, 可穿戴處理器,Ineda Systems公司推出的可穿戴片上系統(tǒng)產(chǎn)品,包含GPU/MIPS CPU等IP。
XPU – 百度與Xilinx公司在2017年Hotchips大會上發(fā)布的FPGA智能云加速,含256核。
ZPU – Zylin Processing Unit,由挪威Zylin 公司推出的一款32位開源處理器。
責編AJX
-
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213087 -
gpu
+關(guān)注
關(guān)注
28文章
4783瀏覽量
129382 -
TPU
+關(guān)注
關(guān)注
0文章
145瀏覽量
20788
發(fā)布評論請先 登錄
相關(guān)推薦
評論