人工智慧加速器

<image>

人工智慧加速器（AI accelerator），又稱NPU（neural processing unit，神經處理器），是一類專用於人工智慧（特別是人工神經網絡、機器視覺、機器學習等）硬體加速的微處理器或計算系統。典型的應用包括機器人學、物聯網等數據密集型應用或傳感器驅動的任務。

人工智慧加速器被用於行動裝置，例如蘋果iPhone和華為手機，以及個人電腦，例如英特爾筆記型電腦， AMD筆記型電腦和蘋果晶片 Mac。加速器用於雲計算伺服器，包括谷歌雲平台中的張量處理單元 (TPU)和亞馬遜雲計算服務中的Trainium和Inferentia晶片。此類別中存在許多廠商特有的術語，並且它是一種新興技術，沒有主導設計。

圖形處理單元由英偉達和AMD等公司設計，可以用作AI加速器，用於機器學習和推理機。

## 歷史

電腦系統經常用特殊用途的加速器（稱為協處理器）來補充CPU以執行專門的任務。值得注意的專用 硬體單元包括用於圖形的顯卡、音效卡、圖形處理單元和數位訊號處理器。隨著深度學習和人工智慧工作負載在2010年代日益突出，專門的硬體單元從現有產品中開發或改編而來，以加速這些任務。

### 早期嘗試

早期的嘗試，例如英特爾的ETANN 80170NX，採用了模擬電路來計算神經函數。

後來的全數字晶片，如Nestor/Intel Ni1000，緊隨其後。早在1993年，數位訊號處理器就被用作神經網路加速器，以加速光學字符識別軟體。

到1988年，張偉等人已經討論了用於字母識別的卷積神經網絡的快速光學實現。

在20世紀90年代，也有人嘗試為工作站創建並行高吞吐量系統，以用於包括神經網路模擬在內的各種應用。

基於FPGA的加速器也在20世紀90年代首次被探索用於推理和訓練。

2014年，陳天石等人提出了DianNao（即來自漢字的「電腦」），特別是用於加速深度神經網路。DianNao在一個3.02 mm2 的面積和485 mW 的功耗下，提供452 Gop/s 的峰值性能（深度神經網路中的關鍵操作）。後來，它的繼任者（DaDianNao， ShiDianNao， PuDianNao) 由同一組人提出，形成了DianNao家族。

智慧型手機 從2015年的高通驍龍820開始整合AI加速器。

### 異構計算

異構計算在一個系統或單個晶片中結合了許多專用處理器，每個處理器都針對特定類型的任務進行了優化。諸如Cell微處理器等架構具有與AI加速器顯著重疊的特性，包括：支持打包低精度算術、數據流架構以及優先考慮吞吐量而不是延遲。Cell微處理器已應用於許多任務，包括AI。

在21世紀初，CPU也獲得了越來越廣泛的SIMD單元，這得益於影片和遊戲工作負載；以及對打包低精度數據類型的支持。由於CPU性能的提高，它們也被用於運行AI工作負載。CPU對於具有小型或中型並行性的DNN、稀疏DNN和低批量大小的場景具有優勢。

### GPU 的使用

圖形處理單元或GPU是專門用於操縱圖像和計算局部圖像屬性的硬體。神經網路和圖像處理的數學基礎是相似的，過易並行的任務涉及矩陣，導致GPU越來越多地用於機器學習任務。

2012年，Alex Krizhevsky採用兩個GPU來訓練深度學習網路，即AlexNet，它贏得了ISLVRC-2012競賽的冠軍。在2010年代，英偉達等GPU製造商在硬體（例如，INT8運算符）和軟體（例如，cuDNN庫）方面都增加了與深度學習相關的功能。

在2010年代，GPU繼續朝著促進深度學習的方向發展，包括在自動駕駛汽車等設備中進行訓練和推理。英偉達等GPU開發商的NVLink正在開發額外的連接能力，以滿足AI受益的數據流工作負載。隨著GPU越來越多地應用於AI加速，GPU製造商已經整合了神經網路-專用硬體，以進一步加速這些任務。張量核心旨在加快神經網路的訓練。

