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