架構探索和RTL綜合
在芯片設計中,另一個比較耗時的方面是要清楚你究竟想要構建何種設計。此時你需要做一些架構探索(architectural exploration),然后做RTL綜合。目前計算機架構師和其他芯片設計師等具有不同專業知識的人花費大量時間來構建他們真正想要的設計,然后驗證、布局和布線,那么我們可以學習自動做架構探索和綜合嗎?
現在我們正在研究的就是如何為已知的問題實行架構探索。如果我們有一個機器學習模型,并且想要設計一個定制芯片來運行這個模型,這個過程能否實現自動化,并提出真正擅長運行該特定模型的優秀設計。
關于這項工作,我們在arXiv發表了論文《A Full-stack Accelerator Search Technique for Vision Applications》,它著眼于很多不同的計算機視覺模型。另外一個進階版本的論文被ASPLOS大會接收了《A Full-stack Search Technique for Domain Optimized Deep Learning Accelerators》。
這里要解決的問題是:當你設計一個機器學習加速器時,需要考慮你想在哪個加速器上運行什么樣的機器學習模型,而且這個領域的變化非常之快。
上圖中的紅線是指引入的不同計算機視覺模型,以及通過這些新模型實現的ImageNet識別準確率提升。
但問題是,如果你在2016年想要嘗試設計一個機器學習加速器,那么你需要兩年時間來設計芯片,而設計出來的芯片三年后就會被淘汰。你在2016年做的決定將會影響計算,要保證在2018年-2021年高效運行,這真的很難。比如在2016年推出了Inception-v3模型,但此后計算機視覺模型又有四方面的大改進。
因此,如果我們能使設計周期變得更短,那么也許單個工作負載加速器能變得可用。如果我們能在諸多流程中實現自動化,那么我們或許能夠得到正反饋循環,即:縮短機器學習加速器的上市時間,使其能更適合我們當下想要運行的模型,而不用等到五年后。
4用機器學習探索設計空間
實際上,我們可以使用機器學習來探索設計空間。有兩個因素影響加速器性能,一是設計中內置的硬件數據通道,二是工作負載如何通過編譯器而不是更高級別的軟件映射到該數據通道。通常,設計空間探索實際上只考慮當前編譯器優化的數據通道,而不是協同設計的編譯器優化和優化數據通道時可能會做的事。
因此,我們能否同時優化數據通道、調度(schedule)和一些編譯器決策,并創建一個搜索空間,探索出你希望做出的共同設計的決策。這是一種覆蓋計算和內存瓶頸的自動搜索技術,探索不同操作之間的數據通道映射和融合。通常,你希望能夠將事物融合在一起,避免內存傳輸的每次內存負載中執行更多操作。
根本上說,我們在機器學習加速器中可能做出的設計決策創建了一種更高級別的元搜索空間,因此,可以探索乘法的脈沖列陣(systolic array)在一維或二維情況下的大小,以及不同的緩存大小等等。
如前所述,考慮編譯器優化與硬件設計的協同設計也很重要,因為如果默認編譯器不會更改,就無法真正利用處理器中底層設計單元的變化。實際上,不一定要考慮特定設計的所有效果和影響。
接下來看看這種方式產生的一系列結果,將這些結果與TPUv3芯片的baseline(上圖藍條)進行比較。實際上這是假定型TPUv3芯片,其中模擬器已停止了運行。我們已經將其縮小到了sub-10納米工藝。我們還將研究TPUv3的軟件效用,以及共同探索在設計空間中的編譯器優化。
紅條和藍條表示的內容是一致的,但一些探索過的編譯器優化不一定在藍條中得以體現,而這里的綠條則表示的是為單一計算機視覺模型定制的假定型設計。EfficientNet-B0...B7表示相關但規模不同的計算機視覺模型。與藍條baseline相比,(綠條的)Perf/TDP的改進大約在3到6倍之間。
那么除EfficientNet-B0...B7外,其他模型的情況如何?在此前所述的ASPLOS論文中提出更廣泛的模型集,尤其是那些計算機視覺以外的BERT-seq 128和BERT-seq 1024等NLP模型。
實際上,定制化芯片不只是適用于單個機器學習模型,而是使其適用于一組機器學習模型。你可能不想使你的加速器芯片設計僅針對某一項任務,而是想涵蓋你所關注的那一類任務。
上圖的黃條代表為五種不同模型設計的定制化芯片,而我們想要一個能同時運行這五種模型(紅色箭頭所指)的芯片,然后就能看出其性能能達到何種程度。可喜的是,從中可以看到,黃條(單一負載)并不比綠條(多負載)的性能低多少。所以你實際上可以得到一個非常適合這五種模型的加速器設計,這就好比你對其中任何一個模型都進行了優化。它的效果可能不是最好的,但已經很不錯了。
而且,如果你關注的點是性能而非Perf/TDP,得到的結果實際上會更好。所以結果如何取決于你關注的是什么,是絕對性能還是每瓦性能?在Perf//TDP指標中,性能結果甚至提升了2.6到8.8倍,而非Perf/TDP指標下的1.8到6.4倍。
因此,我們能夠針對特定工作負載進行定制和優化,而不用構建更多通用設備。我認為這將會帶來顯著改進。如果能縮短設計周期,那么我們將能以一種更自動化的方式用定制化芯片解決更多問題。
當前的一大挑戰是,如果了解下為新問題構建新設計的固定成本,就會發現固定成本還很高,因此不能廣泛用于解決更多問題。但如果我們能大幅降低這些固定成本,那么它的應用面將會越來越廣。
5
總結
我認為,在計算機芯片的設計過程中,機器學習將大有作為。
如果機器學習在合適的地方得以正確應用,那么在學習方法(learning approaches)和機器學習計算的加持下,芯片設計周期能不能縮短,只需要幾個人花費幾周甚至幾天完成呢?我們可以用強化學習使得與設計周期有關的流程實現自動化,我認為這是一個很好的發展方向。
目前人們正通過一組或多組實驗來進行測驗,并基于其結果來決定后續研發方向。如果這個實驗過程能實現自動化,并且能獲取滿足該實驗正常運行的各項指標,那么我們完全有能力實現設計周期自動化,這也是縮短芯片設計周期的一個重要方面。
這是本次演講的部分參考文獻以及相關論文,主要涉及機器學習在芯片設計和計算機系統優化中的應用。
機器學習正在很大程度上改變人們對計算的看法。我們想要的是一個可以從數據和現實世界中學習的系統,其計算方法與傳統的手工編碼系統完全不同,這意味著我們要采取新方式,才能創建出我們想要的那種計算設備和芯片。同時,機器學習也對芯片種類和芯片設計的方法論產生了影響。
我認為,加速定制化芯片設計過程中應該將機器學習視為一個非常重要的工具。那么,到底能否將芯片設計周期縮短到幾天或者幾周呢?這是可能的,我們都應該為之奮斗。
-
計算機
+關注
關注
19文章
7488瀏覽量
87855 -
芯片設計
+關注
關注
15文章
1015瀏覽量
54879 -
硬件設計
+關注
關注
18文章
396瀏覽量
44565 -
機器學習
+關注
關注
66文章
8408瀏覽量
132568
發布評論請先 登錄
相關推薦
評論