GPU繼續用於大規模AI應用。例如，Summit，來自IBM的橡樹嶺國家實驗室的超級計算機，包含27,648個NVIDIA Tesla V100卡，可用於加速深度學習演算法。

### FPGA 的使用

深度學習框架仍在不斷發展，這使得設計定製硬體變得困難。可重構設備（例如現場可編程門陣列 (FPGA)）使硬體、框架和軟體更容易相互協同發展。

微軟已使用FPGA晶片來加速實時深度學習服務的推理。

### NPU 的使用

神經處理單元 (NPU) 是另一種更原生化的方法。自2017年以來，一些CPU和SoC具有片上NPU：例如，英特爾Meteor Lake、Apple A11 Bionic。

### 專用AI加速器ASIC的出現

雖然GPU和FPGA在AI相關任務上的性能遠優於CPU，但通過專用積體電路 (ASIC) 進行更具體的設計，可以提高效率高達10倍。這些加速器採用諸如優化的記憶體使用和使用較低精度運算來加速計算並提高計算吞吐量的策略。一些用於AI加速的低精度浮點數是半精度和bfloat16浮點數。Cerebras Systems已經構建了一個基於業界最大處理器（第二代晶圓級引擎（WSE-2））的專用AI加速器，以支持深度學習工作負載。亞馬遜雲計算服務 NeuronCores是異構計算單元，它驅動Tranium、Tranium2、Inferentia和Inferentia2晶片，這些晶片由4個主要引擎組成：張量、向量、標量和GPSIMD，以及片上軟體管理的SRAM記憶體，用於管理數據局部性和數據預取。

## 正在進行的研究

### 記憶體計算架構

2017年6月，IBM的研究人員宣布了一種與馮諾伊曼結構相反的架構，該架構基於存內計算和相變化存儲器陣列應用於時間相關性檢測，旨在將該方法推廣到異構計算和大規模並行系統。2018年10月，IBM的研究人員宣布了一種基於記憶體處理和模擬人腦突觸網路的架構，以加速深度神經網路。該系統基於相變存儲器陣列。

### 使用模擬電阻存儲器的記憶體計算

2019年，米蘭理工大學的研究人員找到了一種方法，可以通過單一操作在幾十納秒內求解線性方程組。他們的演算法基於使用模擬電阻存儲器的存內計算，通過使用歐姆定律和基爾霍夫定律一步執行矩陣乘法，從而實現高時間和能量效率。研究人員表明，具有交叉點電阻存儲器的反饋電路可以一步解決代數問題，例如線性方程組、矩陣特徵向量和微分方程。與數字演算法相比，這種方法極大地提高了計算時間。

### 原子級薄半導體

2020年，Marega等人發表了關於用於開發基於浮柵場效應電晶體 (FGFET) 的邏輯記憶體設備和電路的大面積有源通道材料的實驗。這種原子級薄半導體被認為有望用於節能機器學習應用，其中相同的基本器件結構用於邏輯運算和數據存儲。作者使用二維材料（例如半導體二硫化鉬）來精確調整FGFET作為構建塊，其中可以使用存儲元件執行邏輯運算。

### 集成光子張量核心

1988年，張偉等人討論了用於字母識別的卷積神經網絡的快速光學實現。

2021年，J. Feldmann等人提出了一種用於並行卷積處理的集成光子 硬體加速器。作者指出了集成光子學相對於其電子對應物的兩個主要優勢：（1）通過波長分多路復用結合頻率梳進行大規模並行數據傳輸，以及（2）極高的數據調製速度。他們的系統每秒可以執行數萬億次乘積累加運算，這表明集成 光子學在數據密集型AI應用中的潛力。還可以進行人工神經網絡反向傳播的光學處理器已經過實驗開發。

## 命名法

