人工智能修成正果的日子還有多遠(yuǎn)
2019年人工智能逐步從弱人工智能邁入下一階段,而這一切都離不開強(qiáng)大的芯片?,F(xiàn)有深度神經(jīng)網(wǎng)絡(luò)需要用更短的時(shí)間、更低功耗完成計(jì)算,這就給深度學(xué)習(xí)計(jì)算芯片提出了更高的要求。
總體來看,深度神經(jīng)網(wǎng)絡(luò)對(duì)計(jì)算芯片的需求主要有以下兩個(gè)方面:
一是計(jì)算芯片和存儲(chǔ)間海量數(shù)據(jù)通信需求,這里有兩個(gè)層面,一個(gè)是緩存(Cache)和片上存儲(chǔ)(Memory)的要大,另一個(gè)是計(jì)算單元和存儲(chǔ)之間的數(shù)據(jù)交互帶寬要大。
二是專用計(jì)算能力的提升,解決對(duì)卷積、殘差網(wǎng)絡(luò)、全連接等計(jì)算類型的大量計(jì)算需求,在提升運(yùn)算速度的同時(shí)實(shí)現(xiàn)降低功耗。總的來說,AI 計(jì)算芯片的發(fā)展過程可以總結(jié)為一直在圍繞如何有效解決存儲(chǔ)與計(jì)算單元的提升這兩個(gè)問題而展開,成本問題則作為一個(gè)舵手控制著終的航向。
典型 AI 計(jì)算芯片的使用現(xiàn)狀在深度學(xué)習(xí)訓(xùn)練環(huán)節(jié),除了使用 CPU 或 GPU 進(jìn)行運(yùn)算外,現(xiàn)場(chǎng)可編程門陣列( Field-Programmable Gate Array,FPGA)以及專用集成電路(Application Specific Integrated Circuit,ASIC)也發(fā)揮了重大作用;而用于終端推斷的計(jì)算芯片主要以 ASIC 為主。
CPU 在深度學(xué)習(xí)訓(xùn)練場(chǎng)景下表現(xiàn)不佳。初的深度學(xué)習(xí)場(chǎng)景是使用CPU為架構(gòu)搭建的,如初GoogleBrain就是基于CPU組成的。但由于 CPU 其本身是通用計(jì)算器,大量芯片核心面積要服務(wù)于通用場(chǎng)景的元器件,導(dǎo)致可用于浮點(diǎn)計(jì)算的計(jì)算單元偏少,無法滿足深度學(xué)習(xí)特別是訓(xùn)練環(huán)節(jié)的大量浮點(diǎn)運(yùn)算需求,且并行計(jì)算效率太低,很快被具有數(shù)量眾多的計(jì)算單元、具備強(qiáng)大并行計(jì)算能力的 GPU 代替。
GPU 成為目前深度學(xué)習(xí)訓(xùn)練的首要選擇。GPU 的關(guān)鍵性能是并行計(jì)算,適合深度學(xué)習(xí)計(jì)算的主要原因一是高帶寬的緩存有效提升大量數(shù)據(jù)通信的效率。GPU 的緩存結(jié)構(gòu)為共享緩存,相比于 CPU,GPU線程(Thread)之間的數(shù)據(jù)通訊不需要訪問全局內(nèi)存,而在共享內(nèi)存中就可以直接訪問。二是多計(jì)算核心提升并行計(jì)算能力。GPU 具有數(shù)以千計(jì)的計(jì)算核心,可實(shí)現(xiàn) 10-100 倍于 CPU 的應(yīng)用吞吐量。同時(shí),基于由 NVIDIA 推出的通用并行計(jì)算架構(gòu) CUDA,使 GPU 能夠解決復(fù)雜的計(jì)算問題。其包含的 CUDA 指令集架構(gòu)(ISA)以及 GPU 內(nèi)部的并行計(jì)算引擎可針對(duì)當(dāng)前深度學(xué)習(xí)計(jì)算進(jìn)行加速,但是由于深度學(xué)習(xí)算法還未完全穩(wěn)定,若深度學(xué)習(xí)算法發(fā)生大的變化,則 GPU 存在無法靈活適配問題。
FPGA在深度學(xué)習(xí)加速方面具有可重構(gòu)、可定制的特點(diǎn)。因FPGA沒有預(yù)先定義的指令集概念,也沒有確定的數(shù)據(jù)位寬,所以可以實(shí)現(xiàn)應(yīng)用場(chǎng)景的高度定制。但 FPGA 的靈活性(通用性)也意味著效率的損失。由于 FPGA 應(yīng)用往往都需要支持很大的數(shù)據(jù)吞吐量,這對(duì)于內(nèi)存帶寬和 I/O 互連帶寬要求很高。同時(shí)由于邏輯利用率低,引發(fā)無效功耗大。FPGA 市場(chǎng)化的主要阻礙是成本高昂,價(jià)格在幾十到幾萬美元一片不等,且應(yīng)用者必須具備電路設(shè)計(jì)知識(shí)和經(jīng)驗(yàn)。由于 FPGA 省去了流片過程,在深度學(xué)習(xí)發(fā)展初期成為計(jì)算芯片主要解決方案之一,在 GPU 和 ASIC 中取得了權(quán)衡,很好的兼顧了處理速度和控制能力。
ASIC(專用集成電路,ApplicaTIon Specific Integrated Circuit)是不可配置的高度定制專用計(jì)算芯片。ASIC 不同于 GPU 和 FPGA 的靈活性,定制化的 ASIC 一旦制造完成將不能更改,所以初期成本高、開發(fā)周期長,使得進(jìn)入門檻高。但 ASIC 作為專用計(jì)算芯片性能高于FPGA,相同工藝的ASIC計(jì)算芯片比FPGA計(jì)算芯片快5-10倍,同時(shí)規(guī)模效應(yīng)會(huì)使得 ASIC 的成本降低。但高昂的研發(fā)成本和研發(fā)周期是未來廣泛應(yīng)用的阻礙。
ASIC 主要生產(chǎn)企業(yè)包括如 Google 的TPU 系列計(jì)算芯片,以及國內(nèi)的寒武紀(jì)、地平線等公司。 TPU 的核心為脈動(dòng)陣列機(jī),其設(shè)計(jì)思想是將多個(gè)運(yùn)算邏輯單元(ALU)串聯(lián)在一起,復(fù)用從一個(gè)寄存器中讀取的結(jié)果,從而有效平衡了運(yùn)算和 I/O 的需求。但其只適合做信號(hào)處理的卷積、信號(hào)和圖像處理(signal and image processing),矩陣算術(shù)(matrix arithmeTIc)和一些非數(shù)值型應(yīng)用(non-numeric applicaTIon)。 另一類 ASIC 代表企業(yè)為國內(nèi)寒武紀(jì),其 DianNao 系列核心思想為結(jié)合神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)局部性特點(diǎn)以及計(jì)算特性,進(jìn)行存儲(chǔ)體系以及專用硬件設(shè)計(jì),從而獲取更好的性能加速比以及計(jì)算功耗比。