近幾年來,深度學習大火,各類芯片也如雨后春筍般出現,像什么GPU, TPU, DPU, NPU, BPU……
你分得清嗎,下面來小白一下
先來看看這幾個詞的英文全稱:
- CPU全稱:Central Processing Unit, 中央處理器;
- GPU全稱:Graphics Processing Unit, 圖像處理器;
- TPU全稱:Tensor Processing Unit, 張量處理器;
- DPU全稱:Deep learning Processing Unit, 深度學習處理器;
- NPU全稱:Neural network Processing Unit, 神經網絡處理器;
- BPU全稱:Brain Processing Unit, 大腦處理器。
1、CPU
CPU的全稱為 Central Processing Unit(中央處理器),它其實就是機器的“大腦”, 主要包括運算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通訊的數據、控制及狀態的總線。它是由計算單元、控制單元和存儲單元三大部分組成。如下圖所示

2、GPU
為了解決CPU在大規模并行運算中遇到的困難、提升速度,GPU應運而生,采用數量眾多的計算單元和超長的流水線。
GPU(Graphics Processing Unit,圖形處理器),GPU最初用在個人電腦、工作站、游戲機和一些移動設備上運行繪圖運算工作的微處理器。如下圖所示:

一提到GPU,就容易想到“并行計算”。并行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程,提高計算機系統計算速度和處理能力的一種有效手段。并行計算的基本思想是使用多個處理器來共同求解同一問題,將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來并行計算。
那么為什么GPU特別擅長處理圖像數據呢?
這是因為圖像上的每一個像素點都有被處理的需要,而且每個像素點處理的過程和方式都十分相似,因此可以并行計算,所以GPU在圖像處理方面的能力就非常強。
下圖是CPU與GPU架構的對比圖:

3、TPU

TPU是google在2016年5月提出來的一個針對Tensorflow平臺的可編程AI加速器。
TPU可提供高吞吐量的低精度計算,用于模型的前向運算而不是模型訓練,且能效(TOPS/w)更高。據報告,TPU與同期的CPU和GPU相比,性能可提升15-30倍,以及30-80倍的效率(性能/瓦特)提升。
那么,TPU是怎么做到如此之快呢?
(1)深度學習的定制化研發:TPU 是谷歌專門為加速深層神經網絡運算能力而研發的一款芯片,其實也是一款 ASIC(專用集成電路)。
(2)大規模片上內存:TPU 在芯片上使用了高達 24MB 的局部內存,6MB 的累加器內存以及用于與主控處理器進行對接的內存。
(3)低精度 (8-bit) 計算:TPU 的高性能還來源于對于低運算精度的容忍,TPU 采用了 8-bit 的低精度運算,也就是說每一步操作 TPU 將會需要更少的晶體管。
下圖是TPU各模塊的是框架圖:

TPU 各模塊的框圖。主要計算部分是右上方的黃色矩陣乘法單元。其輸入是藍色的「權重 FIFO」和藍色的統一緩存(Unified Buffer(UB));輸出是藍色的累加器(Accumulators(Acc))。黃色的激活(Activation)單元在 Acc 中執行流向 UB 的非線性函數。
4、DPU
DPU深度學習處理器最早由國內深鑒科技提出,基于Xilinx可重構特性的FPGA芯片,設計專用的深度學習處理單元,而且抽象出定制化的指令集和編譯器,實現了快速的開發與產品迭代。

5、NPU
NPU(神經網絡處理器),是在電路層中模擬人類神經元和突觸,并且用深度學習指令集直接處理大規模的神經元和突觸,一條指令完成一組神經元的處理。NPU的典型代表有國內的寒武紀芯片和IBM的TrueNorth。

6、BPU
BPU(大腦處理器),是由地平線科技提出的嵌入式人工智能處理器架構。傳統CPU芯片是做所有事情,所以一般采用串行結構。而BPU主要是用來支撐深度神經網絡,比如圖像、語音、文字、控制等方面的任務,而不是去做所有的事情。