SoC 不斷增加處理核心,但它們不太可能得到充分利用,因?yàn)檎嬲钠款i沒有得到解決。
SoC 需要處理的數(shù)據(jù)量激增正在拖累性能,雖然處理器本身可以處理這些涌入的數(shù)據(jù),但內(nèi)存和通信帶寬正在緊張?,F(xiàn)在的問題是可以做些什么。
內(nèi)存和 CPU 帶寬之間的差距——所謂的內(nèi)存墻——有據(jù)可查,絕對不是一個(gè)新問題。但它并沒有消失。事實(shí)上,情況還在繼續(xù)惡化。
早在 2016 年,德克薩斯高級計(jì)算中心的研究科學(xué)家 John McCalpin 發(fā)表了一次演講,他在演講中研究了高性能計(jì)算 (HPC) 的內(nèi)存帶寬和系統(tǒng)資源之間的平衡。他分析了當(dāng)時(shí)排名前 500 的機(jī)器,并剖析了它們的核心性能、內(nèi)存帶寬、內(nèi)存延遲、互連帶寬和互連延遲。他的分析表明,每個(gè)插槽的峰值 FLOPS 每年增加 50% 到 60%,而內(nèi)存帶寬每年僅增加約 23%。此外,內(nèi)存延遲以每年約 4% 的速度下降,而互連帶寬和延遲每年增加約 20%。這些表明數(shù)據(jù)移動方面存在持續(xù)且不斷擴(kuò)大的不平衡。
這意味著如果我們是流式數(shù)據(jù),每次內(nèi)存?zhèn)鬏敾ㄙM(fèi)的時(shí)間相當(dāng)于 100 次浮點(diǎn)算術(shù)運(yùn)算。在內(nèi)存延遲的情況下,您無法預(yù)取并且錯(cuò)過了緩存,您已經(jīng)失去了進(jìn)行 4,000 多次浮點(diǎn)運(yùn)算的機(jī)會。
圖 1:系統(tǒng)性能要素的不平衡。資料來源:德克薩斯大學(xué)奧斯汀分校 TACC 的 John McCalpin
一個(gè)設(shè)計(jì)良好的系統(tǒng)是平衡的?!叭绻袃煞N解決方案,其中一種可以更有效地使用晶體管,那么每美元的吞吐量和每瓦特的吞吐量就會更高,而這正是大多數(shù)人想要的,”Flex Logix 首席執(zhí)行官杰夫泰特說?!昂茈y交付獲得高利用率的架構(gòu),但您可以獲得的利用率越高越好。晶體管仍然不是免費(fèi)的?!?/p>
其他人同意。Achronix產(chǎn)品營銷總監(jiān) Bill Jenkins 說:“在查看系統(tǒng)性能時(shí),事情要么受計(jì)算限制,要么受內(nèi)存限制,要么受 I/O 限制?!?“隨著計(jì)算速度的加快,您需要更加重視更快的內(nèi)存來跟上計(jì)算的步伐,并且還需要更高帶寬的接口來將數(shù)據(jù)傳入和傳出設(shè)備?!?/p>
但業(yè)界對加工性能著迷?!坝?jì)算單元的能力,無論它是什么,都很重要,但它們通常不是實(shí)際系統(tǒng)速度的限制因素,” Synopsys研究員 Rob Aitken 說?!跋到y(tǒng)速度取決于工作負(fù)載,它取決于數(shù)據(jù)從某個(gè)地方獲取、以某種方式進(jìn)行處理并發(fā)送到使用它的任何地方的速度有多快,并受到沿途一切事物的各種限制?!?/p>
這意味著不可能構(gòu)建一個(gè)對所有任務(wù)都最優(yōu)的系統(tǒng)。關(guān)鍵是要確保它是平衡的,并且在任何區(qū)域都沒有過度配置。
移動數(shù)據(jù)
移動數(shù)據(jù)的成本肯定會影響系統(tǒng)性能,但它也與功耗有關(guān),因?yàn)橐苿訑?shù)據(jù)所消耗的功率比對其執(zhí)行計(jì)算要多幾個(gè)數(shù)量級。完成一個(gè)任務(wù),一般意味著數(shù)據(jù)通過外部接口進(jìn)入內(nèi)存,從內(nèi)存到CPU,中間結(jié)果在內(nèi)存和CPU之間來回跳動,最后通過外部接口推回。
“無論你的計(jì)算速度有多快,或者你的內(nèi)存陣列有多大,最終決定你的芯片和系統(tǒng)性能的是連接兩者的總線帶寬,”模擬技術(shù)首席產(chǎn)品經(jīng)理 Pradeep Thiagarajan 說。以及西門子 EDA的混合信號 IC 驗(yàn)證解決方案。“這就是你遇到的最大瓶頸。它不僅僅是一輛公共汽車。它基本上是您的收發(fā)器、SerDes 鏈路,它為需要解決的問題帶來了一個(gè)完全不同的維度?!?/p>
有效內(nèi)存帶寬的最大進(jìn)步之一是緩存的采用。這有效地使內(nèi)存更接近處理器,并減少延遲,假設(shè)大多數(shù)內(nèi)存訪問來自此內(nèi)存而不是主內(nèi)存。但是,緩存性能一直在下降,這是延遲增加的主要原因之一(如上圖 1 所示)。即使 HBM 的引入也未能扭轉(zhuǎn)這一趨勢,因?yàn)樘幚砥餍阅茉鲩L如此迅速,主要是通過快速增加的內(nèi)核數(shù)量。McCalpin 說延遲的下降是因?yàn)榫彺孀兊迷絹碓綇?fù)雜,尤其是當(dāng)更多的內(nèi)核保持一致時(shí),并且多級緩存中的查找被序列化以節(jié)省功率。
另一種選擇是將計(jì)算移動到更靠近內(nèi)存的位置。“內(nèi)存計(jì)算時(shí)代才剛剛開始,”Cadence 產(chǎn)品營銷組總監(jiān) Marc Greenberg說的 IP 組。“我看到這可能發(fā)生的三種方式。通常,由于 DRAM 制造的經(jīng)濟(jì)性,我們在 DRAM 芯片上看不到很多復(fù)雜的邏輯。我們可能會看到少量非常具體的功能被添加到這些模具中——例如,累加或乘法累加功能,這在許多 DSP 和 AI 算法中很常見。第二種可能是像 CXL.mem 這樣的技術(shù),在這種技術(shù)中,將計(jì)算功能添加到控制內(nèi)存陣列的邏輯芯片是非常可行的。從技術(shù)上講,這是在內(nèi)存附近處理,而不是在內(nèi)存中處理。第三個(gè)介于兩者之間。對于像 HBM 這樣的某些堆疊式存儲器,通常有一個(gè)邏輯芯片與 DRAM 共同封裝在同一堆棧中,而該邏輯芯片是面向 CPU 的總線與 DRAM 設(shè)備之間的接口。
HBM 的成功無疑幫助普及了 chiplet 的概念,在這種情況下,受到光罩限制或產(chǎn)量限制的芯片現(xiàn)在可以在多個(gè) chiplet 上制造并集成到一個(gè)封裝中。然而,這現(xiàn)在需要 die-to-die 連接解決方案,這些連接解決方案可能比單個(gè) die 上的連接解決方案慢。西門子 EDA 產(chǎn)品經(jīng)理 Sumit Vishwakarma 表示:“當(dāng)公司將芯片拆分成多個(gè)同質(zhì)裸片時(shí),您希望從拆分芯片進(jìn)行相同的操作,而不會降低性能或精度?!?“你要確保兩者之間的延遲幾乎為零?!?/p>
實(shí)際上,這些小芯片是在系統(tǒng)環(huán)境中設(shè)計(jì)的,反之亦然。“這不僅僅是存儲器或控制器的設(shè)計(jì),”是德科技副總裁兼 PathWave 軟件解決方案總經(jīng)理 Niels Faché 說?!胺庋b中的 IC 設(shè)計(jì)會引入其自身的寄生效應(yīng)。因此,您必須查看實(shí)用程序和阻抗水平的潛在變化。你真的需要將其視為一個(gè)系統(tǒng),查看眼圖,了解如何根據(jù)系統(tǒng)的運(yùn)行條件對其進(jìn)行優(yōu)化。”
為此,設(shè)計(jì)團(tuán)隊(duì)正在考慮將一些以前存在于包外的功能引入包中,從而顯著增加帶寬并減少延遲?!案鶕?jù)來源和接收方,這些目的決定了接口和協(xié)議,”西門子的 Thiagaraja 說。“計(jì)算到計(jì)算將是一回事。對于計(jì)算到內(nèi)存,相同的接口將大不相同。它可能與計(jì)算到 I/O 有很大不同。我們現(xiàn)在看到在同一個(gè)包中的 HBM 堆棧,它們也需要接口。您有這么多協(xié)議——USB、SATA、PCIe、CXL、DDR、HMC、AXUI、MIPI——這個(gè)列表還在繼續(xù)。由于要求,正在創(chuàng)建更新的協(xié)議,并且需要為這些芯片到芯片的連接提供新的接收器?!?/p>
多管芯系統(tǒng)的一大優(yōu)勢是可用的連接數(shù)量變得更大。“從 I/O 的角度來看,我們曾經(jīng)有 1,024 位總線,然后我們轉(zhuǎn)向了串行接口,”Jenkins 說。“但最近發(fā)生的事情是那些串行接口現(xiàn)在變成了并行接口,例如 x32 PCIe,它由 32 通道的超高速串行連接組成?!?/p>
并行化也擴(kuò)展到多核系統(tǒng)。Codasip高級技術(shù)營銷總監(jiān) Roddy Urquhart 表示:“四核系統(tǒng)運(yùn)行類似操作系統(tǒng),一些操作可以并行化,而其他操作本質(zhì)上是順序的?!? “這就是阿姆達(dá)爾定律適用的地方。然后,還有其他新興挑戰(zhàn),例如 AI/ML,您可以在其中利用數(shù)據(jù)并行性,并且通過使用該數(shù)據(jù)并行性,您可以開發(fā)非常專業(yè)的架構(gòu)來處理非常具體的問題。嵌入式設(shè)備也有一些機(jī)會。我們一直在使用相當(dāng)傳統(tǒng)的三級流水線、32 位 RISC-V 內(nèi)核進(jìn)行一些研究,使用谷歌的 TensorFlow Lite for Microcontrollers 進(jìn)行量化,然后創(chuàng)建自定義 RISC-V 指令以使用非常有限的計(jì)算資源加速神經(jīng)網(wǎng)絡(luò). 現(xiàn)在,這在 IoT 的邊緣會很好地工作,在那里你可能需要進(jìn)行簡單的傳感或簡單的視頻處理。但是對于增強(qiáng)現(xiàn)實(shí)或自動駕駛之類的東西,您要處理的視頻數(shù)據(jù)量要大得多。
這對處理方面有很大幫助,但這只是解決方案的一部分。McCalpin 表示,重點(diǎn)是讓 DRAM 更大,而不是讓它們更快。DRAM 周期時(shí)間在過去 20 年中基本保持不變,性能的所有改進(jìn)都來自突發(fā)發(fā)送更大的數(shù)據(jù)塊。如果通過 HBM 可以使用更多的通信通道,這可能會使內(nèi)存周期時(shí)間成為瓶頸。
工作負(fù)載
如前所述,系統(tǒng)性能取決于工作負(fù)載。不可能針對所有事情優(yōu)化通用機(jī)器。“弄清楚這種平衡迫使人們重新思考人們?nèi)绾翁幚磉@個(gè)問題,”艾特肯說?!案鶕?jù)你是誰和你在做什么,解決‘我有一個(gè)我理解的非常具體的工作負(fù)載,并且我對自己的計(jì)算世界有足夠的控制’的問題的解決方案是我實(shí)際上可以設(shè)計(jì)一些東西它是為優(yōu)化我的工作量或類似我的工作量的工作量而定制的,無論我想做什么,它都會從中受益。”
即使像 AI 這樣的任務(wù)也代表不同的工作負(fù)載。“如果你看人工智能,它有兩個(gè)方面,”西門子的 Vishwakarma 說?!耙粋€(gè)是訓(xùn)練,在訓(xùn)練中你需要不斷地訪問記憶,因?yàn)橹亓烤驮谀抢?。你不斷地改變?quán)重,因?yàn)槟阍谟?xùn)練模型。在那里,溝通是關(guān)鍵。然而,如果你看推理,模型已經(jīng)訓(xùn)練好了,你所要做的就是 MAC 操作。你沒有改變權(quán)重。重量是固定的?!?/p>
Aitken 說,創(chuàng)造正確的平衡需要一種共同設(shè)計(jì)的方法?!拔医鉀Q這個(gè)問題的方式,以及我將算法分配到各個(gè)組件的方式,是解決問題的理想方式嗎?一旦確定這是我想要的通用算法結(jié)構(gòu),您就可以將其映射到一些具有預(yù)定義計(jì)算能力、預(yù)定義帶寬等的對象上。如果我決定我需要一個(gè)自定義處理對象,我可以將它們放在一起。這些都是問題的要素。這個(gè)領(lǐng)域有很多機(jī)會,隨著越來越多的人想嘗試這個(gè)東西,這一點(diǎn)會變得很明顯?!?/p>
即使在硬件領(lǐng)域內(nèi),也需要進(jìn)行大量協(xié)同設(shè)計(jì)。“有一個(gè)架構(gòu)階段,您可以在其中評估多管芯的各種場景,”Thiagaraja 說。“架構(gòu)師的主要關(guān)注點(diǎn)實(shí)際上是芯片內(nèi)以及芯片外的吞吐量和帶寬。另一方面,您的物理設(shè)計(jì)團(tuán)隊(duì)必須找出管芯的最佳尺寸。由于產(chǎn)量和功率,它不能太大。它不能太小,因?yàn)檫@樣您就必須在每個(gè)芯片中處理更少量的計(jì)算。他們是從權(quán)力和面積的角度來看的。然后你就有了設(shè)計(jì)團(tuán)隊(duì),他們必須為他們構(gòu)建接口和協(xié)議。
計(jì)算范式
對于某些問題,使用傳統(tǒng)軟件本身可能導(dǎo)致解決方案效率低下。這發(fā)生在從單核到多核的過渡以及 GPGPU 的采用期間。業(yè)界正在等待它發(fā)生在新一代 AI 硬件上。
“GPU 有一個(gè)實(shí)現(xiàn)點(diǎn),它是一個(gè)大規(guī)模并行計(jì)算對象,可以做各種事情,而不僅僅是渲染形狀,”Aitken 說?!昂芏嗳硕荚谂ρ芯窟@些類型的架構(gòu)在未來會是什么樣子。對于 AI,在采用 TensorFlow 或你擁有的東西與“我能想出一些新方法、一種新架構(gòu)來處理更好地解決類似問題的替代方法嗎?”之間存在緊張關(guān)系。對此有很多猜測。有很多人在嘗試,但我不知道有沒有人達(dá)到可以用它做 GPGPU 的水平,并說這是從現(xiàn)在開始的前進(jìn)方向。如果他們這樣做會很酷?!?/p>
并且有一些非常具體的硬件步驟可以應(yīng)用于 AI 以完全克服內(nèi)存?zhèn)鬏攩栴}。Vishwakarma 說:“模擬計(jì)算有不同的方法來看待同一個(gè)問題,但從不同的角度來看?!?“如果你想做一個(gè)數(shù)字加法器,一個(gè)加法器大約需要七八個(gè)門。每個(gè)門可能有四五個(gè)晶體管。只需將兩個(gè)數(shù)字相加,您就會看到大約 50 個(gè)晶體管。但是如果你采用模擬方法,你基本上連接了兩根電線。這是最新的。對于具有此 MAC 運(yùn)算(乘法和累加)的推理,您可以使用模擬計(jì)算并將權(quán)重存儲在閃存中。在這里,您采用了不同的方法來進(jìn)行整體計(jì)算?!?/p>
“幾十年來,我一直是這項(xiàng)技術(shù)的忠實(shí)擁護(hù)者,”Cadence 的格林伯格說?!?然而,當(dāng)它即將起飛時(shí),它似乎總是被數(shù)字領(lǐng)域的進(jìn)步所取代。也許有一天我們會把模擬計(jì)算視為一種‘超越摩爾定律’的技術(shù),但我們還沒有完全達(dá)到模擬戰(zhàn)勝數(shù)字領(lǐng)域的地步?!?/p>
模擬領(lǐng)域的幾家有前途的初創(chuàng)公司都失敗了。當(dāng)難以比較時(shí),很難銷售一個(gè)全新的概念。Lightelligence 工程副總裁 Maurice Steinman 表示:“計(jì)算能力通常是通過數(shù)據(jù)中心架構(gòu)師用作評估供應(yīng)商解決方案的方法的基準(zhǔn)測試來看待的?!?“基準(zhǔn)測試結(jié)果通常表示為原始性能,或根據(jù)‘其他重要因素’的性能,例如成本、面積或能源——基本上是完成了多少工作以及成本是多少?!?/p>
業(yè)界似乎對原始處理器性能視而不見?!癈PU 本身具有一定水平的原始計(jì)算能力——基本上,這東西的單線程性能是多少,”Aitken 說。“盡管這不是全部指標(biāo),但它仍然是衡量系統(tǒng)能力的有用指標(biāo)。然后還有更廣泛的指標(biāo),例如每瓦操作數(shù)。這是衡量系統(tǒng)整體效率的關(guān)鍵指標(biāo)。擺脫對加速器上每瓦原始 TOP 的迷戀是一項(xiàng)挑戰(zhàn),但它是在什么上運(yùn)行的,以及必要的數(shù)據(jù)是如何到達(dá)那里的?那需要多少瓦?這留給用戶作為練習(xí)?!?/p>
結(jié)論
添加更多或更快的處理內(nèi)核固然很好,但除非您能讓它們保持忙碌,否則您就是在浪費(fèi)時(shí)間、金錢和電力。你能讓他們忙碌的可能性正在降低。具有正確的內(nèi)存?zhèn)鬏斉c計(jì)算比率的算法數(shù)量正在減少。
隨著 DRAM 遷移到封裝中,我們可以預(yù)期潛在帶寬將持續(xù)增加,人們越來越擔(dān)心 DRAM 性能在過去 20 年中沒有增加。如果DRAM制造商不能解決這個(gè)問題,那么行業(yè)將不得不自己解決這個(gè)問題。
轉(zhuǎn)載微信公眾號:半導(dǎo)體行業(yè)觀察
聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)發(fā)僅為更大范圍傳播,若有異議請聯(lián)系我們修改或刪除:zhangkai@cgbtek.com
COPYRIGHT北京華林嘉業(yè)科技有限公司 版權(quán)所有 京ICP備09080401號