人工智能芯片是智能的嗎
人工智能芯片智能嗎?
人工智能芯片這個(gè)詞,很有神秘感,似乎這個(gè)芯片會(huì)十分智能。人工智能芯片,確切地應(yīng)該被稱為“實(shí)現(xiàn)智能算法的芯片”,而不是“具有智能的芯片”。事實(shí)上,如果真的去看芯片的“智能性”和復(fù)雜性,那這些人工智能芯片大概比不上CPU。因?yàn)槿斯ぶ悄苄酒軌蜻\(yùn)行的算法是比較單一的(如TPU的核心是矩陣乘法)、控制流是比較簡單的。
人工智能芯片為什么能更“快“--勝在專注
首先,“快”這個(gè)詞在計(jì)算機(jī)科學(xué)里可以有兩個(gè)含義,一個(gè)是說低延遲(low latency),一個(gè)是說高吞吐量(high throughput)。我們說“更快”,可能指的是完成一項(xiàng)任務(wù)延遲更低,或者是單位時(shí)間內(nèi)可以完成更多的任務(wù)。這兩者不是相互蘊(yùn)含的,但是是相關(guān)的。其關(guān)聯(lián)被Little‘s Law所定義。而人工智能芯片的“快”,也可以是延遲低和/或吞吐量高。
然后,人工智能芯片為什么快?一句話就可以回答:同一個(gè)算法,用接近硬件的編程語言(如C)實(shí)現(xiàn)起來通常比Java等快,而直接用硬件實(shí)現(xiàn)則應(yīng)該更快。下面具體討論延遲和吞吐量。
延遲低:很多芯片做機(jī)器學(xué)習(xí)算法的推理(inference)比用CPU或者GPU更快。這通過專用電路、片上存儲(chǔ)等實(shí)現(xiàn)。專用電路消除了CPU的指令加載、解碼等時(shí)間,片上存儲(chǔ)極大減少了數(shù)據(jù)(包括樣本數(shù)據(jù)和模型數(shù)據(jù))從內(nèi)存加載的時(shí)間。吞吐高:當(dāng)大家說“GPU比CPU快”,指的是其吞吐量。事實(shí)上GPU運(yùn)行的時(shí)鐘頻率比CPU低不少,延遲也就更高。GPU吞吐量高,是通過移除CPU上大量的復(fù)雜控制邏輯(分支預(yù)測等)和具有一致性的緩存(cache),取代之以大量運(yùn)算單元和不具有一致性的片上存儲(chǔ)(用于寄存器和共享內(nèi)存)來實(shí)現(xiàn)的。TPU吞吐量更高,因?yàn)樗梢赃M(jìn)一步移除GPU必須的圖形計(jì)算單元(光柵raster或者光線跟蹤ray tracing)、雙精度(double precision)單元、單精度(single
precision)單元等,取而代之以大量的半精度(FP16)和1/4精度(INT8)單元。
從此可以看出,從延遲和吞吐兩個(gè)角度來看,專用芯片都是勝在專注--能做種類更少的事情,但是做得更延遲低,或者單位時(shí)間內(nèi)完成的任務(wù)更多。
專用芯片的缺點(diǎn)也很明顯,一次性投入大,編程難,產(chǎn)品化耗時(shí)長,風(fēng)險(xiǎn)大(算法改變了怎么辦?)。
摩爾定律和Dennard scaling
摩爾定律說,每18個(gè)月,晶體管的面積變成一半,即相同面積芯片上晶體管數(shù)量翻倍。這從幾個(gè)方面能讓計(jì)算更“快”:
晶體管變小,則其門電路變化狀態(tài)的速度更快,CPU單核的頻率可以更高(lantency)。這一點(diǎn)由下面將介紹的Dennard scaling定量描述。晶體管變多,則可以加入更復(fù)雜的控制邏輯(分支預(yù)測等)和緩存,讓單線程的執(zhí)行更快(latency)。晶體管變多,可以增加并行的單元,讓吞吐量增大(throughput)。
Dennard scaling說,晶體管變小以后,所需電壓和電流同比例變小,可以大幅度增加頻率而維持總功率不變。這樣CPU單核的頻率可以變得更高。
現(xiàn)在這兩個(gè)定律已經(jīng)都部分失效。從摩爾定律來說,主流芯片晶體管的feature size目前在7-14nm,5nm和3nm可能可以達(dá)到但是會(huì)過程緩慢,而且工藝及其復(fù)雜和造價(jià)昂貴(近期GLOBALFOUNDRIES放棄7nm的生產(chǎn)即是證明)。再往后,由于漏電造成的發(fā)熱,晶體管大概不能再繼續(xù)縮小了。從Dennard scaling來說,由于漏電發(fā)熱和晶體管維持工作需要的一個(gè)基本電壓,芯片的頻率也不能再繼續(xù)增加。
這兩個(gè)定律都失效以后,從某種意義上說,芯片發(fā)展的路線已經(jīng)從做加法(更復(fù)雜的芯片、更多的功能,頻率更高,更多核)發(fā)展到做減法(更專注某個(gè)/某類應(yīng)用,用更簡單的數(shù)字格式)了。今年圖靈獎(jiǎng)兩位獲得者講的domain specific architecture,就是類似的思想。另外,還可以堆疊大量的芯片,讓其高速互聯(lián)(通過專用的交換電路例如NVLink,而不是更慢的PCIe總線)來達(dá)到高性能。