近幾年來(lái),深度學(xué)習(xí)大火,各類(lèi)芯片也如雨后春筍般出現(xiàn),像什么GPU, TPU, DPU, NPU, BPU……
你分得清嗎,下面來(lái)小白一下
先來(lái)看看這幾個(gè)詞的英文全稱(chēng):
- CPU全稱(chēng):Central Processing Unit, 中央處理器;
- GPU全稱(chēng):Graphics Processing Unit, 圖像處理器;
- TPU全稱(chēng):Tensor Processing Unit, 張量處理器;
- DPU全稱(chēng):Deep learning Processing Unit, 深度學(xué)習(xí)處理器;
- NPU全稱(chēng):Neural network Processing Unit, 神經(jīng)網(wǎng)絡(luò)處理器;
- BPU全稱(chēng):Brain Processing Unit, 大腦處理器。
1、CPU
CPU的全稱(chēng)為 Central Processing Unit(中央處理器),它其實(shí)就是機(jī)器的“大腦”, 主要包括運(yùn)算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數(shù)據(jù)、控制及狀態(tài)的總線。它是由計(jì)算單元、控制單元和存儲(chǔ)單元三大部分組成。如下圖所示
2、GPU
為了解決CPU在大規(guī)模并行運(yùn)算中遇到的困難、提升速度,GPU應(yīng)運(yùn)而生,采用數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線。
GPU(Graphics Processing Unit,圖形處理器),GPU最初用在個(gè)人電腦、工作站、游戲機(jī)和一些移動(dòng)設(shè)備上運(yùn)行繪圖運(yùn)算工作的微處理器。如下圖所示:
一提到GPU,就容易想到“并行計(jì)算”。并行計(jì)算(Parallel Computing)是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程,提高計(jì)算機(jī)系統(tǒng)計(jì)算速度和處理能力的一種有效手段。并行計(jì)算的基本思想是使用多個(gè)處理器來(lái)共同求解同一問(wèn)題,將被求解的問(wèn)題分解成若干個(gè)部分,各部分均由一個(gè)獨(dú)立的處理機(jī)來(lái)并行計(jì)算。
那么為什么GPU特別擅長(zhǎng)處理圖像數(shù)據(jù)呢?
這是因?yàn)閳D像上的每一個(gè)像素點(diǎn)都有被處理的需要,而且每個(gè)像素點(diǎn)處理的過(guò)程和方式都十分相似,因此可以并行計(jì)算,所以GPU在圖像處理方面的能力就非常強(qiáng)。
下圖是CPU與GPU架構(gòu)的對(duì)比圖:
3、TPU
TPU是google在2016年5月提出來(lái)的一個(gè)針對(duì)Tensorflow平臺(tái)的可編程AI加速器。
TPU可提供高吞吐量的低精度計(jì)算,用于模型的前向運(yùn)算而不是模型訓(xùn)練,且能效(TOPS/w)更高。據(jù)報(bào)告,TPU與同期的CPU和GPU相比,性能可提升15-30倍,以及30-80倍的效率(性能/瓦特)提升。
那么,TPU是怎么做到如此之快呢?
(1)深度學(xué)習(xí)的定制化研發(fā):TPU 是谷歌專(zhuān)門(mén)為加速深層神經(jīng)網(wǎng)絡(luò)運(yùn)算能力而研發(fā)的一款芯片,其實(shí)也是一款 ASIC(專(zhuān)用集成電路)。
(2)大規(guī)模片上內(nèi)存:TPU 在芯片上使用了高達(dá) 24MB 的局部?jī)?nèi)存,6MB 的累加器內(nèi)存以及用于與主控處理器進(jìn)行對(duì)接的內(nèi)存。
(3)低精度 (8-bit) 計(jì)算:TPU 的高性能還來(lái)源于對(duì)于低運(yùn)算精度的容忍,TPU 采用了 8-bit 的低精度運(yùn)算,也就是說(shuō)每一步操作 TPU 將會(huì)需要更少的晶體管。
下圖是TPU各模塊的是框架圖:
TPU 各模塊的框圖。主要計(jì)算部分是右上方的黃色矩陣乘法單元。其輸入是藍(lán)色的「權(quán)重 FIFO」和藍(lán)色的統(tǒng)一緩存(Unified Buffer(UB));輸出是藍(lán)色的累加器(Accumulators(Acc))。黃色的激活(Activation)單元在 Acc 中執(zhí)行流向 UB 的非線性函數(shù)。
4、DPU
DPU深度學(xué)習(xí)處理器最早由國(guó)內(nèi)深鑒科技提出,基于Xilinx可重構(gòu)特性的FPGA芯片,設(shè)計(jì)專(zhuān)用的深度學(xué)習(xí)處理單元,而且抽象出定制化的指令集和編譯器,實(shí)現(xiàn)了快速的開(kāi)發(fā)與產(chǎn)品迭代。
5、NPU
NPU(神經(jīng)網(wǎng)絡(luò)處理器),是在電路層中模擬人類(lèi)神經(jīng)元和突觸,并且用深度學(xué)習(xí)指令集直接處理大規(guī)模的神經(jīng)元和突觸,一條指令完成一組神經(jīng)元的處理。NPU的典型代表有國(guó)內(nèi)的寒武紀(jì)芯片和IBM的TrueNorth。
6、BPU
BPU(大腦處理器),是由地平線科技提出的嵌入式人工智能處理器架構(gòu)。傳統(tǒng)CPU芯片是做所有事情,所以一般采用串行結(jié)構(gòu)。而B(niǎo)PU主要是用來(lái)支撐深度神經(jīng)網(wǎng)絡(luò),比如圖像、語(yǔ)音、文字、控制等方面的任務(wù),而不是去做所有的事情。