隨着深度學習的火熱發展,各種芯片陸續出如今人們的視野中,例如GPU, TPU, DPU, NPU, BPU……,那這些分別是什麼?它們與CPU又是什麼關係呢?下面來小白一下編程
首先介紹一下這些詞的英文全稱:緩存
下面就來科普一下這些所謂的「XPU」微信
一、CPU網絡
CPU( Central Processing Unit, 中央處理器)就是機器的「大腦」, 主要包括運算器(ALU, Arithmetic and Logic Unit)、控制單元(CU, Control Unit)、寄存器(Register)、高速緩存器(Cache)和它們之間通信的數據、控制及狀態的總線。由計算單元、控制單元和存儲單元三大部分組成。以下圖所示架構
二、GPU框架
爲了解決CPU在大規模並行運算中遇到的困難、提高速度,GPU應運而生,採用數量衆多的計算單元和超長的流水線。函數
關於GPU,先中提到的一個生物概念——並行計算。並行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程,是提升計算機系統計算速度和處理能力的一種有效手段。它的基本思想是用多個處理器來共同求解同一問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來並行計算。性能
GPU(Graphics Processing Unit),中文爲圖形處理器,GPU最初是用在我的電腦、工做站、遊戲機和一些移動設備(如平板電腦、智能手機等)上運行繪圖運算工做的微處理器。以下圖所示: 學習
爲何GPU特別擅長處理圖像數據呢?這是由於圖像上的每個像素點都有被處理的須要,並且每一個像素點處理的過程和方式都十分類似,因此GPU在圖像處理方面的能力就很是強。大數據
下圖是CPU與GPU架構的對比圖,可見GPU的架構很是簡單,但GPU沒法單獨工做,必須由CPU進行控制調用才能工做。
三、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 的非線性函數。
四、DPU
DPU深度學習處理器最先由國內深鑑科技提出,基於Xilinx可重構特性的FPGA芯片,設計專用的深度學習處理單元,且抽象出定制化的指令集和編譯器,從而實現快速的開發與產品迭代。
五、NPU
NPU,神經網絡處理器,在電路層模擬人類神經元和突觸,而且用深度學習指令集直接處理大規模的神經元和突觸,一條指令完成一組神經元的處理。NPU的典型表明有國內的寒武紀芯片和IBM的TrueNorth。
六、BPU
BPU, 大腦處理器,是由地平線科技提出的嵌入式人工智能處理器架構。傳統CPU芯片是作全部事情,因此通常採用串行結構。BPU主要是用來支撐深度神經網絡,好比圖像、語音、文字、控制等方面的任務,而不是去作全部的事情。
歡迎關注本人的微信公衆號「大數據與人工智能Lab」(BigdataAILab),獲取更多資訊