人工智能芯片目前有兩種發(fā)展路徑:一種是延續(xù)傳統(tǒng)計算架構(gòu),加速硬件計算能力,主要以3種類型的芯片為代表,即GPU、FPGA、ASIC,但CPU依舊發(fā)揮著不可替代的作用;另一種是顛覆經(jīng)典的馮·諾依曼計算架構(gòu),采用類腦神經(jīng)結(jié)構(gòu)來提升計算能力,以IBM TrueNorth芯片為代表。
1、傳統(tǒng)CPU
計算機工業(yè)從1960年代早期開始使用CPU這個術(shù)語。迄今為止,CPU從形態(tài)、設(shè)計到實現(xiàn)都已發(fā)生了巨大的變化,但是其基本工作原理卻一直沒有大的改變。通常CPU由控制器和運算器這兩個主要部件組成。傳統(tǒng)的CPU內(nèi)部結(jié)構(gòu)圖如圖所示:
傳統(tǒng)CPU內(nèi)部結(jié)構(gòu)圖(ALU計算模塊)
從圖中我們可以看到:實質(zhì)上僅單獨的ALU模塊(邏輯運算單元)是用來完成數(shù)據(jù)計算的,其他各個模塊的存在都是為了保證指令能夠一條接一條的有序執(zhí)行。這種通用性結(jié)構(gòu)對于傳統(tǒng)的編程計算模式非常適合,同時可以通過提升CPU主頻(提升單位時間內(nèi)執(zhí)行指令的條數(shù))來提升計算速度。但對于深度學(xué)習中的并不需要太多的程序指令、卻需要海量數(shù)據(jù)運算的計算需求,這種結(jié)構(gòu)就顯得有些力不從心。尤其是在功耗限制下,無法通過無限制的提升CPU和內(nèi)存的工作頻率來加快指令執(zhí)行速度,這種情況導(dǎo)致CPU系統(tǒng)的發(fā)展遇到不可逾越的瓶頸。
2、并行加速計算的GPU
GPU作為最早從事并行加速計算的處理器,相比CPU速度快,同時比其他加速器芯片編程靈活簡單。
傳統(tǒng)的CPU之所以不適合人工智能算法的執(zhí)行,主要原因在于其計算指令遵循串行執(zhí)行的方式,沒能發(fā)揮出芯片的全部潛力。與之不同的是,GPU具有高并行結(jié)構(gòu),在處理圖形數(shù)據(jù)和復(fù)雜算法方面擁有比CPU更高的效率。對比GPU和CPU在結(jié)構(gòu)上的差異,CPU大部分面積為控制器和寄存器,而GPU擁有更ALU(ARITHMETIC LOGIC UNIT,邏輯運算單元)用于數(shù)據(jù)處理,這樣的結(jié)構(gòu)適合對密集型數(shù)據(jù)進行并行處理,CPU與GPU的結(jié)構(gòu)對比如圖所示。
CPU及GPU結(jié)構(gòu)對比圖
程序在GPU系統(tǒng)上的運行速度相較于單核CPU往往提升幾十倍乃至上千倍。隨著英偉達、AMD等公司不斷推進其對GPU大規(guī)模并行架構(gòu)的支持,面向通用計算的GPU(即GPGPU,GENERAL PURPOSE GPU,通用計算圖形處理器)已成為加速可并行應(yīng)用程序的重要手段,GPU的發(fā)展歷程可分為3個階段:
第一代GPU(1999年以前),部分功能從CPU分離,實現(xiàn)硬件加速,以GE(GEOMETRY ENGINE)為代表,只能起到3D圖像處理的加速作用,不具有軟件編程特性。
第二代GPU(1999-2005年),實現(xiàn)進一步的硬件加速和有限的編程性。1999年,英偉達發(fā)布了“專為執(zhí)行復(fù)雜的數(shù)學(xué)和幾何計算的”GeForce256圖像處理芯片,將更多的晶體管用作執(zhí)行單元,而不是像CPU那樣用作復(fù)雜的控制單元和緩存,將T&L(TRANSFORM AND LIGHTING)等功能從CPU分離出來,實現(xiàn)了快速變換,這成為GPU真正出現(xiàn)的標志。之后幾年,GPU技術(shù)快速發(fā)展,運算速度迅速超過CPU。2001年英偉達和ATI分別推出的GEFORCE3和RADEON 8500,圖形硬件的流水線被定義為流處理器,出現(xiàn)了頂點級可編程性,同時像素級也具有有限的編程性,但GPU的整體編程性仍然比較有限。
第三代GPU(2006年以后),GPU實現(xiàn)方便的編程環(huán)境創(chuàng)建,可以直接編寫程序。2006年英偉達與ATI分別推出了CUDA(Compute United Device Architecture,計算統(tǒng)一設(shè)備架構(gòu))編程環(huán)境和CTM(CLOSE TO THE METAL)編程環(huán)境,使得GPU打破圖形語言的局限成為真正的并行數(shù)據(jù)處理超級加速器。
2008年,蘋果公司提出一個通用的并行計算編程平臺OPENCL(OPEN COMPUTING LANGUAGE,開放運算語言),與CUDA綁定在英偉達的顯卡上不同,OPENCL和具體的計算設(shè)備無關(guān)。
GPU芯片的發(fā)展階段
目前,GPU已經(jīng)發(fā)展到較為成熟的階段。谷歌、FACEBOOK、微軟、TWITTER和百度等公司都在使用GPU分析圖片、視頻和音頻文件,以改進搜索和圖像標簽等應(yīng)用功能。此外,很多汽車生產(chǎn)商也在使用GPU芯片發(fā)展無人駕駛。不僅如此,GPU也被應(yīng)用于VR/AR相關(guān)的產(chǎn)業(yè)。
但是GPU也有一定的局限性。深度學(xué)習算法分為訓(xùn)練和推斷兩部分,GPU平臺在算法訓(xùn)練上非常高效。但在推斷中對于單項輸入進行處理的時候,并行計算的優(yōu)勢不能完全發(fā)揮出來。
3、半定制化的FPGA
FPGA是在PAL、GAL、CPLD等可編程器件基礎(chǔ)上進一步發(fā)展的產(chǎn)物。用戶可以通過燒入FPGA配置文件來定義這些門電路以及存儲器之間的連線。這種燒入不是一次性的,比如用戶可以把FPGA配置成一個微控制器MCU,使用完畢后可以編輯配置文件把同一個FPGA配置成一個音頻編解碼器。因此,它既解決了定制電路靈活性的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。
FPGA可同時進行數(shù)據(jù)并行和任務(wù)并行計算,在處理特定應(yīng)用時有更加明顯的效率提升。對于某個特定運算,通用CPU可能需要多個時鐘周期;而FPGA可以通過編程重組電路,直接生成專用電路,僅消耗少量甚至一次時鐘周期就可完成運算。
此外,由于FPGA的靈活性,很多使用通用處理器或ASIC難以實現(xiàn)的底層硬件控制操作技術(shù),利用FPGA可以很方便的實現(xiàn)。這個特性為算法的功能實現(xiàn)和優(yōu)化留出了更大空間。同時FPGA一次性成本(光刻掩模制作成本)遠低于ASIC,在芯片需求還未成規(guī)模、深度學(xué)習算法暫未穩(wěn)定,需要不斷迭代改進的情況下,利用FPGA芯片具備可重構(gòu)的特性來實現(xiàn)半定制的人工智能芯片是最佳選擇之一。
功耗方面,從體系結(jié)構(gòu)而言,F(xiàn)PGA也具有天生的優(yōu)勢。傳統(tǒng)的馮氏結(jié)構(gòu)中,執(zhí)行單元(如CPU核)執(zhí)行任意指令,都需要有指令存儲器、譯碼器、各種指令的運算器及分支跳轉(zhuǎn)處理邏輯參與運行,而FPGA每個邏輯單元的功能在重編程(即燒入)時就已經(jīng)確定,不需要指令,無需共享內(nèi)存,從而可以極大的降低單位執(zhí)行的功耗,提高整體的能耗比。
由于FPGA具備靈活快速的特點,因此在眾多領(lǐng)域都有替代ASIC的趨勢。FPGA在人工智能領(lǐng)域的應(yīng)用如圖所示。
FPGA在人工智能領(lǐng)域的應(yīng)用
4、全定制化的ASIC
目前以深度學(xué)習為代表的人工智能計算需求,主要采用GPU、FPGA等已有的適合并行計算的通用芯片來實現(xiàn)加速。在產(chǎn)業(yè)應(yīng)用沒有大規(guī)模興起之時,使用這類已有的通用芯片可以避免專門研發(fā)定制芯片(ASIC)的高投入和高風險。但是,由于這類通用芯片設(shè)計初衷并非專門針對深度學(xué)習,因而天然存在性能、功耗等方面的局限性。隨著人工智能應(yīng)用規(guī)模的擴大,這類問題日益突顯。
GPU作為圖像處理器,設(shè)計初衷是為了應(yīng)對圖像處理中的大規(guī)模并行計算。因此,在應(yīng)用于深度學(xué)習算法時,有三個方面的局限性:第一,應(yīng)用過程中無法充分發(fā)揮并行計算優(yōu)勢。深度學(xué)習包含訓(xùn)練和推斷兩個計算環(huán)節(jié),GPU在深度學(xué)習算法訓(xùn)練上非常高效,但對于單一輸入進行推斷的場合,并行度的優(yōu)勢不能完全發(fā)揮。第二,無法靈活配置硬件結(jié)構(gòu)。GPU采用SIMT計算模式,硬件結(jié)構(gòu)相對固定。目前深度學(xué)習算法還未完全穩(wěn)定,若深度學(xué)習算法發(fā)生大的變化,GPU無法像FPGA一樣可以靈活的配制硬件結(jié)構(gòu)。第三,運行深度學(xué)習算法能效低于FPGA。
盡管FPGA倍受看好,甚至新一代百度大腦也是基于FPGA平臺研發(fā),但其畢竟不是專門為了適用深度學(xué)習算法而研發(fā),實際應(yīng)用中也存在諸多局限:
第一,基本單元的計算能力有限。為了實現(xiàn)可重構(gòu)特性,F(xiàn)PGA內(nèi)部有大量極細粒度的基本單元,但是每個單元的計算能力(主要依靠LUT查找表)都遠遠低于CPU和GPU中的ALU模塊。
第二、計算資源占比相對較低。為實現(xiàn)可重構(gòu)特性,F(xiàn)PGA內(nèi)部大量資源被用于可配置的片上路由與連線。
第三,速度和功耗相對專用定制芯片(ASIC)仍然存在不小差距;第四,F(xiàn)PGA價格較為昂貴,在規(guī)模放量的情況下單塊FPGA的成本要遠高于專用定制芯片。
因此,隨著人工智能算法和應(yīng)用技術(shù)的日益發(fā)展,以及人工智能專用芯片ASIC產(chǎn)業(yè)環(huán)境的逐漸成熟,全定制化人工智能ASIC也逐步體現(xiàn)出自身的優(yōu)勢,從事此類芯片研發(fā)與應(yīng)用的國內(nèi)外比較有代表性的公司如圖所示。
人工智能專用芯片研發(fā)情況一覽
深度學(xué)習算法穩(wěn)定后,AI芯片可采用ASIC設(shè)計方法進行全定制,使性能、功耗和面積等指標面向深度學(xué)習算法做到最優(yōu)。
5、類腦芯片
類腦芯片不采用經(jīng)典的馮·諾依曼架構(gòu),而是基于神經(jīng)形態(tài)架構(gòu)設(shè)計,以IBM Truenorth為代表。IBM研究人員將存儲單元作為突觸、計算單元作為神經(jīng)元、傳輸單元作為軸突搭建了神經(jīng)芯片的原型。目前,Truenorth用三星28nm功耗工藝技術(shù),由54億個晶體管組成的芯片構(gòu)成的片上網(wǎng)絡(luò)有4096個神經(jīng)突觸核心,實時作業(yè)功耗僅為70mW。由于神經(jīng)突觸要求權(quán)重可變且要有記憶功能,IBM采用與CMOS工藝兼容的相變非揮發(fā)存儲器(PCM)的技術(shù)實驗性的實現(xiàn)了新型突觸,加快了商業(yè)化進程。