人工智能芯片的挑戰(zhàn)與實現(xiàn) 電阻電容配單 電子配單 找亞泰盈科
發(fā)布時間:2018/10/7
人工智能芯片的挑戰(zhàn)與實現(xiàn) 電阻電容配單 電子配單 找亞泰盈科
摘要:人工智能(ArtificialIntelligence,AI)的概念早在上個世紀五十年代已經(jīng)出現(xiàn)。但是直到二十一世紀,得益于深度學(xué)習(xí)算法的發(fā)展、硬件運算力的提升、以及越來越多可供訓(xùn)練的樣本數(shù)據(jù)的獲得,人工智能才得到了真正的爆發(fā)。尤其是在圖像、視頻和語音識別方面的應(yīng)用,人工智能表現(xiàn)得愈發(fā)強大。支持強大的深度學(xué)習(xí)算法的背后,所依靠的是集成電路芯片的運算能力。在性能和靈活性的取舍中,CPU、GPU、FPGA和ASIC分別有著不同的表現(xiàn)。其中定制的AI加速芯片往往能夠通過深度的軟硬件結(jié)合達到極致的能效比和吞吐量。本文分析了專用AI芯片的特點,實現(xiàn)過程中性能、功耗、面積等方面的挑戰(zhàn),以及應(yīng)對這些挑戰(zhàn)的解決方案。


2.機器學(xué)習(xí)(Machine Learning,ML),是人工智能的一個分支,研究如何讓計算機不通過顯式的編程而通過數(shù)據(jù)進行自主學(xué)習(xí)的能力。人工神經(jīng)網(wǎng)絡(luò)是這一領(lǐng)域眾多算法的其中一個,一度并沒有得到比較大的發(fā)展,直到深度神經(jīng)網(wǎng)絡(luò)算法的出現(xiàn)。
3.深度學(xué)習(xí)(Deep Learning,DL)是機器學(xué)習(xí)的一個分支,同時也是二十一世紀人工智能爆發(fā)的最大的推手。深度學(xué)習(xí)是利用深度神經(jīng)網(wǎng)絡(luò)(DeepNeuralNetwork,DNN)來解決特征表達的一種學(xué)習(xí)過程。在圖像、視頻、語音識別領(lǐng)域,最新的深度學(xué)習(xí)算法已經(jīng)做到了比人類更好的表現(xiàn)。這來源于深度神經(jīng)網(wǎng)絡(luò)更多級數(shù)的隱藏層


圖四列出了幾種不同類型用于計算的芯片。橫軸是性能,縱軸是靈活性。
GPU大規(guī)模的并行運算使得其計算能力顯著高于CPU。并且GPU的設(shè)計也使得它可以承擔(dān)通用的科學(xué)計算,具有不錯的靈活性。但是這些通用性也使得它在功耗上的表現(xiàn)并不能令人滿意,同時成本也非常高昂。
要追求極致的功耗、性能、成本,只能為深度學(xué)習(xí)算法量身定制專用的加速芯片,即ASIC。由于是專用芯片,幾乎就沒有太多的靈活性了。AI芯片所有的軟硬件優(yōu)化都是為了某些特定的深度學(xué)習(xí)算法所定制的。但是也正是由于專用的原因,可以不用考慮那些為了通用性所作出的妥協(xié),提高性能、功耗方面的表現(xiàn)。
當(dāng)然還有一種為大家所熟知的方案,就是FPGA,試圖在性能和靈活性當(dāng)中找到一個新的平衡點。
所以需不需要AI芯片?其實是性能和靈活性的一種權(quán)衡。當(dāng)我們需要計算更快、功耗更小、成本更低的芯片的時候,AI芯片就是我們唯一的選擇。
需要注意的是,這里所說的性能,指的并不是只我們通常所說的“主頻”。它包括兩方面的考量。
首先是能效,指的是,在一定的功耗下,單位時間能提供的運算次數(shù)。
其次是吞吐量。深度學(xué)習(xí)算法主要的計算是矩陣的乘法、加法。這種極其規(guī)律的算法本身就是高度結(jié)構(gòu)化的。所以人們充分利用這種結(jié)構(gòu)化,提高硬件的效率和并行度,使得在主頻相同的情況下,數(shù)據(jù)的吞吐量大幅提高。

