8月23日,華為宣布其自研的AI 芯片——Ascend 910(昇騰910)正式上市商用,與之一同發(fā)布的還有的新一代AI開源計算框架 MindSpore ,全面對標(biāo)谷歌TensorFlow和FaceBook的PyTorch,并計劃2020年第一季度全面開源開放。
據(jù)華為副董事長、輪值董事長徐直軍介紹,昇騰910與MindSpore配合,相比現(xiàn)有主流訓(xùn)練單卡配合TensorFlow的組合顯示出接近2倍的性能提升。在去年十月,公布技術(shù)參數(shù)時,徐直軍就曾表示昇騰910是業(yè)界算力最高的AI處理器,相同功耗情況下,它的算力是業(yè)界最強(qiáng)AI芯片的2倍,最強(qiáng)CPU的50倍。可以看出,Ascend910的實(shí)力強(qiáng)勁,傲視業(yè)界AI芯片的同時竟然高出同期CPU計算能力數(shù)十倍。那么常規(guī)印象中被認(rèn)為是計算機(jī)的“大腦”的CPU,性能最強(qiáng)的核心單元,現(xiàn)在只能用來襯托AI芯片的性能了嗎?
其實(shí)不然,就目前情況,通用大規(guī)模集成電路的類型主要有CPU、DSP、GPU、FPGA幾種:
CPU
一般來說CPU運(yùn)算能力弱,雖然主頻最高,但是單顆核心數(shù)量也有8核、16核,按單核3.5G主頻計算,16核即就是56G的主頻;再考慮指令周期,每秒最多執(zhí)行30G次乘法。
DSP
DSP雖然主頻不如CPU, 但是勝在乘法器多,動輒附帶16個乘法器,而且是浮點(diǎn)的。再者,不論4核、8核,它還具有特定的算法硬件加速,所以雖然主頻只有1-2G,但是運(yùn)算能力還是比CPU強(qiáng)。當(dāng)然現(xiàn)在出現(xiàn)了帶專用乘法器的CPU,DSP也集成了ARM核,這兩者的界限開始變得模糊。DSP所有計算均使用浮點(diǎn)算法,目前還沒有位或整數(shù)運(yùn)算指令。
GPU
GPU專為圖像處理設(shè)計,主頻一般在500MHz左右,但是核芯數(shù)量多,比如英偉達(dá)Titan, 有380多個流處理單元,主頻和單元數(shù)相乘起來:500*400就是200G的計算量,這個量級,遠(yuǎn)大與于前面二者。
FPGA
FPGA的運(yùn)算能力的,拿高端的來說:3000多個固定乘法器,用片上資源靠數(shù)字邏輯還能再搭建3000個,主頻最快能到接近300MHz, 則總計算性能可達(dá)(3000+3000)*300M = 1800G這個量級。
因此不難理解,這幾個類型的芯片適合的應(yīng)用場合不同:
1.CPU雖然運(yùn)算不強(qiáng),但是擅長進(jìn)行管理和調(diào)度,比如讀取數(shù)據(jù)、管理文件、處理人機(jī)交互等。
2.DSP相較CPU而言管理變?nèi)趿耍\(yùn)算加強(qiáng)了。這兩者都是靠高主頻來解決運(yùn)算量的問題,適合有大量遞歸操作以及不便拆分的算法。
3.GPU管理方面更弱,運(yùn)算更強(qiáng),由于是多進(jìn)程并發(fā),更適合整塊數(shù)據(jù)進(jìn)行流處理的算法。
4.FPGA能進(jìn)行管理也能運(yùn)算,但是開發(fā)周期很長,復(fù)雜算法開發(fā)難度大。適合流處理算法,不管是整塊數(shù)據(jù)進(jìn)還是一個一個進(jìn)。還有就實(shí)時性來說,F(xiàn)PGA是最高的。前三種處理器為了避免將運(yùn)算能力浪費(fèi)在數(shù)據(jù)搬運(yùn)上,一般要求累計一定量數(shù)據(jù)后才開始計算,因此產(chǎn)生群延時,而FPGA所有操作都并行,因此群延時可以很小。
了解了以上類型的芯片之后,就不難分析AI芯片如何得以超越CPU計算性能如此多倍。所謂AI芯片,一般是指為了進(jìn)行人工智能相關(guān)的運(yùn)算而進(jìn)行有針對的優(yōu)化過的專用芯片(ASIC芯片)。
例如,人工智能領(lǐng)域發(fā)展火熱的自動駕駛,需要識別道路、行人、交通燈等狀況, 如果使用CPU去進(jìn)行計算,那么極有可能出交通事故。前面已經(jīng)提到過,CPU擅長控制,并且其設(shè)計決定了在工作時為了減小數(shù)據(jù)傳輸對運(yùn)算力的浪費(fèi),需要累積到一定數(shù)據(jù)量才進(jìn)行計算,而這根本無法滿足自動駕駛情景所需要的強(qiáng)實(shí)時性。而如果使用GPU計算,在承擔(dān)高功耗的同時只能利用起其中部分的計算資源,不論是在云端還是終端,都不是一個具有良好能耗比的選擇。而且,GPU不但能耗比低,其價格也一直高居不下,且供應(yīng)不穩(wěn)定;所以通用型芯片在進(jìn)行人工智能相關(guān)計算時的功耗、效率、價格等因素一起促成了人工智能專用芯片的開發(fā)和商用。
目前,AI的應(yīng)用并未在自動駕駛領(lǐng)域過多展開,主要還是集中在圖像識別、語音識別、自然語言處理等領(lǐng)域。這些領(lǐng)域內(nèi)的算法本質(zhì)上來說都是矩陣或向量的加、乘運(yùn)算。目前最先進(jìn)的服務(wù)器CPU之一,IBM POWER8(目前該系列已有POWER9,性能提升1.5倍),擁有4G主頻,128位位寬。假設(shè)處理8個16位的數(shù)據(jù),一個周期最多執(zhí)行8個乘/加計算。理論上一次最多執(zhí)行16個操作,那么此CPU理論每秒巔峰計算次數(shù)是:16*64Gops=64Gops。
再看谷歌的人工智能專用張量計算芯片TPU1.0(目前已到TPU3.0),主頻只有700MHz,然而擁有64,000個乘/加單元,單詞最多執(zhí)行64,000*2=128K次計算,因此其理論巔峰計算次數(shù)位:128K*700M=89,600Gops,約90Tops,非常高數(shù)量級的計算量。目前我們所看到的端側(cè)人工智能芯片算力多在10T內(nèi),是因?yàn)槎藗?cè)人臉識別等人工智能應(yīng)用要求算力的同時也需要保持低功耗,所以不會出現(xiàn)如此夸張的數(shù)值。但通過計算對比,足以看出在人工智能計算方面專用芯片和通用芯片的效率差距。
總結(jié)而言,CPU與GPU并不是AI專用芯片,為了實(shí)現(xiàn)其他功能,內(nèi)部有大量其他邏輯,而這些邏輯對于目前的AI算法來說是無用武之地的,所以,導(dǎo)致CPU與GPU不能成為最優(yōu)的性價比之選;而FPGA更是因?yàn)閮r格高,開發(fā)周期長,而多被用于設(shè)計開發(fā)的前期驗(yàn)證步驟。因此,隨著人工智能需求發(fā)展,神經(jīng)網(wǎng)絡(luò)層數(shù)加深,更加有效率的專用芯片對于布局人工智能的科技企業(yè)將會愈發(fā)重要。華為此次發(fā)布的昇騰910芯片屬于Ascend-max系列,其技術(shù)規(guī)格在HC2018大會上已經(jīng)公布:半精度(FP16)算力達(dá)256T-Flops,整數(shù)精度(INT8)算力達(dá)到512T-ops,功耗310W。現(xiàn)在,昇騰910已經(jīng)被用于實(shí)際的AI訓(xùn)練任務(wù),比如ResNet50神經(jīng)網(wǎng)絡(luò)等。同時,華為表示將繼續(xù)投入,推出更多AI處理器,面向全場景持續(xù)提供更充裕、更經(jīng)濟(jì)、更適配的AI算力。雖然人工智能目前還處于初級發(fā)展階段,但隨著其發(fā)展領(lǐng)域橫軸的拓寬,縱向應(yīng)用的加深,相信在不久的將來,我們會看到更多高效、專注的人工智能專用芯片的出現(xiàn)。