公眾號記得加星標??,第一時間看推送不會錯過。
來源:內(nèi)容來自semiengineering。
多年來,處理器一直專注于性能,而性能幾乎無需對其他任何因素負責。性能仍然重要,但現(xiàn)在它必須對功耗負責。
如果性能的小幅提升導致功耗不成比例地增加,設(shè)計人員可能需要放棄這些改進,轉(zhuǎn)而采用更具能效的方案。盡管當前的架構(gòu)在性能和功耗方面持續(xù)穩(wěn)步改進,但進一步的提升正變得越來越困難。
Cadence Tensilica 音頻/語音 DSP 產(chǎn)品營銷總監(jiān) Prakash Madhvapathy 表示:“每個人都在重新設(shè)計他們的微架構(gòu),看看如何改進它們以控制功耗?!?/p>
許多旨在提高計算吞吐量的處理器功能,例如亂序執(zhí)行,增加了復雜的電路,從而提高了功耗和電路面積。由于功耗成本,類似的改進在今天可能不會被接受。那么,我們當前的處理器架構(gòu)還有哪些機會呢?
高效實現(xiàn)還不夠好
許多提高效率的努力都涉及對現(xiàn)有架構(gòu)的更好設(shè)計,并且在這方面仍然可以取得一些進展。Ansys 產(chǎn)品營銷總監(jiān) Marc Swinnen 表示:“在實現(xiàn)方面,有很多節(jié)能技術(shù)?!?/p>
一種非常基本的方法是利用工藝改進,以更少的功耗完成更多工作?!澳柖刹⑽聪觯盨winnen 說,“我們?nèi)栽讷@得更小的工藝技術(shù),這始終是降低功耗的首要方法。它很快就會耗盡,但還沒有完全耗盡?!?/p>
這也可以推動工藝決策?!爱斈氵x擇某個工藝節(jié)點時,你也需要考慮能效,”Madhvapathy 說,“22納米基本上是28納米,但能耗特性好得多?!彼赋?,12納米是另一個用于高效設(shè)計的流行節(jié)點。
3D-IC 提供了一個新的功耗點,介于單片芯片和 PCB 級組件之間?!?D-IC 的功耗將高于單片芯片,但 3D-IC 的功耗更低、速度更高,比通過傳統(tǒng) PCB 走線連接的多個芯片實現(xiàn)方案要好得多,”Swinnen 指出。
共封裝光學器件(CPO)使光學器件更接近硅片,這也可以降低功耗,但這已經(jīng)醞釀了很長時間?!癈PO 已經(jīng)存在很長時間了,但從經(jīng)濟上很難證明其技術(shù)復雜性是合理的,而且最終的權(quán)衡不一定有利,”Swinnen 解釋說,“這種情況似乎正在轉(zhuǎn)變。部分原因是技術(shù)變得更好,部分原因是高速數(shù)字通信的需求變得如此強烈,以至于人們愿意為此支付更多費用。”
并非所有技術(shù)都實用
有些實現(xiàn)技術(shù)聽起來很有趣,但也帶來了自己的挑戰(zhàn)。異步設(shè)計就是其中之一?!皬暮玫姆矫鎭碚f,每個寄存器都盡可能快地與下一個寄存器通信,”Swinnen 解釋道,“沒有中央時鐘,所以整個時鐘架構(gòu)消失了。你沒有松弛時間,即一個數(shù)據(jù)路徑等待另一個數(shù)據(jù)路徑。它已經(jīng)存在了幾十年,但除了在特定情況下,它未能突破,因為性能是不可預測的。猜測時序會是怎樣的,而且由于工藝變化,每個芯片都可能略有不同。”
最終它是否真的能節(jié)省功耗也尚不清楚。“自定時握手意味著觸發(fā)器必須復雜得多,”Swinnen 說,“當你把所有這些都算進去時,所有觸發(fā)器都消耗更多的電量。還有一個問題是:‘所有這些復雜性和不可預測性最終真的能為你節(jié)省多少電量嗎?’總而言之,它并沒有真正成為一種設(shè)計方法?!?/p>
還可以通過數(shù)據(jù)和時鐘門控來抑制雜散功耗或毛刺功耗以降低功耗?!斑@會增加面積,但對雜散功耗的影響可能相當大,”Madhvapathy 說。
這需要分析來確定主要貢獻者。Swinnen 指出:“它不僅可以測量毛刺功耗,還可以識別導致此毛刺的原因?!?/p>
最終,在實現(xiàn)層面上的影響是有限的。Swinnen 說:“在 RTL 層面你能走多遠是有限制的,這很諷刺,因為大部分的功耗節(jié)約機會都在 RTL 層面。”“最大的好處實際上是在架構(gòu)層面?!?/p>
昂貴的功能
人工智能 (AI) 計算已將設(shè)計團隊推向內(nèi)存墻,因此,鑒于業(yè)界對 AI 訓練和推理的關(guān)注,大量精力都集中在如何在不“燒毀房子”的情況下,將數(shù)萬億個參數(shù)在需要時放置在需要的位置。但處理器本身也會消耗能量,而其他工作負載將呈現(xiàn)出執(zhí)行功耗和數(shù)據(jù)移動功耗之間的不同平衡。
盡管時鐘頻率繼續(xù)逐漸攀升,但這些變化對性能提升的推動作用已不如從前。改進的真正目標一直是努力使處理器盡可能多地保持忙碌。三個架構(gòu)特性可以說明為實現(xiàn)這些增益所做的復雜改變——推測執(zhí)行(也稱為分支預測)、亂序執(zhí)行和有限并行性。
推測執(zhí)行的目的是避免在進入分支指令后必須等待結(jié)果才能決定遵循哪個分支的情況。等到那時再決定會延遲結(jié)果,直到系統(tǒng)從 DRAM 獲取分支結(jié)果所指示的指令為止。相反,它會推測性地遵循一個分支——希望能是最有可能的分支。通常,分支決策的完成會驗證該決策,但有時不會。此時,必須回溯推測性計算并重新啟動另一個分支(包括從 DRAM 獲取潛在指令)。
分支預測通常伴隨著亂序執(zhí)行,這是一種允許某些指令以與程序中出現(xiàn)順序不同的順序執(zhí)行的特性。其思想是,當一個指令可能因等待數(shù)據(jù)而停滯時,另一個后續(xù)指令現(xiàn)在已準備好。請注意,后一個指令不能依賴于前一個指令,但串行編程范式的主要限制之一是指令必須按順序排列,即使它們之間沒有依賴關(guān)系。因此,亂序執(zhí)行是一個復雜的系統(tǒng),可以提前啟動多個指令,確保遵守原始程序語義。
面積 vs. 性能
這些系統(tǒng)并不簡單,而且它們的成本可能與其效益不成比例,具體取決于它們的構(gòu)建方式。西門子 EDA 高級綜合部門項目總監(jiān) Russ Klein 表示:“例如,分支預測器會保留一份已執(zhí)行分支的列表。”“就像緩存一樣,該列表通常使用分支目標的最低 N 位作為哈希鍵,指向已執(zhí)行分支的列表。因此,N 可以是 4 或 16 或更多,列表中的條目數(shù)可以是 1 或 2 或 32。你可以存儲完整的目標分支地址,或者可能只存儲最低 12 或 16 位。一個更大、更詳細的已執(zhí)行分支內(nèi)存會帶來更好的性能,但顯然會占用更多空間(和功耗)?!?/p>
由此產(chǎn)生的效益也會相應變化。Klein 解釋說:“一個小型簡單的分支預測器可以使處理器提速 15%,而一個大型復雜的預測器可以使性能提升 30%。但它可能比小型簡單的預測器大 10 倍(或更多)。”“就面積而言,誰會在乎,但對于功耗來說,這確實是一個大問題?!?/p>
Cadence 通過重構(gòu)一些編解碼器來提高它們的性能,生成了分支較少的代碼。Madhvapathy 表示:“我們看到性能提升了大約 5% 到 15%。”“編解碼器中的分支數(shù)量少于 5%,在內(nèi)部執(zhí)行循環(huán)中幾乎沒有,我們使用了 ZOL(零開銷循環(huán))。”
更普遍地,該公司發(fā)現(xiàn)在典型程序中存在更多分支?!皩嶋H代碼中約有 20% 的指令是分支,”Madhvapathy 說,“這些都代表了推測執(zhí)行的機會。性能提升可達 30% 或更高,因為每周期平均執(zhí)行的指令數(shù)顯著增加——即使其中一半預測成功??傞_銷 [分支預測和亂序執(zhí)行] 可能在 20% 到 30% 之間?!?/p>
Klein 回憶起 Tilera 的創(chuàng)始人 Anant Agarwal 討論的“殺戮法則”。他說:“殺戮法則指出,如果你要將一個功能添加到你的 CPU 中,它會增加面積,如果增加的面積大于你獲得的性能提升,那么你就不要添加這個功能?!?/p>
并行計算是“簡單”的答案
并行性顯然是提高性能的另一種方法,但當前處理器中可用的并行性是有限的。當今主流處理器提供并行性的方式有兩種——通過實例化多個核心,以及通過核心內(nèi)的多個功能單元。
功能單元是過去簡單的算術(shù)邏輯單元 (ALU)。它執(zhí)行實際指令。一個給定的功能單元通常能夠執(zhí)行一些超出簡單數(shù)學的指令。它們還可能包括乘法器、除法器、地址生成,甚至分支。通過提供多個這樣的單元,當一個單元忙碌時,另一個單元可能可以處理不同的指令,這可能是亂序的。
不同的處理器有不同數(shù)量的功能單元,代碼分析有助于確定其中指令支持的組合和分布。這有助于在可能的情況下并行化指令執(zhí)行,但處理器開銷——例如指令獲取——是串行發(fā)生的。
真正并行化計算是提高性能的最佳機會之一,而且對于一個不那么復雜的處理器來說,它可能更省電。但這樣的解決方案并非新鮮事。多核處理器在十多年前就已經(jīng)商業(yè)化,但未能獲得成功。
很少有算法是完全可并行化的。那些可并行化的通常被稱為“令人尷尬的并行”。其他所有算法都混合了可并行化代碼和必須串行運行的段。阿姆達爾定律將這些串行部分確定為最終限制因素。有些程序可以高度并行化,有些則不能。但即使算法看起來不并行,也可能存在其他機會。
分形就是一個例子?!澳愕?f(x) 是 f(x-1),”Klein 解釋說,“每個像素都通過一個長的串行鏈單獨計算。但如果你正在處理一張圖像,你有 1024 x 1024,或者無論圖像大小是多少,因此你有很多并行機會 [通過同時計算多個像素]。”
如今,數(shù)據(jù)中心服務器的處理器擁有多達約 100 個核心。但與以前的多核處理器不同,它們不用于單個程序。它們允許為需要云計算的不同用戶執(zhí)行多個程序。
并行化的問題
即使它們可以并行化,問題是處理器必須并行編程。這通常意味著顯式管理代碼的并行性,例如通過調(diào)用 pThreads。這比典型的編程要麻煩得多,需要了解數(shù)據(jù)依賴性以確保滿足按順序執(zhí)行的語義。盡管已經(jīng)存在一些幫助此操作的工具,但沒有一個進入主流軟件開發(fā)領(lǐng)域。
此外,手動管理并行性可能需要針對不同處理器編寫不同的程序。如果所需的線程數(shù)多于給定處理器在硬件中可以管理的線程數(shù),程序可能會運行但可能不理想。轉(zhuǎn)而使用軟件并行性可能會由于上下文切換開銷而損害性能。
最大的問題是軟件開發(fā)者對顯式并行編程不屑一顧。人們強烈希望任何新事物都可以使用當前的編程方法進行編程?!败浖藛T已經(jīng)徹底拒絕了 100 核處理器的概念,除了我們開始看到它滲透進來的一個領(lǐng)域——GPU 和 TPU,”Klein 觀察到。
這就是為什么多核處理器在商業(yè)上失敗的原因。即便如此,并行化主要還是為了性能。降低功耗需要一個適度的核心和激進的降功耗策略,以便空閑的核心不會消耗能量。并行化還有助于恢復可能因使核心更高效而損失的整體性能。
“我的論點是,一個由大量非常簡單的 CPU 組成的陣列是可行之路,但這確實需要改變編程方法,”他說,“我對此發(fā)生的唯一希望是 AI 能夠創(chuàng)建并行編譯器,這是我們作為一個行業(yè)從未能夠做到的?!?/p>
我們今天處理通用處理器上出現(xiàn)瓶頸的算法的實用方法是采用加速器作為非阻塞卸載,這樣加速器可以有效地處理其任務,而 CPU 則做其他事情(或休眠)。
加速器可以寬泛也可以狹窄
各種類型的加速器已經(jīng)存在了幾十年。今天,人們對那些能夠加速訓練和推理的加速器投入了大量關(guān)注,因為它們需要非常特定的密集計算。但這類加速器并非新生事物。
“異構(gòu)計算結(jié)合了處理核心,以提供優(yōu)化的功耗和性能,”Expedera 營銷副總裁 Paul Karazuba 說,“這顯然包括 NPU。NPU 解決了所有 AI 處理,避免了效率較低的 CPU 和 GPU。然而,并非所有 NPU 都生而平等——不僅在方法上,而且在架構(gòu)和利用率上也是如此。”
這是因為加速器可能高度特定——甚至是定制的——而另一些則保持更通用。Karazuba 繼續(xù)說:“如果 AI 工作負載眾所周知且穩(wěn)定,定制 NPU 可以顯著提高功耗和成本效率?!薄叭绻阈枰`活性以支持多個模型或未來的 AI 趨勢,通用 NPU 更具適應性,并且更容易與現(xiàn)有軟件生態(tài)系統(tǒng)集成。”
定制加速器將使其更具體地適應其工作負載,這種努力應該會提高能效。
Karazuba 說:“提高處理器子系統(tǒng)效率(特別是 NPU)的一種方法是創(chuàng)建更側(cè)重于應用的 NPU,而不是采用更通用的 NPU。”“定制 NPU 通常使用專門的 MAC 陣列和執(zhí)行管道,這些管道可能針對特定數(shù)據(jù)類型和模型結(jié)構(gòu)進行調(diào)整。通用 NPU 包含可配置的計算單元,支持多種數(shù)據(jù)類型,并且通常處理更廣泛的層和運算符?!?/p>
舍棄給定任務不必要的功能可以產(chǎn)生顯著的效果。Expedera 在實際應用中通常會發(fā)現(xiàn),部署定制 NPU 后,處理器效率(以 TOPS/W 衡量)提高了約 3 到 4 倍,利用率(定義為實際吞吐量/理論最大吞吐量)提高了 2 倍以上。
當我們黔驢技窮時會發(fā)生什么?
顯然,在提高處理器和處理子系統(tǒng)的效率方面,仍有一些機會。但在不遠的將來,我們可能會面臨創(chuàng)意枯竭的風險。那時會發(fā)生什么?
這時,新的處理器架構(gòu)可能就會派上用場。然而,鑒于當前架構(gòu)所依賴的龐大生態(tài)系統(tǒng),這種改變并非易事。幸運的是,有一些新的架構(gòu)理念,以及放棄部分通用性的可能性。
https://semiengineering.com/can-todays-processor-architectures-be-made-more-efficient/
*免責聲明:本文由作者原創(chuàng)。文章內(nèi)容系作者個人觀點,半導體行業(yè)觀察轉(zhuǎn)載僅為了傳達一種不同的觀點,不代表半導體行業(yè)觀察對該觀點贊同或支持,如果有任何異議,歡迎聯(lián)系半導體行業(yè)觀察。
今天是《半導體行業(yè)觀察》為您分享的第4100期內(nèi)容,歡迎關(guān)注。
加星標??第一時間看推送,小號防走丟
求推薦
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.