人工智能芯片的應(yīng)用場景可以分為以下4種情形
從市場劃分來看,又可以分為下面五個方向,如圖六所示(數(shù)據(jù)來源47家AI初創(chuàng)公司)。
視覺增強(含安防監(jiān)控)
深度學(xué)習(xí)
語音識別
區(qū)塊鏈
云

1. 性能(Performance)
2. 功耗(Power)
3. 面積(Area)
但是AI芯片的特點使得我們可以觀察到它與其他類型芯片不同的一些挑戰(zhàn)。結(jié)合這一特點,所應(yīng)用的實現(xiàn)方法也更具有針對性。
1.性能的挑戰(zhàn)自然是源于對AI芯片極致指標的追求。
由于AI芯片重運算和流水線設(shè)計的特征,加上眾多的旁路設(shè)計,時序路徑上,數(shù)據(jù)通路(Datapath)的長短差異非常明顯。到達同一個寄存器的路徑有的很長但有的很短。這都導(dǎo)致當(dāng)把時鐘頻率推到極限的情況下,時序非常難以收斂。同時,由于芯片面積的極致優(yōu)化,會導(dǎo)致density和congestion變得更高,使得時序優(yōu)化捉襟見肘。無論是buffer的插入、cell的upsize都受到空間的局限。對于Setup Check來說,useful skew是必不可少的優(yōu)化手段
在面積緊縮的條件下,工具勢必不得不通過輾轉(zhuǎn)騰挪,把繞線資源緊缺,也就是congestion嚴重的地方的standard cell推開,使其變得稀疏來緩解congestion的問題。而繞線資源不那么緊缺的地方,standard cell的密度就相應(yīng)變得更高。而這些區(qū)域,hold timing的修復(fù)會變得更為困難,因為修hold 通常是通過增加delay cell來實現(xiàn)的,需要足夠的空間。
制約性能的挑戰(zhàn)還包括時鐘樹帶來的影響。AI芯片大量的寄存器堆使得它需要一個足夠大的時鐘樹來驅(qū)動這些同步電路。當(dāng)芯片density比較低的時候,時鐘樹的插入不會帶來太大的影響。但是極致的面積要求導(dǎo)致哪怕是幾千個buffer的插入,也會對timing產(chǎn)生比較大的跳變,即Pre-CTS和Post-CTS的correlation問題。
要解決這個問題,需要工具能夠在CTS之前就做出對于真實時鐘樹的預(yù)測,在Pre-CTS優(yōu)化的時候就把時鐘樹這一重要因素考慮進去。這不僅僅可以幫助工具更早地看到時鐘樹buffer所占的空間,還可以更精準地對useful skew做出預(yù)判。
Clock Gating目前仍然是對于降低動態(tài)功耗最有效的方法之一。AI芯片自然也不會吝嗇對于Clock Gating的使用。Clock Gating Cell(通常是Integrated Clock Gate,ICG)的enable path常常是時序優(yōu)化的瓶頸。特別是高層ICG的時序,如果在Pre-CTS階段不做一些額外處理的話,是難以修復(fù)的(圖八)。這依然是要求工具能夠提前對真實時鐘樹有一個預(yù)估,對useful skew的使用有所選擇。

