(本文編譯自Semiconductor Engineering)
越來越多的AI處理器在設計時圍繞特定工作負載展開,而非標準化基準測試,旨在優化性能和能效,通常也會保留足夠的靈活性以適應未來變化。
雖然矩陣乘法和軟件優化的基本原理仍然適用,但僅憑這些已遠遠不夠。設計需要解決特定的數據類型、數據可能的處理時間與地點、將面臨的各類約束,以及在設計進入制造和封裝階段時,工作負載是否可能發生變化。這在AI領域尤其重要,因為算法的不斷變化會嚴重縮短那些過于緊扣當前工作負載而設計的芯片的使用壽命。
“在開發處理器時,了解應用程序的真正性質及其將運行的工作負載至關重要,”Arm CPU技術副總裁兼研究員Frederic Piry表示,“雖然基準測試對于展示性能目標很有價值,也能從中收獲良多,但現實世界的工作負載會引入一些基準測試本身無法捕捉的變量。處理器開發者需要了解應用程序的執行方式。工作負載的執行頻率、競爭進程的存在,以及內存等共享資源的負載,都會影響性能。這些條件可能會改變內存延遲的呈現方式、預取器的調優方式,以及緩存拓撲的設計方式。”
基準測試通常強調完成時間,但具體工作負載可能需要考慮不同的指標。
Piry表示:“從系統層面考慮工作負載非常重要。在移動領域,后臺運行的應用程序可能會影響進程的運行方式,這要求設計人員考慮分支預測和預取學習率。在云環境中,內核可能會共享代碼和內存映射,從而影響緩存替換策略。即使是軟件堆棧,也會對結構大小和性能一致性產生影響。處理器開發人員還需要考慮如何在實際工作負載中使用功能。不同的應用程序可能會以不同的方式使用安全功能,這取決于它們與其他應用程序的交互方式、代碼的安全性以及所需的整體安全級別。所有這些不同的選擇都帶來不同的性能權衡,而這些都必須在設計中加以考慮,并進行相應的測試。”
以移動設備和數據中心的工作負載為例。“手機的移動處理器運行的工作負載,與針對特定市場且經過高度調優的AI處理器截然不同,”Rambus杰出發明家兼研究員Steve Woo表示,“架構師需要了解市場需求的差異,并了解如何優先考慮不同的特性以滿足市場需求。處理器架構師還必須了解目標工作負載的計算特性。是否存在帶寬受限、延遲敏感或計算密集型階段?它們之間如何相互作用?對于AI工作負載,這意味著需要對大語言模型(LLM)等AI模型進行性能分析,以了解計算、通信和內存訪問模式、可用的并行性以及數據在系統中的移動方式。算法分析、代碼重構以及模擬器、性能計數器和工作負載跟蹤等工具,有助于量化這些行為,進而為架構和系統設計提供依據,尤其在AI等快速發展的領域中,工作負載瞬息萬變,尤其有助于平衡靈活性、功耗和吞吐量。”
對工作負載有深刻理解的公司,能夠基于對設備使用方式的了解來優化自身設計。這相比通用解決方案具有顯著優勢。
然而,說起來容易做起來難。“神經網絡開發涉及的認知負荷相當高,尤其是在針對某一設備進行優化時,”Arm人工智能和開發者平臺研究員Geraint North表示,“開發者需要牢記兩件事。一是模型的架構,他們會關注模型的準確性、規模等。如今,機器學習開發者對這些內容已非常了解。但挑戰在于,當開始在設備上進行操作時,還必須考慮NPU是否真的能夠運行優化過的模型。這就是我們如此專注提升CPU性能的原因。CPU的優勢在于它是通用計算單元。幾乎可以保證它能處理你交給它的任何運算符和數據類型。”
了解數據類型
AI處理器開發人員需要知道將要處理哪些數據類型,以及將要執行的算法類型的大致范圍。
Quadric首席營銷官Steve Roddy表示:“要開發出一款優秀的音頻處理器,處理器中的數據路徑需要原生支持預期的音頻數據采樣位精度。音頻數據是8位(低保真)還是12位采樣?還是會是像32位浮點這樣的高精度數據?所有寄存器文件和硬件單元(例如乘法累加器)都需要理解這些數據類型,尤其是累加寄存器。該音頻處理器需要具有能高效運行典型音頻濾波和音頻處理算法的原生指令。但該音頻DSP的開發人員無需在杜比或DTS工作,也無需訪問3D定位音頻堆棧中數百萬行的代碼。”
對于SoC開發者來說也是如此。Cadence AI IP產品營銷總監Jason Lawley表示:“我們的NPU易于集成。我們為其配備了AXI接口,可以處理已優化的架構規范。與之配套的軟件負責將這些工作負載從框架進行映射。很多時候,客戶使用PyTorch或TensorFlow進行開發。之后我們將該網絡映射到NPU中,這樣當他們開發SoC時,就知道設計中已包含通用CPU部分,也知道有NPU這個加速器。當他們獲得工作負載(通常是音頻或視頻幀)時,他們只需編譯該特定工作負載。到了需要加速的部分,他們調用一段簡單的API代碼,代碼就會執行加速,然后他們就能得到結果。很多選擇IP方案的客戶都在這樣做。如果不采用IP方案,你仍然需要做所有這些工作,但可能不會太關注引擎的可配置性,也不會去確保以最優方式充分利用所有硬件。這也沒關系,這取決于他們的工作負載是否能夠得到滿足。
對于AI而言,需要考慮的關鍵因素同樣是數據類型和一般用例。Quadric的Roddy表示:“純視覺NPU主要使用INT8機器(8x8 MAC),可能會表現得相當出色。但想要運行LLM呢?這可能需要4位權重來壓縮大型模型,卻需要16位激活函數(甚至可能是16位浮點數)來保持精度,因此,4x16 MAC會成為基本構建模塊。而你想要運行的網絡類型的廣度,將決定是否可以使用僅支持30或40個圖運算符的固定功能NPU加速器,還是需要一個能夠運行PyTorch目前提供的2,300多個運算符的處理器。但設計一款在汽車車載信息娛樂(IVI)和先進駕駛輔助系統(ADAS)等領域取得成功的NPU處理器,并不需要具備大語言模型設計方面的數據科學專業知識,也不需要具備終端市場的專業知識。簡而言之,你需要了解AI工作負載中包含的內容,而不是如何創建它們。”
不同類型的處理器,設計人員所需了解的知識也存在差異。
Rambus的Woo表示:“面向手機的電池供電移動處理器設計人員,專注于功耗和快速的電源狀態轉換,處理器在支持較小內存容量的小型環境中獨立工作。相比之下,用于在最大工作負載下進行訓練和推理的數據中心AI處理器,則注重性能和吞吐量,擁有更大的功耗預算和先進的散熱解決方案,以及更高的內存容量和帶寬。專注于AI訓練的GPU設計人員,會優先考慮這些數據密集型任務的并行性和內存帶寬。同時,針對推理進行優化的處理器通常資源需求較低,因為模型經過量化,以降低內存容量和帶寬需求。有針對性的處理流水線可以提高數據中心以外設備的效率。無論是云規模、移動還是嵌入式設備,每種類型的處理器都需要設計人員對工作負載結構、性能瓶頸和部署環境有特定的理解。”
工作負載的呈現方式
向NPU設計人員呈現工作負載的最佳方式是什么?Roddy表示,最簡單的解決方案是提供一組具有代表性的基準模型。
“假設你想構建一個高效的LLM推理‘機器’來運行Llama和DeepSeek的QWEN大模型,”Roddy解釋道,“可以從已發布的公共模型開始。這些模型的結構——即圖運算符及其之間的互連——都是公開的。經過訓練的模型權重——數十億個參數——是專有且通常是被保密的。分析參考模型,您可以快速了解:a)數據類型(精度);b)所需的計算量——MAC、高斯方程、二次方程、簡單平均或控制流操作;c)每種運算的頻率或強度,即哪些操作被執行了數十億次,哪些操作只執行兩次。唯一棘手的部分是準確描述您希望機器能夠應對哪些未來變化。數據類型會改變嗎?常用的運算符會改變嗎?需要注意的是,PyTorch擁有超過2,300個運算符,其中大多數目前很少使用,但在未來的AI創新中可能會突然變得至關重要。目前已知的工作負載,加上您所需的未來靈活性,就能完整描述需要解決的問題。”
同時,最終應用可能會為處理器設計提供明確的限制條件,或者至少是邊界條件。“例如,在安全關鍵型應用中,需要實施看門狗或鎖步等安全機制,以防止處理器陷入任何類型的死鎖,”弗勞恩霍夫IIS自適應系統工程部門設計方法負責人Roland Jancke指出,“針對這種情況,有相應的標準和測試程序,以便設計能夠根據這些標準進行認證。”
其他來自應用的要求,例如能耗,則不那么容易量化。“一款成熟的水冷式AI加速器或許能滿足手頭的任務,但對于輕量級無人機應用來說,它又太重了,”Jancke說道,“一般來說,自主系統會為處理器設計設定功耗和重量的邊界條件。另一方面,根據我們與業界溝通的經驗,問題通常是反過來問的:‘特定算法的開發者需要在多大程度上了解執行處理器的確切結構和屬性?’當然,了解可用處理單元的細節或許可以提高算法實現的效率。然而,這些架構細節可能會在開發周期中發生變化。考慮到這一點,我們看到了向抽象化發展的趨勢。設置一個定義明確的接口(如API),可以實現硬件和軟件相對獨立的開發。軟件基于該API進行開發,而硬件則專注于盡可能高效地執行API指令。即便不了解也不考慮確切的應用,這對開發過程而言可能也是有利的。”
所有這些技術考量,正是AI IP對某些AI處理器開發者有意義的原因所在。“SoC開發者必須了解客戶的需求,”Cadence的Lawley表示,“但很多人忽略的另一個關鍵因素是編譯將在其SoC上運行的AI模型的軟件。他們必須開發這類軟件,并在解決方案的整個生命周期內對其進行維護。而且,隨著AI的快速發展,組建軟件團隊并找到合適的人才成本高昂。他們必須找到不僅是AI開發者的編譯器專家。這些專家必須獲取該模型,進行編譯,然后進行優化,使其能夠在他們創建的特定硬件上運行。很多時候,這對他們來說很困難,除非他們有非常具體、定制的工作負載,并且同一模型將始終運行在這些工作負載上。”
處理器專業化與支持不斷變化的工作負載之間的相互作用,對設計人員來說是一個巨大的挑戰。準確預測工作負載既必要,又難以實現。
這正是硬件加速仿真發揮作用的地方。“對于肩負著猜測或預測工作負載模樣的驗證工程師和 RTL 設計人員來說,他們已經做得很好了,但硬件加速仿真平臺的出現具有革命性的意義,因為它徹底消除了系統中的猜測成分,”Ansys(現為新思科技旗下公司)的Suhail Saif指出,“你可以將系統以FPGA格式或類似格式放入仿真器中,并在制造之前運行真實的工作負載。說到真實的工作負載,無論是在iPhone上運行Safari瀏覽器,還是在手機上播放社交媒體視頻、撥打電話、在iPad上玩游戲等,這些都是芯片、系統或設備設計人員希望終端用戶執行的非常真實的工作負載場景。”
結語
AI處理器需要在性能、功耗和足夠的面積之間取得平衡,以確保設計面向未來。“沒人會因為在SoC中加入AI功能而被解雇,”Lawley表示,“無論你是采用IP供應商提供的方案,還是在SoC中加入一些矩陣乘法功能,現在都是時候這么做了,因為所有人日后都會回想:‘我要是在硬件中加入更多AI功能就好了’,因為硬件部分是難點。對于SoC而言,從設計到制造需要2到5年的時間。為AI功能以及靈活的AI功能預留面積至關重要。模型變化很快。對于現在已有的模型,誰知道未來會不會出現經過充分優化且性能更優的新模型呢?所以,要確保你的SoC具備AI功能,然后盡量確保其具備足夠的靈活性,并將其接入能以多種方式使用的系統中。”
END