文︱BRIAN BAILEY
來源︱Semiconductor Engineering
編譯 | 編輯部
僅通過單獨(dú)查看硬件或軟件來優(yōu)化在系統(tǒng)上運(yùn)行的工作負(fù)載是不可能的。這項工程需要共同開發(fā)并錯綜復(fù)雜地交織在一起,還需要將兩個具有悠久獨(dú)立運(yùn)行歷史的領(lǐng)域連接起來。
在計算的早期,硬件和軟件是由完全獨(dú)立的團(tuán)隊設(shè)計和構(gòu)建的,通常在不同的企業(yè)或部門中,并且很少或根本沒有直接通信或共同管理。這使得優(yōu)化任何設(shè)計都很困難。
最近,硬件和軟件工程團(tuán)隊已經(jīng)了解到,通過加強(qiáng)合作可以取得巨大收益。隨著世紀(jì)之交電子系統(tǒng)級設(shè)計(ESL)的引入,軟硬件的界限逐漸模糊。當(dāng)時EDA公司試圖構(gòu)建從統(tǒng)一描述自動創(chuàng)建硬件和軟件的流程。使用ESL,設(shè)計被劃分為幾個部分,各部分都能夠以最佳技術(shù)實(shí)現(xiàn)。事實(shí)證明,對于ESL來說,這項工程過于龐大,以致于難以獲得過多的支持。但是現(xiàn)在,為定義的工作負(fù)載定制處理器的概念逐漸成為標(biāo)準(zhǔn)做法。
在更快、更高效的設(shè)計競賽中,優(yōu)化不僅僅是構(gòu)建更好的硬件或更好的軟件。它是關(guān)于以識別實(shí)現(xiàn)能力的方式定義工作負(fù)載。例如,重要的是要了解與定義準(zhǔn)確性提高1%的AI學(xué)習(xí)算法相關(guān)的含義。成本是否超過收益?或者,如果使用量化,這將對精度、功耗、成本和其他因素會產(chǎn)生什么影響?將應(yīng)用映射到硬件編譯器或其他工具的效率如何?
同樣,在量子計算中,考慮到硬件的錯誤率和其他限制,哪些工作負(fù)載是可能的?有一個使系統(tǒng)成熟的過程,但并非所有事情都以相同的時間或相同的速率發(fā)生。
當(dāng)前的芯片架構(gòu)
要了解正在發(fā)生的變化,了解該過程過去的工作方式會很有幫助。“長期以來,業(yè)界都以某種方式開展芯片設(shè)計工作,”Cadence Tensilica AI產(chǎn)品的產(chǎn)品營銷總監(jiān)Suhas Mitra表示。“隨著時間的推移,工程師開發(fā)了更多的軟件,硬件也在發(fā)展。有人為處理器設(shè)計了一個工作架構(gòu),可獲取指令并執(zhí)行。這適用于簡單的應(yīng)用程序。但是,當(dāng)他們想要擴(kuò)展到更高的應(yīng)用程序時,他們意識到需要更多的內(nèi)存,也許是一些緩存。然后他們需要內(nèi)存保護(hù),或者其他東西,需要以某種方式做某些工作,因?yàn)楣牡?,所有這些都是由競爭驅(qū)動的。”
任何與中斷相關(guān)的設(shè)計都可能面臨很高的風(fēng)險。“多年前,GPU架構(gòu)是通過查看算法要求來設(shè)計的,”Tensilica Xtensa Processor IP,Cadence的產(chǎn)品營銷總監(jiān)George Wall指出。“但在硬件原型存在之前,軟件開發(fā)人員實(shí)際上并沒有太多事情可做。在他們擁有硬件之前,他們無法針對該硬件開發(fā)軟件。因此,硬件開發(fā)將先于軟件。然而,這種情況正在改變。開發(fā)左移正在推動該行業(yè)加速軟件開發(fā)的啟動,這樣他們就不會被困在等待硬件的困境中。”
處理器架構(gòu)的開放也正在推動這一趨勢。在最近的一篇博客中,Codasip大學(xué)項目負(fù)責(zé)人Keith Graham寫道:“由于固定和封閉的處理器架構(gòu),傳統(tǒng)的研究僅限于軟件算法和外部硬件資源。不幸的是,研究方程式的一個重要組成部分(處理器)被遺漏了。處理器架構(gòu)優(yōu)化涉及兩個關(guān)鍵概念,將特定于應(yīng)用的功能緊密耦合到處理器中,并通過減少周期數(shù)來提高處理器性能。”
處理器架構(gòu)優(yōu)化現(xiàn)已納入大學(xué)研究(圖源:Codasip)
但這不是傳統(tǒng)上用于優(yōu)化系統(tǒng)的路徑。“真正的挑戰(zhàn)是,對于特定領(lǐng)域的架構(gòu)開發(fā)人員來說,要擊敗CPU和GPU等現(xiàn)有架構(gòu),他們需要高度專業(yè)化的解決方案,”西門子EDA的HLS平臺項目總監(jiān)Russell Klein表示。“但要獲得足夠大的市場,使其在商業(yè)上取得成功,它們將需要高度靈活的方案。也就是說,它們必須是可編程的。這是一個艱難的組合,因?yàn)檫@兩個目標(biāo)截然相反。具有非常特殊需求的開發(fā)人員可能希望創(chuàng)建自己的硬件加速器,這消除了高度可編程或針對大型市場的需要。”
許多提議的架構(gòu)似乎都是在尋找一個問題。“從CPU到xPU的演變?nèi)栽诶^續(xù),幾乎沒有一天不會看到一家新公司推出新的計算平臺,”西門子EDA IC設(shè)計驗(yàn)證部門戰(zhàn)略總監(jiān)Neil Hand指出。“許多企業(yè)不會成功。從本質(zhì)上講,為工作負(fù)載創(chuàng)建新架構(gòu)完全與風(fēng)險/回報率有關(guān)。潛在的問題是,是否會發(fā)生某些事情來改變這種風(fēng)險/回報等式。如果是這樣,它是否加速了從通用處理到特定于工作負(fù)載處理的過渡。”
也許是市場失敗了,而不是提議的架構(gòu)。“我不會假設(shè)有人設(shè)計了一個芯片,然后想,‘讓我找到一個我可以使用該芯片的應(yīng)用,’”Arteris IP的研究員兼系統(tǒng)架構(gòu)師Michael Frank指出。“這是倒退思維。您可能有一個芯片,然后您正在尋找該芯片的替代用途。最初,該芯片的設(shè)計考慮了特定的用例。”
所有這些都假設(shè)硬件可以滿足最低要求。“當(dāng)今量子計算的主要重點(diǎn)是,創(chuàng)建更可靠的量子計算機(jī),這些計算機(jī)可以執(zhí)行容錯量子計算所需的所有操作,并具有所需的準(zhǔn)確性和精度,”是德科技研發(fā)運(yùn)營經(jīng)理Joel Wallman稱。“需要兩個主要的升級。首先,量子系統(tǒng)的物理實(shí)現(xiàn)需要更加健壯。其次,需要開發(fā)量子計算機(jī)的控制系統(tǒng),以實(shí)現(xiàn)極其精確和快速的亞微秒級控制序列,并具有實(shí)時反饋,從而實(shí)現(xiàn)高效的電路執(zhí)行和錯誤診斷。”
芯片架構(gòu)演進(jìn)
需要執(zhí)行大量分析才能選擇正確的體系結(jié)構(gòu)。“首先,你要考慮該用例的要求,”Arteris的Frank表示。“熱點(diǎn)在哪里?什么是內(nèi)存占用量?特定用例的內(nèi)存帶寬要求是什么?大公司的架構(gòu)師曾經(jīng)做過電子表格驅(qū)動的分析。這已經(jīng)讓位于更逼真的建模,可能使用像Gem5或QEMU這樣的模擬器。通過獲取應(yīng)用程序軟件,運(yùn)行并收集跟蹤??梢苑治鲆欢〞r間內(nèi)的讀取和寫入次數(shù),內(nèi)存占用量以及正在執(zhí)行的操作類型。例如,如果有很多矢量類型的操作,則可以使用此數(shù)據(jù)來推動構(gòu)建計算機(jī)的決策。這是一場平行化事物的競賽。這是一個多層次的分析類型,希望不會留下任何障礙,因?yàn)槿绻e過了一些重要的東西,你的系統(tǒng)可能無法處理工作量。”
一旦工作負(fù)載被市場接受,對它的要求通常會發(fā)生變化。“我在開發(fā)社區(qū)看到的不是太多的新工作負(fù)載,而是對現(xiàn)有算法的更好性能和效率的需求,以提供過去不實(shí)用的解決方案,”西門子的Klein指出。“用戶希望將實(shí)時4K圖像處理和AI內(nèi)置到一副眼鏡中以實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí),他們希望它的重量不足一盎司,更輕薄小型化,并且一次充電即可運(yùn)行一周。”
“視頻播放是一個很好的例子,”Frank認(rèn)為。“在過去,他們?yōu)榇酥圃炝藢iT的芯片,只是為了解碼視頻。如今,每個小設(shè)備都有一個視頻解碼器和編碼器,用于所有不同標(biāo)準(zhǔn)的高分辨率視頻。有一個需要針對不同的市場的用例。性能要求是一個通用術(shù)語,因?yàn)樾阅芤罂赡懿粌H包括在一定時間內(nèi)完成工作,而且可以用一定的可用能量完成工作。這是一個多維的問題。”
我們看到人工智能也出現(xiàn)了類似的情況。“數(shù)據(jù)中心的模型正變得越來越復(fù)雜,”Cadence的Mitra表示。“模型也需要在邊緣上簡化。這意味著頻譜非常廣泛,這就是推動特定領(lǐng)域計算的原因。一家公司可能希望以物聯(lián)網(wǎng)為目標(biāo),這決定了僅適用于該特定領(lǐng)域的硬件。”
對于可能在兩個位置都發(fā)生的推理,這具有重要意義。“推理不再僅僅發(fā)生在云中,也發(fā)生在邊緣,”Untether AI產(chǎn)品高級總監(jiān)Philip Lewer稱。“這更是加深了對AI工作負(fù)載加速的需求,從可以達(dá)到500 TOPs的獨(dú)立高端AI加速器到微控制器的專用AI加速知識產(chǎn)權(quán),性能低至數(shù)十個GOPs。”
硬件設(shè)計面臨挑戰(zhàn)
硬件設(shè)計面臨著重大挑戰(zhàn)。“任何開發(fā)設(shè)計都存在挑戰(zhàn)和風(fēng)險,”Mitra認(rèn)為。“你為某種類型的工作負(fù)載構(gòu)建了一些硬件架構(gòu),盡管花了三年時間,但該架構(gòu)并沒有成功普及。如今,市場正朝著不同的方向發(fā)展。模塊在不斷發(fā)展,而不僅僅是通過擴(kuò)展?,F(xiàn)階段,轉(zhuǎn)換器架構(gòu)正在接管自然語言處理。對于ASIC的構(gòu)建,開發(fā)者將會對任何結(jié)構(gòu)進(jìn)行強(qiáng)化。在某些市場領(lǐng)域,更青睞于使用FPGA,因?yàn)镕PGA不必強(qiáng)化所有東西。它們可以在結(jié)構(gòu)中保留一些功能,使設(shè)計更加靈活自如。”
這一挑戰(zhàn)正在影響著整個行業(yè)的發(fā)展。“我們可以看到,在基于變壓器的網(wǎng)絡(luò)上構(gòu)建的大型語言模型的使用有所增加,”Untether的Lewer表示。“這些網(wǎng)絡(luò)最初專注于該用例,但我們現(xiàn)在看到它們越來越多地用于其他應(yīng)用,如視覺,它們正在取代CNN。”
經(jīng)濟(jì)效益驅(qū)動一切。“如果有人認(rèn)為某個領(lǐng)域已經(jīng)足夠穩(wěn)定,并且可以構(gòu)建硬件來支持其在幾年內(nèi)運(yùn)行所需的網(wǎng)絡(luò),他們就更有信心加固,”Cadence的Wall稱。“但是,對于任何這些工作負(fù)載解決方案而言,具備一定程度的可編程性很重要。開發(fā)者不希望看到的是,在僅針對一類特定類別的網(wǎng)絡(luò)進(jìn)行設(shè)計之后,發(fā)現(xiàn)兩年后市場已經(jīng)向前發(fā)展。因此,在硬件設(shè)計開發(fā)方面,應(yīng)該考慮可編程性和靈活性。”
除了算法的演進(jìn)之外,還有一些技術(shù)進(jìn)步可能會產(chǎn)生很大的影響。“目前將所有數(shù)據(jù)移動到中央處理單元的范式(操作詞是‘中心’),然后返回內(nèi)存,這種方式是非常低效的,”Klein表示。“在許多系統(tǒng)中,數(shù)據(jù)移動限制了整體性能。在更靠近存儲位置的地方處理數(shù)據(jù)可以極大地提高性能和功耗。可以看到,在編程中,存內(nèi)計算或近內(nèi)存計算面臨著巨大的挑戰(zhàn)。軟件開發(fā)人員如何描述操作并同步活動?在某種程度上,這是一個并行編程問題,到目前為止,軟件開發(fā)社區(qū)在很大程度上回避了這個問題。”
人工智能算法改變芯片架構(gòu)
AI由GPU實(shí)現(xiàn)。“對于軟件開發(fā)而言,它定義了一組硬件要求,”Frank指出。“當(dāng)時,GPU是最好的產(chǎn)品。GPU可以對獨(dú)立元素進(jìn)行良好的并行處理。實(shí)際上,有時開發(fā)者必須修改算法才能在現(xiàn)有硬件上更好地工作。在某些時候,他們意識到不需要整個GPU。相反,他們需要一些更專業(yè)的東西。”
GPU的許多方面已經(jīng)發(fā)展成為AI加速器。“GPU使用浮點(diǎn),”Mitra稱。“但你只需要這些浮點(diǎn)模型的定點(diǎn)版本進(jìn)行推理。如今,開發(fā)者正在嘗試更小版本的浮點(diǎn)模型,比如bfloat16。對于某些工作負(fù)載,即使是8位量化也可能足夠了。而對于另一些工作負(fù)載,可能需要更高的量化。這并沒有一個統(tǒng)一的正確答案,沒有一種量化格式適用于所有工作負(fù)載。這種情況給芯片公司或研究所帶來了很多困難,因?yàn)樗麄冮_發(fā)面向未來的技術(shù)和產(chǎn)品。開發(fā)者必須能夠重新定位、重新運(yùn)行,以找到合適的方案。”
隨著對工作負(fù)載的理解越來越明確,其他架構(gòu)變化也隨之出現(xiàn)。“對于計算并行化,你將繼續(xù)看到各種類型的空間架構(gòu),”Lewer表示。“這些允許將復(fù)雜圖形分解為數(shù)千個通過某種類型片上網(wǎng)絡(luò)連接的處理元素。內(nèi)存速度和更大的內(nèi)存深度使快速訪問大量權(quán)重和激活成為可能,反過來,內(nèi)存和計算之間的耦合也將越來越緊密。”
如今,大多數(shù)架構(gòu)都在嘗試優(yōu)化操作,而不是優(yōu)化工作負(fù)載。“硬件尋找應(yīng)用,但工作負(fù)載是底層基礎(chǔ),”Frank介紹。“工作負(fù)載可能是矩陣乘法。通過構(gòu)建能夠良好運(yùn)算矩陣乘法的算法架構(gòu),以廣泛應(yīng)用于諸多應(yīng)用領(lǐng)域。但是,應(yīng)用不能和工作負(fù)載混淆一談。這是你試圖加速的一個算法元素,它定義了所謂的工作負(fù)載。”
總結(jié)
如今,軟件的發(fā)展升級速度要比硬件更為快速。這就導(dǎo)致硬件逐漸尋求更多策略,來滿足當(dāng)今軟件的發(fā)展需求,同時能夠在不犧牲性能的前提下適應(yīng)未來的發(fā)展需求。硬件與軟件應(yīng)當(dāng)協(xié)同發(fā)展,而不是成為競爭者。由于對多個操作環(huán)境的考慮,市場對軟件的需求也在不斷發(fā)展。
“軟硬件架構(gòu)的優(yōu)化將分為幾個階段,”Mitra表示。“即新網(wǎng)絡(luò)開發(fā)階段、新架構(gòu)階段,及以需求為導(dǎo)向,對現(xiàn)有架構(gòu)的改進(jìn)開發(fā)階段。開發(fā)者可根據(jù)需求考慮培訓(xùn)或推理,或者兩者兼有,這意味著他們將需要滿足PPA要求的多種解決方案。”
硬件正以前所未有的速度發(fā)展,現(xiàn)在必須解決這個問題的經(jīng)濟(jì)性。軟件直接成為硬件的驅(qū)動力,但它也受到硬件可能性的影響。