1) 動態(tài)功耗占據(jù)主導(dǎo)
當(dāng)然,根據(jù)芯片設(shè)計、流片工藝和signoffcorner的不同,功耗也會有不同的變化。但是動態(tài)功耗相比于靜態(tài)功耗,在AI芯片中的占比是要高得多的。比如,一個典型的比例是,動態(tài)功耗要占到總功耗的80%。這就意味著我們在實現(xiàn)的過程中,可以給與動態(tài)功耗以更高的優(yōu)先級。
2) 極不平衡的翻轉(zhuǎn)率
關(guān)于功耗的另一個特點是net上的翻轉(zhuǎn)率是極不平衡的。為了盡可能接近芯片真實的工作場景,翻轉(zhuǎn)率的數(shù)值應(yīng)該通過對網(wǎng)表的仿真,得到波形(VCD文件),然后折算出net的翻轉(zhuǎn)率(TCF或者SAIF文件)。對于AI芯片來說,仿真應(yīng)當(dāng)運行真實場景中的深度學(xué)習(xí)算法。算法通常涉及到多個步驟(讀寫、卷積、池化……),則需要對各個步驟根據(jù)所運行時間的比例,求取加權(quán)平均后的求取加權(quán)平均后的翻轉(zhuǎn)率。這樣可以比較準確地反映出芯片工作時的平均動態(tài)功耗。
通過這種方法的到的翻轉(zhuǎn)率,可以明顯觀察到,不同net直接的翻轉(zhuǎn)率有著天壤之別(圖十)。有一部分net翻轉(zhuǎn)率非常高,幾乎和時鐘頻率相近。他們幾乎一直處于翻轉(zhuǎn)的狀態(tài)。而有一部分net的翻轉(zhuǎn)率非常低,很久才翻轉(zhuǎn)一次。甚至在典型的深度學(xué)習(xí)算法運行過程中,一次也沒有翻轉(zhuǎn)過,是一些非常安靜的net。
AI芯片的對于大吞吐量的追求使得它通常擁有流水線結(jié)構(gòu)和并行的總線。如果可以充分利用這種結(jié)構(gòu)也能夠進一步優(yōu)化動態(tài)功耗的表現(xiàn)。一個例子是,如果我們把版圖上位置相近并且功能相同的寄存器替換為Multi-bit Flip Flop(圖十一),動態(tài)功耗,特別是clock上的動態(tài)功耗是可以減少的。
3. AI芯片面積上的挑戰(zhàn)表現(xiàn)在density和congestion上。
下圖是幾種類型芯片網(wǎng)表結(jié)構(gòu)上的橫向?qū)Ρ龋?br/>
不同的Floorplan會對congestion以及timing的格局帶來完全不同的變化。對極限指標的追求還需要從Floorplan上著手。需要工具提供更加自動、智能的方法,幫助Floorplan的優(yōu)化,并且這種優(yōu)化是需要全局考慮性能、功耗和面積的。

對于AI芯片開關(guān)功耗占比較多、翻轉(zhuǎn)率差異較大的特點,基于真實仿真翻轉(zhuǎn)率文件(Activity File)的動態(tài)功耗優(yōu)化是非常重要的。在翻轉(zhuǎn)率驅(qū)動的功耗優(yōu)化方案上,最新的Innovus 18.1版本有著諸多的特性。比如:
Power Optimization (activity-driven)
Activity-Driven Placement
Slack and Power-driven Placement
Clock Power-Driven Placement
High power effort CCopt
Power-Driven Routing
…
這里展示了在某款A(yù)I芯片核心模塊上,逐步開啟幾種優(yōu)化手段所得到的最終signoff功耗結(jié)果。
因此在沒有影響timing的情況下,可以獲得明顯的開關(guān)功耗的優(yōu)化。(更多的數(shù)據(jù)分析和細節(jié)展示,請參加Cadence和ARM的聯(lián)合研討會了解詳情)

然后,讓我們看看Innovus對于Congestion的解決方案。
正如前文的分析,AI芯片中大量的FlipFlop和多管腳單元,加上極致的面積目標,所以congestion往往變成了壓死性能的最大的稻草。
圖十四顯示了版圖的大部分區(qū)域都有非常嚴重的congestion問題。這種大范圍的congestion是很難通過單純的router的優(yōu)化來解決的。更需要placer和router的相互配合,在flow的各個階段通過對congestion的評估、把high congestion的區(qū)域cell density變得稀疏,同時保證timing得以滿足。
然,何以解憂?這里會用到Innovus的一個獨門秘器,18.1亮點之一,行業(yè)唯一的解決方案。
效果如圖十六,Timing、Density和DRC都得到了明顯的提升。本來由于嚴重的congestion導(dǎo)致無法修復(fù)的大量Holdviolation也得以大幅改善。
Performance:4%
Wire Length :4.7%
Area:0.3%。