截至2016年，該領域仍在不斷變化，供應商正在推廣他們自己對「AI加速器」的營銷術語，希望他們的設計和API能夠成為主導設計。對於這些設備之間的界限以及它們將採用的確切形式，還沒有達成共識；然而，幾個例子清楚地表明了旨在填補這一新空間的目標，並且功能上存在相當大的重疊。

過去，當消費者圖形處理器出現時，業界最終採用了英偉達的自稱術語「GPU」，作為「圖形加速器」的集體名詞，在最終之前，它已經採用了多種形式。

所有型號的英特爾Meteor Lake處理器都內置了「多功能處理器單元」（「VPU」），用於加速推斷，以用於電腦視覺和深度學習。

## 深度學習處理器 (DLP)

受DianNao家族開創性工作的啟發，學術界和業界提出了許多DLP，其設計經過優化，可以利用深度神經網路的特性來提高效率。在ISCA 2016上，接受論文的三個單元（15%）側重於深度學習的架構設計。這些努力包括學術界的Eyeriss（麻省理工學院）， EIE（史丹福大學）， Minerva（哈佛大學）， Stripes（多倫多大學），以及工業界的TPU（谷歌）和MLU（寒武紀科技）。表1列出了幾項代表性工作。

表1.典型的DLP

年份｜DLP｜機構｜類型｜計算｜記憶體層次結構｜控制｜峰值性能

2014｜DianNao｜ICT，中科院｜數字｜向量MAC｜高速緩存｜VLIW｜452 Gops (16位)

DaDianNao｜ICT，中科院｜數字｜向量MAC｜高速緩存｜VLIW｜5.58 Tops (16位)

2015｜ShiDianNao｜ICT，中科院｜數字｜標量MAC｜高速緩存｜VLIW｜194 Gops (16位)

PuDianNao｜ICT，中科院｜數字｜向量MAC｜高速緩存｜VLIW｜1,056 Gops (16位)

2016｜DnnWeaver｜喬治亞理工學院｜數字｜向量MAC｜高速緩存

EIE｜史丹福大學｜數字｜標量MAC｜高速緩存｜102 Gops (16位)

Eyeriss｜麻省理工學院｜數字｜標量MAC｜高速緩存｜67.2 Gops (16位)

Prime｜加州大學聖巴巴拉分校｜混合｜存內計算｜ReRAM

2017｜TPU｜谷歌｜數字｜標量MAC｜高速緩存｜CISC｜92 Tops (8位)

PipeLayer｜匹茲堡大學｜混合｜記憶體處理｜ReRAM

FlexFlow｜ICT，中科院｜數字｜標量MAC｜高速緩存｜420 Gops

DNPU｜韓國科學技術院｜數字｜標量MAC｜高速緩存｜300 Gops(16位) 1200 Gops(4位)

2018｜MAERI｜喬治亞理工學院｜數字｜標量MAC｜高速緩存

PermDNN｜紐約市立大學｜數字｜向量MAC｜高速緩存｜614.4 Gops (16位)

UNPU｜韓國科學技術院｜數字｜標量MAC｜高速緩存｜345.6 Gops(16位) 691.2 Gops(8位) 1382 Gops(4位) 7372 Gops(1位)

2019｜FPSA｜清華大學｜混合｜記憶體處理｜ReRAM

寒武紀-F｜ICT，中科院｜數字｜向量MAC｜高速緩存｜FISA｜14.9 Tops (F1, 16位) 956 Tops (F100, 16位)

### 數字DLP

DLP架構的主要組件通常包括計算組件、片上記憶體層次結構以及管理數據通信和計算流的控制邏輯。

關於計算組件，由於深度學習中的大多數操作可以聚合到向量操作中，因此在數字DLP中構建計算組件的最常用方法是基於MAC（乘法-累加）的組織方式，可以使用向量MAC或標量MAC。與通用處理設備中的SIMD或SIMT不同，深度學習領域特定的並行性在這些基於MAC的組織中得到了更好的探索。關於記憶體層次結構，由於深度學習演算法需要高帶寬才能為計算組件提供足夠的數據，因此DLP通常在片上緩衝區中使用相對較大的大小（幾十KB或幾MB），但採用專用的片上數據重用策略和數據交換策略來減輕記憶體帶寬的負擔。例如，DianNao，16個16輸入的向量MAC，需要16 × 16 × 2 = 512個16位數據，即計算組件和緩衝區之間幾乎需要1024 GB/s的帶寬。通過片上重用，這種帶寬要求大大降低。與通用處理設備中廣泛使用的緩存不同，DLP總是使用高速緩存記憶體，因為它可以通過利用深度學習演算法中相對規則的數據訪問模式來提供更高的數據重用機會。關於控制邏輯，由於深度學習算法正在以驚人的速度不斷發展，因此DLP開始利用專用ISA（指令集架構）來靈活地支持深度學習領域。首先，DianNao使用了一種VLIW樣式的指令集，其中每條指令都可以在DNN中完成一層。寒武紀引入了第一個深度學習領域專用ISA，它可以支持十多種不同的深度學習演算法。TPU還從CISC樣式的ISA中揭示了五個關鍵指令。

### 混合DLP

由於混合DLP的效率高，因此它們出現在DNN推理和訓練加速中。記憶體計算(PIM)架構是最重要的混合DLP類型之一。PIM的關鍵設計理念是彌合計算和記憶體之間的差距，方法如下：1) 將計算組件移動到記憶體單元、控制器或記憶體晶片中，以緩解記憶體牆問題。這種架構顯著縮短了數據路徑並利用了更高的內部帶寬，因此帶來了引人注目的性能提升。2) 通過採用計算設備來構建高效的DNN引擎。2013年，惠普實驗室展示了採用ReRAM交叉點結構進行計算的驚人能力。受這項工作的啟發，人們提出了大量工作來探索基於ReRAM、相變存儲器等的新的架構和系統設計。

## 基準測試

可以使用MLPerf等基準測試來評估AI加速器的性能。表2列出了AI加速器的幾個典型基準測試。

年份｜神經網路基準測試｜關聯方｜微基準測試數量｜組件基準測試數量｜應用基準測試數量

2012｜BenchNN｜ICT，中科院｜N/A｜12｜N/A

2016｜Fathom｜哈佛大學｜N/A｜8｜N/A

2017｜BenchIP｜ICT，中科院｜12｜11｜N/A

2017｜DAWNBench｜史丹福大學｜8｜N/A｜N/A

2017｜DeepBench｜百度｜4｜N/A｜N/A

2018｜AI Benchmark｜蘇黎世聯邦理工學院｜N/A｜26｜N/A

2018｜MLPerf｜哈佛大學、英特爾和谷歌等｜N/A｜7｜N/A

2019｜AIBench｜ICT，中科院和阿里巴巴等｜12｜16｜2

2019｜NNBench-X｜加州大學聖巴巴拉分校｜N/A｜10｜N/A

## 潛在應用

- 農業機器人，例如，無除草劑雜草控制。
- 無人駕駛汽車：英偉達將其Drive PX系列板瞄準了此應用。
- 電腦輔助診斷
- 工業機器人，通過增加對可變情況的適應性，增加了可以自動化的任務範圍。
- 機器翻譯
- 軍用機器人
- 自然語言處理
- 搜尋引擎，提高數據中心的能效和使用越來越先進的查詢的能力。
- 無人機，例如導航系統，例如Movidius Myriad 2已成功地引導自主無人機。
- 語音使用者界面，例如在手機中，這是高通Zeroth的目標。

## 另請參閱

- 認知電腦
- 神經形態工程
- 光學神經網路
- 物理神經網路
- UALink

## 外部連結

- Nvidia Puts The Accelerator To The Metal With Pascal.htm，The Next Platform
- Eyeriss Project，麻省理工學院
- https://alphaics.ai/