用Apollo設(shè)計(jì)芯片!Google說懂芯片才能更快「煉丹」新智元關(guān)注共 2699字,需瀏覽 6分鐘 ·2021-03-03 13:21 新智元報(bào)道 來源:Google編輯:LRS、小勻【新智元導(dǎo)讀】「在某些情況下,深度學(xué)習(xí)能夠比人類做出更好地設(shè)計(jì)芯片電路」,Jeff Dean如是說。利用深度學(xué)習(xí)的力量來搜索更好的參數(shù)空間來設(shè)計(jì)電路,比人腦的窮盡更有效率。 近日,Google在arxiv上發(fā)表一篇名為《Apollo: Transferable Architecture Exploration》的論文。主要作者之一Amir Yazdanbakhsh在其博客中詳細(xì)介紹了一個(gè)名為Apollo的研究項(xiàng)目。 這項(xiàng)工作可能標(biāo)志著使用機(jī)器學(xué)習(xí)技術(shù)來優(yōu)化芯片「結(jié)構(gòu)」的開始。Apollo項(xiàng)目Jeff Dean 在一年前的國際固態(tài)電路大會(huì)(International Solid State Circuits Conference)中發(fā)表過一次演講,認(rèn)為「機(jī)器學(xué)習(xí)可以用于一些低層次的設(shè)計(jì)決策,也就是說在布局和走線(place and route)上,芯片設(shè)計(jì)人員可以使用軟件來確定芯片的電路和布局,類似于設(shè)計(jì)建筑平面圖。」 相比之下,Apollo的目標(biāo)不是要構(gòu)建一個(gè)平面圖,而是要完成芯片的體系結(jié)構(gòu)的設(shè)計(jì)。作者稱其為「架構(gòu)探索」(architecture exploration)。 架構(gòu)探索比布局和走線的設(shè)計(jì)層級(jí)要更高,并且架構(gòu)的改進(jìn)能帶來比布局走線更多的性能提升。 芯片的體系結(jié)構(gòu)是一個(gè)芯片的功能元素設(shè)計(jì),包括如何交互,軟件開發(fā)人員如何獲取硬件接口。經(jīng)典的Intel x86處理器的片上存儲(chǔ)器大小、專用算術(shù)邏輯單元和寄存器等等全部的片上元素,以及他們組合起來的方式一起被稱為Intel架構(gòu)。 作者稱Apollo為「第一個(gè)可遷移的架構(gòu)探索系統(tǒng)」,隨著它設(shè)計(jì)更多不同的芯片,它的架構(gòu)設(shè)計(jì)能力也會(huì)更好。也就是之前學(xué)習(xí)到的知識(shí)能夠遷移到新的芯片設(shè)計(jì)任務(wù)上。 作者團(tuán)隊(duì)正在開發(fā)的芯片也是AI加速運(yùn)算的芯片,和基于安培架構(gòu)的GPU英偉達(dá)A100,Cerebras系統(tǒng)WSE芯片和其他創(chuàng)業(yè)公司的芯片類似。 「利用人工智能來設(shè)計(jì)人工智能芯片」,成為正反饋循環(huán)。 芯片的運(yùn)算由于任務(wù)是設(shè)計(jì)人工智能芯片,Apollo正在探索的架構(gòu)是適合運(yùn)行神經(jīng)網(wǎng)絡(luò)的架構(gòu)。神經(jīng)網(wǎng)絡(luò)的運(yùn)算由大量簡(jiǎn)單的數(shù)學(xué)單元、線性代數(shù)組成,主要的運(yùn)算是乘法和求和。 作者團(tuán)隊(duì)認(rèn)為設(shè)計(jì)任務(wù)的目的是找到一種正確的方式來混合這些簡(jiǎn)單的數(shù)學(xué)算數(shù)來適配一個(gè)給定的AI任務(wù)。他們首先選擇了一個(gè)相當(dāng)簡(jiǎn)單的AI任務(wù),一個(gè)卷積神經(jīng)網(wǎng)絡(luò)MobileNet,2017年由Google的Andrew G. Howard和其團(tuán)隊(duì)設(shè)計(jì),是一種不需要太多資源的神經(jīng)網(wǎng)絡(luò)。此外,他們還測(cè)試了一些其他網(wǎng)絡(luò)在不同任務(wù)(如目標(biāo)檢測(cè)、語義分割)的工作負(fù)載情況。 通過這種方式,目標(biāo)重新被定義為:給定一個(gè)神經(jīng)網(wǎng)絡(luò),什么芯片的參數(shù)結(jié)構(gòu)能夠讓運(yùn)算速度達(dá)到最快? 這個(gè)搜索過程對(duì)超過4.52億個(gè)參數(shù)進(jìn)行重排序,來尋找對(duì)于一個(gè)模型來說最優(yōu)的參數(shù)。這些參數(shù)包括使用多少個(gè)數(shù)學(xué)單元(處理器),內(nèi)存大小和激活函數(shù)的內(nèi)存。 Apollo是一個(gè)框架,它可以把每個(gè)部分換成其他論文中描述的黑盒優(yōu)化方法,并根據(jù)特定的工作負(fù)載來調(diào)整這些方法,然后比較每種方法在解決特定目標(biāo)下的表現(xiàn)。 作者使用了一些用來優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法,包括2019年Google的Quoc V.Le開發(fā)的進(jìn)化方法;基于模型的強(qiáng)化學(xué)習(xí)方法;由Christof Angermueller開發(fā)用來設(shè)計(jì)DNA序列的優(yōu)化方法population-based的集成方法;和一個(gè)基于貝葉斯的優(yōu)化方法。 Apollo將神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和生物合成上的設(shè)計(jì)方法結(jié)合來設(shè)計(jì)電路,電路上取得更快的速度又會(huì)反過來促進(jìn)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和生物合成的發(fā)展。 Apollo框架將所有的優(yōu)化方法都進(jìn)行了比較,實(shí)驗(yàn)結(jié)果詳細(xì)說明了「基于進(jìn)化」和「基于模型」的方法優(yōu)于隨機(jī)選擇和其他候選方法。 Apollo另一個(gè)重要的發(fā)現(xiàn)是運(yùn)行這些優(yōu)化方法的方式要比暴力搜索更有效率。例如population-based的集成方法和半窮舉「semi-exhausitive」搜索的方法更好。 population-based的方法能夠找到權(quán)衡的解決方案,例如計(jì)算機(jī)和內(nèi)存的設(shè)計(jì)需要領(lǐng)域知識(shí),而半窮舉搜索是不具有學(xué)習(xí)能力的,所以population-based能夠找到半窮舉找不到的答案。 因此Apollo能夠指出不同優(yōu)化方法之間在芯片設(shè)計(jì)上的差異。除此之外,Apollo能夠利用遷移學(xué)習(xí)提升優(yōu)化方法的能力。 通過給Apollo不同的設(shè)計(jì)方案限制,例如最大的芯片尺寸不能超過毫米級(jí),這些實(shí)驗(yàn)結(jié)果可以作為一個(gè)后續(xù)的優(yōu)化樣本作為輸入。作者團(tuán)隊(duì)發(fā)現(xiàn)利用這種面積約束的電路設(shè)計(jì)能夠影響最終設(shè)計(jì)性能。 為MobileNet設(shè)計(jì)芯片中,負(fù)載的約束也是要在設(shè)計(jì)過程中考慮到的。作者團(tuán)隊(duì)中Berkin Akin已經(jīng)開發(fā)了一個(gè)新版本的MobileNet,命名為MobileNet Edge,指出優(yōu)化需要芯片和神經(jīng)網(wǎng)絡(luò)優(yōu)化的協(xié)作。 Akin認(rèn)為「神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)者必須了解目標(biāo)的硬件架構(gòu),才能夠優(yōu)化整體的系統(tǒng)性能和能效。」 Apollo對(duì)于給定負(fù)載約束的情況已經(jīng)可以完成任務(wù)了,但是芯片設(shè)計(jì)和神經(jīng)網(wǎng)絡(luò)之間的協(xié)同優(yōu)化,也許是下一個(gè)重點(diǎn)研究的目標(biāo)。 參考鏈接:https://www.zdnet.com/article/googles-deep-learning-finds-a-critical-path-in-ai-chips/https://ai.googleblog.com/2021/02/machine-learning-for-computer.htmlhttps://www.zdnet.com/article/google-experiments-with-ai-to-design-its-in-house-computer-chips/https://arxiv.org/pdf/2102.01723.pdf 瀏覽 117點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 用一張圖片告訴你芯片設(shè)計(jì)嵌入式Linux0芯片芯片0OpenTitan安全芯片設(shè)計(jì)項(xiàng)目OpenTitan 是 Google 開發(fā)的項(xiàng)目,旨在鼓勵(lì)廠家為數(shù)據(jù)中心和消費(fèi)級(jí)設(shè)備開發(fā)所謂的信任根Google的「泛芯片」科技藍(lán)圖新智元0OpenTitan安全芯片設(shè)計(jì)項(xiàng)目OpenTitan是Google開發(fā)的項(xiàng)目,旨在鼓勵(lì)廠家為數(shù)據(jù)中心和消費(fèi)級(jí)設(shè)備開發(fā)所謂的信任根(root-of-trust)技術(shù)。如果一個(gè)系統(tǒng)被稱為擁有信任根,這意味著它有專門的芯片或模塊負(fù)責(zé)阻擊黑客通靈芯片通靈芯片0芯片之家芯片之家的核心成員是一群有活力且經(jīng)驗(yàn)豐富的工程師,公司的每一位成員都具有10年以上在一線通信企業(yè)的工作經(jīng)驗(yàn)。公司的經(jīng)驗(yàn)可以涵蓋產(chǎn)品開發(fā)的各個(gè)環(huán)節(jié),包括系統(tǒng)方案、硬件設(shè)計(jì)、layout、EMC/安規(guī)、工通靈芯片通靈芯片0芯片超人芯片超人0抓住芯片抓住芯片0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào)