前 言
為什么芯片設(shè)計需要很長時間?能不能加速芯片設(shè)計周期?能否在幾天或幾周之內(nèi)完成芯片的設(shè)計?這是一個非常有野心的目標。過去十年,機器學習的發(fā)展離不開系統(tǒng)和硬件的進步,現(xiàn)在機器學習正在促使系統(tǒng)和硬件發(fā)生變革。
Google在這個領(lǐng)域已率先出發(fā)。在第58屆DAC大會上,Google AI負責人Jeff Dean分享了《機器學習在硬件設(shè)計中的潛力》,他介紹了神經(jīng)網(wǎng)絡(luò)發(fā)展的黃金十年,機器學習如何影響計算機硬件設(shè)計以及如何通過機器學習解決硬件設(shè)計中的難題,并展望了硬件設(shè)計的發(fā)展方向。
他的演講重點在于Google如何使用機器學習優(yōu)化芯片設(shè)計流程,這主要包括架構(gòu)搜索和RTL綜合、驗證、布局與布線(Placement and routing)三大階段。在架構(gòu)搜索階段,Google提出了FAST架構(gòu)自動優(yōu)化硬件加速器的設(shè)計,而在驗證階段,他們認為使用深度表示學習可提升驗證效率,在布局與布線階段,則主要采用了強化學習技術(shù)進行優(yōu)化。
以下是他的演講內(nèi)容:
1
神經(jīng)網(wǎng)絡(luò)的黃金十年
制造出像人一樣智能的計算機一直是人工智能研究人員的夢想。而機器學習是人工智能研究的一個子集,它正在取得很多進步?,F(xiàn)在大家普遍認為,通過編程讓計算機變得“聰明”到能觀察世界并理解其含義,比直接將大量知識手動編碼到人工智能系統(tǒng)中更容易。
神經(jīng)網(wǎng)絡(luò)技術(shù)是一種非常重要的機器學習技術(shù)。神經(jīng)網(wǎng)絡(luò)一詞出現(xiàn)于1980年代左右,是計算機科學術(shù)語中一個相當古老的概念。雖然它當時并沒有真正產(chǎn)生巨大的影響,但有些人堅信這是正確的抽象。
本科時,我寫了一篇關(guān)于神經(jīng)網(wǎng)絡(luò)并行訓練的論文,我認為如果可以使用64個處理器而不是一個處理器來訓練神經(jīng)網(wǎng)絡(luò),那就太棒了。然而事實證明,我們需要大約100萬倍的算力才能讓它真正做好工作。
2009年前后,神經(jīng)網(wǎng)絡(luò)技術(shù)逐漸火熱起來,因為我們開始有了足夠的算力讓它變得有效,以解決現(xiàn)實世界的問題以及我們不知道如何解決的其他問題。2010年代至今是機器學習取得顯著進步的十年。
是什么導致了神經(jīng)網(wǎng)絡(luò)技術(shù)的變革?我們現(xiàn)在正在做的很多工作與1980年代的通用算法差不多,但我們擁有越來越多的新模型、新優(yōu)化方法等,因此可以更好地工作,并且我們有更多的算力,可以在更多數(shù)據(jù)上訓練這些模型,支撐我們使用更大型的模型來更好地解決問題。
在探討設(shè)計自動化方面之前,我們先來看看一些真實世界的例子。首先是語音識別。在使用深度學習方法之前,語音識別很難得到實際應用。但隨后,使用機器學習和神經(jīng)網(wǎng)絡(luò)技術(shù),大幅降低了詞語的識別錯誤率。
幾年后,我們將錯誤率降低到5%左右,讓語音識別更加實用,而現(xiàn)在,在不聯(lián)網(wǎng)的設(shè)備里,我們都可以做到僅僅4%左右的錯誤率。這樣的模型被部署在人們的手機里面,隨時隨地幫助人們識別自己的語音。
計算機視覺方面也取得了巨大的進步。2012年左右,Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton在ImageNet比賽中首次使用了AlexNet,錯誤率得到顯著降低,并在當年奪得桂冠。
后一年的ImageNet比賽中,幾乎所有參賽者都使用深度學習方法,研究人員則進一步放棄了傳統(tǒng)的方法。其中,2015年,由何愷明等微軟研究人員提出ResNet更進一步降低了錯誤率。
當時的斯坦福大學研究生Andrej Karpathy正在幫助運營ImageNet比賽,他想知道如果人工識別這項艱難的任務(wù),錯誤率會是多少。在上千個類別中有40種狗,你必須能夠看著一張照片說:“哦,那是一只羅威納犬,不是一只大力金剛?cè)?,或者其他品種的狗?!?經(jīng)過一百個小時的訓練,他將錯誤率降到了5%。
這是一項非常艱難的任務(wù),將計算機識別錯誤率從2011年的26%降低到2017年的2%是一件很了不起的事,過去計算機無法識別的東西,現(xiàn)在已經(jīng)可以識別。自然語言處理、機器翻譯和語言理解中也經(jīng)歷了類似的故事。
此外,開源框架確實使世界各地的許多人能夠應用機器學習技術(shù),TensorFlow就是其中之一。
大約在2015年11月,我們開源了TensorFlow以及供Google內(nèi)部使用的工具。TensorFlow對世界產(chǎn)生了相當大的影響,它已經(jīng)被下載了大約5000萬次,當然也出現(xiàn)了很多其他框架,比如JAX、PyTorch等等。
世界各地的人們能夠?qū)C器學習用于各種了不起的用途,例如醫(yī)療保健、機器人技術(shù)、自動駕駛等等,這些領(lǐng)域都是通過機器學習方法來理解周圍的世界,進而推動領(lǐng)域的發(fā)展。
2
機器學習改變計算機設(shè)計方式
ML研究社區(qū)中的許多成功源自使用更多算力和更大的模型,更多的算力促進了機器學習研究領(lǐng)域中重要成果的產(chǎn)生。深度學習的發(fā)展正在深刻改變計算機的結(jié)構(gòu)?,F(xiàn)在,我們想圍繞機器學習計算類型構(gòu)建專門的計算機。
近年來,我們已經(jīng)在Google做了很多類似的工作,其中TPU(張量處理單元)是我們構(gòu)建定制處理器的一種方法,這些處理器專為神經(jīng)網(wǎng)絡(luò)和機器學習模型而設(shè)計。
TPU v1是我們第一個針對推理的產(chǎn)品,當你擁有經(jīng)過訓練的模型,并且只想獲得已投入生產(chǎn)使用的模型的預測結(jié)果,那它就很適合,它已經(jīng)被用于神經(jīng)機器翻譯的搜索查詢、AlphaGo比賽等應用中。
后來我們還構(gòu)建了一系列處理器。TPU v2旨在連接在一起形成稱為Pod的強大配置,因此其中的256個加速器芯片通過高速互聯(lián)緊緊連接在一起。TPU v3則增加了水冷裝置。
TPU v4 Pod不僅可以達到ExaFLOP級的算力,它還讓我們能夠在更大的模型訓練中達到SOTA效果,并嘗試做更多的事情。
以ResNet-50模型為例,在8塊P100 GPU上訓練完ResNet-50需要29小時,而在2021年6月的MLPerf競賽中,TPU v4 pod僅耗時14秒就完成了訓練。但我們的目的不僅僅是在14秒內(nèi)訓練完ResNet,而是想把這種強大的算力用于訓練其他更先進的模型。
可以看到,從一開始的29小時到后來的14秒,模型的訓練速度提高了7500倍。我認為實現(xiàn)快速迭代對于機器學習非常重要,這樣才能方便研究者試驗不同想法。
基于機器學習的計算方式越來越重要,計算機也正在往更適應機器學習計算方式的方向上演進。但深度學習有可能影響計算機的設(shè)計方式嗎?我認為,答案是肯定的。
3
機器學習縮短芯片設(shè)計周期
目前,芯片的設(shè)計周期非常長,需要幾十甚至幾百人的專業(yè)團隊花費數(shù)年的努力。從構(gòu)思到完成設(shè)計,再到成功生產(chǎn),中間的時間間隔十分漫長。但如果將來設(shè)計芯片只需要幾個人花費幾周時間呢?這是一個非常理想的愿景,也是研發(fā)人員當前的目標。
如上圖所示,芯片設(shè)計包含四個階段:架構(gòu)探索→RTL綜合→驗證→布局和布線。完成設(shè)計之后,在制作生產(chǎn)環(huán)節(jié)需要進行布局和布線(Placement & Routing),有沒有更快、更高質(zhì)量的布局和布線方法?驗證是非常耗時的一步,能不能用更少的測試次數(shù)涵蓋更多的測試項目?有沒有自動進行架構(gòu)探索和RTL綜合的方法?目前,我們的芯片架構(gòu)探索只針對幾種重要的應用,但我們終將要把目光擴大。
布局與布線
首先,關(guān)于布局和布線,Google在2020年4月發(fā)表過一篇論文Chip Placement with Deep Reinforcement Learning,2021年6月又在Nature上發(fā)表了A graph placement methodology for fast chip design。
我們知道強化學習的大致原理:機器執(zhí)行某些決定,然后接收獎勵(reward)信號,了解這些決定帶來什么結(jié)果,再據(jù)此調(diào)整下一步?jīng)Q定。
因此,強化學習非常適合棋類游戲,比如國際象棋和圍棋。棋類游戲有明確的輸贏結(jié)果,機器下一盤棋,總共有50到100次走棋,機器可以根據(jù)最終的輸贏結(jié)果評定自己和對手的整套走棋方法的有效性,從而不斷調(diào)整自己的走棋,提高下棋水平。
那么ASIC芯片布局這項任務(wù)能不能也由強化學習智能體來完成呢?
這個問題有三個難點。第一,芯片布局比圍棋復雜得多,圍棋有10^{360}種可能情況,芯片布局卻有10^{9000}種。
第二,圍棋只有“贏”這一個目標,但芯片布局有多個目標,需要權(quán)衡芯片面積、時序、擁塞、設(shè)計規(guī)則等問題,以找到最佳方案。
第三,使用真實獎勵函數(shù)(true reward function)來評估效果的成本非常高。當智能體執(zhí)行了某種芯片布局方案后,就需要判斷這個方案好不好。如果使用EDA工具,每次迭代都要花上很多個小時,我們希望將每次迭代所需時間縮減為50微秒或50毫秒。
利用強化學習進行芯片布局的步驟如下:首先從空白底座開始,運用分布式PPO算法(強化學習的常用算法)進行設(shè)計,然后完成每個節(jié)點的布局放置,最后進行評估。
評估步驟使用的是代理獎勵函數(shù)(proxy reward function),效果和真實獎勵函數(shù)相近,但成本低得多。在一秒或半秒內(nèi)就可以完成對本次布局方案的評估,然后指出可優(yōu)化之處。
構(gòu)建獎勵函數(shù)需要結(jié)合多個不同的目標函數(shù),例如線長、擁塞和密度,并分別為這些目標函數(shù)設(shè)定權(quán)重。
如上圖所示,布局優(yōu)化采取的是混合方式。強化學習智能體每次放置宏(macro),然后通過力導向方法(force-directed method)放置標準單元。
上圖來自前面提到的Nature論文,展示了更多芯片架構(gòu)的細節(jié)。
上圖展示了一個TPU設(shè)計塊的布局與布線結(jié)果。白色區(qū)域是宏,綠色區(qū)域是標準單元群(standard cell clusters)。
圖中左邊是人類專家完成的設(shè)計,從中可以看出一些規(guī)律。人類專家傾向于把宏沿邊緣放置,把標準單元放在中間。一名人類專家需要6~8周完成這個布局,線長為57.07米。圖中右邊是由智能體(ML placer)完成的布局,耗時24小時,線長55.42米,違反設(shè)計規(guī)則的地方比人類專家略多,但幾乎可以忽略。
-
Google
+關(guān)注
關(guān)注
5文章
1782瀏覽量
58504 -
芯片設(shè)計
+關(guān)注
關(guān)注
15文章
1056瀏覽量
55392 -
硬件設(shè)計
+關(guān)注
關(guān)注
18文章
422瀏覽量
45012 -
機器學習
+關(guān)注
關(guān)注
66文章
8481瀏覽量
133859 -
神經(jīng)網(wǎng)絡(luò)技術(shù)
+關(guān)注
關(guān)注
0文章
6瀏覽量
5339
發(fā)布評論請先 登錄
相關(guān)推薦
評論