人工智能工作負(fù)載正在以一些意想不到的方式改變處理器設(shè)計。
人工智能正在從根本上改變處理器的設(shè)計,將針對特定人工智能工作負(fù)載的定制處理單元與用于其他任務(wù)的更傳統(tǒng)的處理器相結(jié)合。
但權(quán)衡越來越令人困惑、復(fù)雜,管理起來也越來越具有挑戰(zhàn)性。例如,工作負(fù)載的變化速度可能比生產(chǎn)定制設(shè)計所需的時間還要快。此外,特定于人工智能的流程產(chǎn)生的功率和熱可能會超出預(yù)算,這可能需要調(diào)整工作負(fù)載。整合所有這些部分可能會產(chǎn)生需要在系統(tǒng)層面解決的問題,而不僅僅是在芯片層面。
“人工智能工作負(fù)載已經(jīng)徹底改變了處理器架構(gòu),”Rambus研究員、杰出的發(fā)明家史蒂文?吳(Steven Woo)表示。“很明顯,現(xiàn)有的架構(gòu)并不能很好地工作。當(dāng)人們在2014年開始意識到你可以使用gpu并在交換性能上獲得巨大收益時,它就給了人工智能一個巨大的推動。這時人們開始說,‘GPU是一種專門的架構(gòu)。我們還能做得更多嗎?很明顯,人工智能中非常常見的乘法累加是瓶頸。現(xiàn)在你有了這些很棒的硬件。我們已經(jīng)搞定了乘法累加。那么我們還需要在硬件中加入什么呢?這才是架構(gòu)的真諦。就如同在拆帳篷時關(guān)鍵是找到帳篷里的掛鉤或長桿子,然后把它們敲倒。”
其他人也同意。Ansys主管Rich Goldman表示:“人工智能適合GPU架構(gòu),這就是英偉達(dá)擁有萬億美元市值的原因。”“有趣的是,英特爾做gpu已經(jīng)很長時間了,但是用來在他們的cpu內(nèi)部驅(qū)動視頻處理器。現(xiàn)在他們在做獨立的gpu。此外,AMD有一個非常有趣的架構(gòu),GPU和CPU共享內(nèi)存。然而,CPU仍然很重要。NVIDIA的Grace Hopper是cpu和GPU的組合,因為并不是所有的東西都適合GPU架構(gòu)。即使在這樣做的應(yīng)用程序中,也有一些部件只能運行小型cpu。幾十年來,我們一直在x86架構(gòu)的CPU上運行,也許是RISC架構(gòu),但它是一個CPU。不同的應(yīng)用程序在不同的架構(gòu)上運行得更好,碰巧NVIDIA首先專注于視頻游戲,并將其轉(zhuǎn)化為動畫和電影。同樣的架構(gòu)非常適合人工智能,而人工智能正在推動今天的一切。”
現(xiàn)在的挑戰(zhàn)是如何開發(fā)更有效的平臺,可以針對特定的用例進(jìn)行優(yōu)化。“當(dāng)你在真正可擴(kuò)展的硬件上實現(xiàn)這個東西時,而不僅僅是一次性的用例,那么挑戰(zhàn)就變成了你如何運行這個東西?Cadence Tensilica AI產(chǎn)品營銷總監(jiān)Suhas Mitra說。“傳統(tǒng)的處理器,我們有一個CPU。如果你有一個移動平臺,你就有GPU、DSP等。所有這些都很混亂,因為人們看到這些工作負(fù)載有時是令人尷尬的并行。隨著并行計算的出現(xiàn),這也是gpu變得非常流行的原因——它們擁有非常好的硬件引擎,可以進(jìn)行并行處理——供應(yīng)商很容易立即獲利。”
Expedera的首席科學(xué)家沙拉德?喬勒(Sharad Chole)表示,當(dāng)工作量得到明確的理解時,這種方法效果最好。“在這些架構(gòu)中,假設(shè)你試圖在邊緣架構(gòu)中以緊密耦合的方式集成ISP和NPU。SoC負(fù)責(zé)人正在研究如何減少設(shè)計的面積和功耗。”
Chole說,這里的挑戰(zhàn)是理解架構(gòu)中內(nèi)存部分的延遲含義。“如果NPU很慢,內(nèi)存會是什么樣子?當(dāng)NPU快速運行時,內(nèi)存會是什么樣子?最后,平衡mac和平衡內(nèi)存之間的問題來自于我們試圖盡可能減少輸入和輸出緩沖。”
外部內(nèi)存帶寬也是其中的關(guān)鍵部分,特別是對于邊緣設(shè)備。“沒有人有足夠的帶寬,”他補(bǔ)充說。“那么,我們?nèi)绾蝿澐止ぷ髫?fù)載或調(diào)度神經(jīng)網(wǎng)絡(luò),以使外部內(nèi)存帶寬持續(xù)下去,并盡可能低?這基本上是我們通過打包或?qū)⑸窠?jīng)網(wǎng)絡(luò)分成更小的部分并嘗試執(zhí)行這兩個部分來做的事情。”
為快速變化的未來而設(shè)計
人工智能的一個大問題是,算法和計算模型的發(fā)展和變化速度比它們從零開始設(shè)計的速度要快。
Rambus Woo說:“如果你說你要制造一個在LSTM(長短期記憶)模型上非常出色的CPU,那么這個周期是幾年。”
“然后你會意識到,在兩年的時間里,LSTM模型來了又走,成為了主流。你想做專門的硬件,但你必須做得更快才能跟上。我們創(chuàng)造硬件的速度是否能和改變算法的速度一樣快?這當(dāng)然很好,但我們不能這么做,即使整個行業(yè)都在被迫這么做。
這也意味著處理人工智能工作負(fù)載的處理器的架構(gòu)將不同于不關(guān)注人工智能工作負(fù)載的處理器。“如果你看看這些用于訓(xùn)練的引擎,它們不會運行Linux或Word,因為它們不是為通用分支、廣泛的指令或支持廣泛的語言而設(shè)計的,”Woo說。“它們基本上是最基本的引擎,在少數(shù)類型的操作中運行得非常快。它們對執(zhí)行計算所需的特定數(shù)據(jù)移動模式進(jìn)行了高度調(diào)優(yōu)。例如,在谷歌TPU中,收縮陣列架構(gòu)自20世紀(jì)80年代以來一直存在。它非常擅長在大型數(shù)據(jù)陣列上完成一種特定類型的均勻分布的工作,所以它非常適合這些密集的神經(jīng)網(wǎng)絡(luò)。但是運行通用代碼并不是這些東西的設(shè)計目的。它們更像是大規(guī)模的協(xié)處理器,可以很好地完成大部分計算,但它們?nèi)匀恍枰c其他可以管理其余計算的東西連接。”
甚至基準(zhǔn)測試也是困難的,因為它并不總是一個蘋果與蘋果的比較,這使得開發(fā)架構(gòu)變得困難。“這是一個很難的話題,因為不同的人使用不同的工具來導(dǎo)航,”Expedera的Chole說。“在設(shè)計工程師的日常工作中,這項任務(wù)看起來像是系統(tǒng)級的基準(zhǔn)測試。SoC的每個部分都要單獨進(jìn)行基準(zhǔn)測試,并試圖根據(jù)這些數(shù)字推斷所需的帶寬是多少。這是性能,這是我將得到的延遲。在此基礎(chǔ)上,你要試著估計整個系統(tǒng)的樣子。但隨著我們在設(shè)計過程中取得更多進(jìn)展,我們正在研究某種基于模擬的方法,而不是完全的模擬,比如模擬中的事務(wù)精確模擬,以獲得不同設(shè)計塊的精確性能和精確帶寬要求。例如,有一個RISC-V和一個NPU,它們必須一起工作,完全共存。它們必須被流水線化嗎?他們的工作量可以流水線化嗎?RISC需要多少個精確的周期?為此,我們必須在RISC-V上編譯程序,在NPU上編譯程序,然后共同模擬。”
人工智能工作負(fù)載對處理器設(shè)計的影響
所有這些變量都會影響設(shè)計的處理器的功率、性能和面積/成本。
根據(jù)Arm的研究員兼高級技術(shù)總監(jiān)Ian Bratt的說法,“PPA對ML工作負(fù)載的權(quán)衡與所有架構(gòu)師在考慮加速時所面臨的權(quán)衡類似——能效與面積。在過去的幾年里,cpu在機(jī)器學(xué)習(xí)工作負(fù)載上有了明顯的提高,增加了特定于機(jī)器學(xué)習(xí)的加速指令。許多機(jī)器學(xué)習(xí)工作負(fù)載將在現(xiàn)代CPU上運行得很好。但是,如果您處于高度受限的能源環(huán)境中,那么可能值得支付額外的硅面積成本來添加專用npu,這比用于ML推理的CPU更節(jié)能。這種效率是以額外的硅面積和犧牲靈活性為代價的;NPU IP通常只能運行神經(jīng)網(wǎng)絡(luò)。此外,像NPU這樣的專用單元也可能比像CPU這樣更靈活的組件具有更高的整體性能(更低的延遲)。”
西門子EDA CATAPULT軟件部門的項目主管Russell Klein解釋說:“設(shè)計中有兩個主要方面將對其工作特性(PPA)產(chǎn)生最重要的影響。一個是計算中使用的數(shù)據(jù)表示。對于大多數(shù)機(jī)器學(xué)習(xí)計算來說,浮點數(shù)的效率非常低。使用更合適的表示可以使設(shè)計更快、更小、更低功耗。”
另一個主要因素是設(shè)計中計算單元的數(shù)量。克萊因說:“從本質(zhì)上講,設(shè)計中將內(nèi)置多少乘法器。”“這帶來了提供性能所需的并行性。一個設(shè)計可以有大量的乘法器,使其體積大、耗電量大、速度快。或者它可以只有幾個,使其體積小,功耗低,但速度要慢得多。除了功率、性能和面積之外,另一個非常重要的度量是每次推理的能量。任何由電池供電或收集能量的東西,都可能比功率更敏感。”
特征和權(quán)重的數(shù)字表示也會對設(shè)計的PPA產(chǎn)生重大影響。
“在數(shù)據(jù)中心,一切都是32位浮點數(shù)。替代表示可以減少操作符的大小以及需要移動和存儲的數(shù)據(jù)量,”他指出。“大多數(shù)人工智能算法不需要浮點數(shù)支持的全部范圍,并且可以很好地處理定點數(shù)。定點乘法器的面積和功率通常是相應(yīng)的浮點乘法器的1 / 2,而且運行速度更快。通常,32位的定點表示也不需要。許多算法可以將特征和權(quán)重的位寬度減小到16位,或者在某些情況下減小到8位甚至更小。乘法器的大小和功率與它所操作的數(shù)據(jù)大小的平方成正比。因此,16位乘法器的面積和功率是32位乘法器的四分之一。8位定點乘法器的面積和功耗大約是32位浮點乘法器的3%。如果算法可以使用8位定點數(shù)而不是32位浮點數(shù),則只需要?的內(nèi)存來存儲數(shù)據(jù),并且只需要?的總線帶寬來移動數(shù)據(jù)。這大大節(jié)省了面積和電力。通過量化感知訓(xùn)練,可以進(jìn)一步減小所需的比特寬度。通常,以量化感知方式訓(xùn)練的網(wǎng)絡(luò)需要的比特寬度大約是訓(xùn)練后量化網(wǎng)絡(luò)的二分之一。這將存儲和通信成本降低了1 / 2,乘法器的面積和功率降低了3 / 4。量化感知訓(xùn)練網(wǎng)絡(luò)通常只需要3-8位的定點表示。有時候,有些層可能只有一個位。一個1位乘法器是一個“與”門。
此外,當(dāng)積極量化網(wǎng)絡(luò)時,溢出會成為一個重要問題。使用32位浮點數(shù),開發(fā)人員不需要擔(dān)心值超出表示的容量。但是對于小的定點數(shù),必須解決這個問題。很可能會經(jīng)常發(fā)生溢出。使用飽和運算符是解決這個問題的一種方法。該操作將存儲表示的最大可能值,而不是溢出。事實證明,這對于機(jī)器學(xué)習(xí)算法非常有效,因為一個大的中間和的確切大小并不重要,只要它變大就足夠了。使用飽和數(shù)學(xué)可以讓開發(fā)人員從他們使用的固定點數(shù)的大小中減去1或2位。一些神經(jīng)網(wǎng)絡(luò)確實需要浮點表示提供的動態(tài)范圍。它們在轉(zhuǎn)換為定點時失去了太多的精度,或者需要超過32位的表示才能提供良好的精度。在這種情況下,可以使用幾種浮點表示。谷歌為其NPU開發(fā)的B-float16(或“腦浮點數(shù)”)是一個16位浮點數(shù),可以很容易地轉(zhuǎn)換為傳統(tǒng)浮點數(shù)。與較小的固定點數(shù)一樣,它會導(dǎo)致更小的乘數(shù)和更少的數(shù)據(jù)存儲和移動。還有IEEE-754 16位浮點數(shù)和NVIDIA的Tensorfloat。”
使用這些方法中的任何一種都將導(dǎo)致更小、更快、更低功耗的設(shè)計。
此外,Woo說:“如果你有一個通用的核心,它確實擅長做很多事情,但它不會做得很好。它只是一般的。在處理工作負(fù)載的任何時間點,都會有通用核心的某些部分正在使用,某些部分沒有使用。擁有這些東西需要面積,需要力量。人們開始意識到摩爾定律仍然會給我們帶來更多的晶體管,所以也許正確的做法是構(gòu)建這些擅長AI流水線上某些任務(wù)的專門核心。有時你會關(guān)閉它們,有時你會打開它們。但這比使用這些通用內(nèi)核要好,因為通用內(nèi)核總是浪費一些面積和功率,而且永遠(yuǎn)無法獲得最佳性能。再加上一個愿意支付的市場——一個非常高利潤、高美元的市場——這是一個很好的組合。”
在硬件工程領(lǐng)域,這也是一種相對容易理解的方法。Ansys的產(chǎn)品營銷總監(jiān)Marc Swinnen說:“你打開第一個版本,一旦安裝了它,你就會發(fā)現(xiàn)哪些是可行的,哪些是不可行的,然后嘗試解決問題。”“你運行的應(yīng)用程序?qū)τ诶斫膺@些權(quán)衡是至關(guān)重要的。如果您可以使您的硬件與您想要運行的應(yīng)用程序相匹配,那么您將獲得比使用現(xiàn)成的東西更有效的設(shè)計。你為自己做的芯片正好適合你想做的事情。”
這就是為什么一些生成式人工智能開發(fā)者正在探索構(gòu)建自己的芯片,這表明在他們看來,即使是目前的半導(dǎo)體也不足以滿足他們未來想要做的事情。這是人工智能如何改變處理器設(shè)計和周圍市場動態(tài)的又一個例子。
人工智能也可能在CHIPLET領(lǐng)域發(fā)揮重要作用,在這個領(lǐng)域,半定制和定制硬件模塊可以被表征并添加到設(shè)計中,而無需從頭開始創(chuàng)建所有東西。像英特爾和AMD這樣的大型芯片制造商已經(jīng)在內(nèi)部這樣做了一段時間,但無晶圓廠公司處于劣勢。
“問題在于,你的CHIPLET必須與現(xiàn)有的解決方案競爭,”弗勞恩霍夫研究所(Fraunhofer IIS)自適應(yīng)系統(tǒng)工程部高效電子部門主管安迪·海尼格(Andy Heinig)說。“如果你現(xiàn)在不專注于表現(xiàn),你就無法競爭。人們專注于讓這個生態(tài)系統(tǒng)啟動并運行。但從我們的角度來看,這是一個先有雞還是先有蛋的問題。你需要性能,特別是因為這些芯片比SoC解決方案更昂貴。但你目前還不能真正專注于性能,因為你必須先讓這個生態(tài)系統(tǒng)啟動并運行起來。
正確的開始
與過去不同的是,許多芯片都是為插槽設(shè)計的,而人工智能則完全取決于工作負(fù)載。
Expedera的Chole說:“當(dāng)這些權(quán)衡發(fā)生時,心中有一個目標(biāo)的概念是非常重要的。”“如果你只是說,‘我想做所有的事情,支持所有的事情’,那么你并沒有真正優(yōu)化任何事情。你基本上只是把一個通用的解決方案放在里面,希望它能滿足你的功率需求。在我們看來,這種做法很少奏效。每個神經(jīng)網(wǎng)絡(luò)和邊緣設(shè)備上的每個部署案例都是獨一無二的。如果把你的芯片安放在耳機(jī)里并運行RNN,而不是在ADAS芯片中運行變換器,這是一個完全不同的用例。npu、內(nèi)存系統(tǒng)、配置、功耗完全不同。因此,了解我們想要嘗試的重要工作負(fù)載集是非常重要的。這些可以是多個網(wǎng)絡(luò)。您必須讓團(tuán)隊在重要的網(wǎng)絡(luò)上達(dá)成一致,并在此基礎(chǔ)上進(jìn)行優(yōu)化。當(dāng)工程團(tuán)隊考慮npu時,這是缺失的。他們只是想要得到世界上最好的東西,但是你不可能在沒有交易的情況下得到最好的東西。我能給你最好的,但你想在哪個方面做到最好呢?”
Cadence的米特拉指出,每個人都以類似的方式思考PPA,但后來人們強(qiáng)調(diào)他們關(guān)心的是功率、性能、面積/成本(PPAC)的哪一部分。“如果你是一個數(shù)據(jù)中心的人,你可能會接受犧牲一點面積,因為你需要的是非常高吞吐量的機(jī)器,因為你需要做數(shù)十億的人工智能推理或人工智能的事情,這一次是在交易市場份額的同時運行巨大的模型,導(dǎo)致大量的數(shù)據(jù)。很久以前,你可以考慮一個桌面運行的東西,用于人工智能模型開發(fā),用于推理,但即使是一些大型語言模型的推理也變得非常棘手。這意味著你需要一個大規(guī)模的數(shù)據(jù)集群,你需要在超大規(guī)模的數(shù)據(jù)中心規(guī)模上進(jìn)行大規(guī)模的數(shù)據(jù)計算。”
還有其他的考慮。Synopsys EDA集團(tuán)產(chǎn)品管理總監(jiān)William Ruby表示:“硬件架構(gòu)決策推動了這一點,但軟件的作用也至關(guān)重要。”他指出,性能與能效是關(guān)鍵。“需要多少內(nèi)存?”如何對內(nèi)存子系統(tǒng)進(jìn)行分區(qū)?軟件代碼可以優(yōu)化能源效率嗎?(是的,它可以。)出于所有PPAC的原因,工藝技術(shù)的選擇也很重要。”
此外,Synopsys人工智能/機(jī)器學(xué)習(xí)處理器產(chǎn)品經(jīng)理Gordon Cooper表示,如果能效不是優(yōu)先考慮的問題,可以使用嵌入式GPU。“它會給你最好的編碼靈活性,但永遠(yuǎn)不會像專用處理器那樣節(jié)能。如果你在設(shè)計一個NPU,那么在面積和功率的平衡方面仍然需要做出權(quán)衡。最小化片上內(nèi)存將大大減少您的總面積預(yù)算,但將增加從外部存儲器傳輸?shù)臄?shù)據(jù),這將大大增加功率。增加片上內(nèi)存將降低外部存儲器讀寫的功耗。”
結(jié)論
所有這些問題越來越成為系統(tǒng)問題,而不僅僅是芯片問題。
“人們認(rèn)為人工智能訓(xùn)練部分是,‘哦,哇,這真的是計算量很大。這是大量的數(shù)據(jù)移動,’”Woo說。“一旦你想要將所有這些加速硬件投入其中,那么系統(tǒng)的其余部分就會開始成為阻礙。出于這個原因,我們越來越多地看到像英偉達(dá)和其他公司的這些平臺,他們有精心設(shè)計的人工智能訓(xùn)練引擎,但他們也可能有英特爾至強(qiáng)芯片。這是因為人工智能引擎不太適合做計算的另一部分。它們不是為運行通用代碼而設(shè)計的,所以這越來越成為一個異構(gòu)系統(tǒng)問題。你必須讓所有的東西協(xié)同工作。”
另一個難題是在軟件方面,可以通過各種方法(如簡化)提高效率。“這是一種認(rèn)識,在人工智能中,有一個特定的算法部分和一個特定的計算稱為減少,這是一種將大量數(shù)字減少到一個數(shù)字或一小組數(shù)字的奇特方式,”Woo解釋說。“它可能是將它們?nèi)考釉谝黄鸹蝾愃频臇|西。傳統(tǒng)的做法是,如果你有所有來自其他處理器的數(shù)據(jù),通過互聯(lián)網(wǎng)絡(luò)發(fā)送到一個處理器,然后讓這個處理器把所有的數(shù)據(jù)都加起來。所有這些數(shù)字都通過這個網(wǎng)絡(luò)通過交換機(jī)到達(dá)處理器。我們?yōu)槭裁床话阉鼈兗拥介_關(guān)里呢,因為它們都是通過開關(guān)的?優(yōu)點是它類似于內(nèi)聯(lián)處理。有趣的是,一旦你在交換機(jī)中添加了所有內(nèi)容,你只需要傳遞一個號碼,這意味著網(wǎng)絡(luò)流量會下降。”
像這樣的架構(gòu)考慮是值得考慮的,因為它們同時解決了幾個問題,Woo說。首先,數(shù)據(jù)在網(wǎng)絡(luò)上的移動速度非常慢,這告訴您要盡可能少地移動數(shù)據(jù)。其次,它消除了將數(shù)據(jù)傳遞給處理器的冗余工作,只是讓處理器完成所有的數(shù)學(xué)運算,然后將結(jié)果傳遞回來。這一切都在網(wǎng)絡(luò)中完成,第三,它是非常并行的,所以你可以讓每個交換機(jī)做部分計算。
同樣,Expedera的Chole表示,人工智能工作負(fù)載現(xiàn)在可以通過單幅圖來定義。“必須清楚這個圖并不是為了一小組指令。我們不是做單次加法。我們一次要做數(shù)百萬個加法,或者一次要做1000萬個矩陣乘法運算。這就改變了你對執(zhí)行的思維模式,改變了你對指令的思維方式,改變了你對指令的壓縮方式,改變了你對指令的預(yù)測和調(diào)度方式。在通用CPU中這樣做是不實際的。這樣做的成本太高了。然而,作為一個神經(jīng)網(wǎng)絡(luò),同時活動的mac數(shù)量是巨大的,你可以生成指令的方式,創(chuàng)建指令,壓縮指令,調(diào)度指令,在利用率和帶寬方面改變了很多。這就是人工智能在處理器架構(gòu)方面的巨大影響。”
審核編輯:劉清
-
處理器
+關(guān)注
關(guān)注
68文章
19159瀏覽量
229113 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4935瀏覽量
102806 -
人工智能
+關(guān)注
關(guān)注
1791文章
46845瀏覽量
237535 -
RISC
+關(guān)注
關(guān)注
6文章
461瀏覽量
83653 -
GPU芯片
+關(guān)注
關(guān)注
1文章
303瀏覽量
5781
原文標(biāo)題:AI正在顛覆處理器設(shè)計
文章出處:【微信號:AI智勝未來,微信公眾號:AI智勝未來】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論