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