《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 業(yè)界動(dòng)態(tài) > 我們真的需要那么多xPU嗎?

我們真的需要那么多xPU嗎,?

2021-11-12
來(lái)源:半導(dǎo)體行業(yè)觀(guān)察
關(guān)鍵詞: XPU

  近年來(lái),,幾乎每天都會(huì)發(fā)布關(guān)于新處理器架構(gòu)的公告,,并給出一個(gè)三個(gè)字母的首字母縮略詞——TPU、IPU、NPU,。但真正區(qū)分它們的是什么,?真的有那么多獨(dú)特的處理器架構(gòu),還是發(fā)生了其他事情,?

  2018 年,,John L. Hennessy 和 David A. Patterson 發(fā)表了題為“計(jì)算機(jī)架構(gòu)的新黃金時(shí)代”的圖靈講座,。他們關(guān)注的是 CPU 及其發(fā)展方式,,但這只是整個(gè)方程式的一小部分。Arteris IP研究員兼系統(tǒng)架構(gòu)師 Michael Frank 表示:“從 CPU 的角度來(lái)看,,這些xPU中的大多數(shù)都不是真正的處理器,。” “它們更像是一個(gè) GPU,,一個(gè)用于特殊工作負(fù)載的加速器,,而且它們內(nèi)部有相當(dāng)多的多樣性。機(jī)器學(xué)習(xí)是一類(lèi)處理器,,您可以將它們統(tǒng)稱(chēng)為機(jī)器學(xué)習(xí)加速器,,但它們加速的處理部分卻多種多樣?!?/p>

  處理器的本質(zhì)可以歸結(jié)為三件事,。“歸根結(jié)底,,它確實(shí)回到了指令集架構(gòu) (ISA),,”賽靈思芯片營(yíng)銷(xiāo)總監(jiān) Manuel Uhm 說(shuō)?!斑@定義了你想要做什么,。然后你有 I/O 和內(nèi)存,它們支持 ISA 和它試圖完成的任務(wù),。未來(lái)這將是一個(gè)非常有趣的時(shí)刻,,因?yàn)槲覀儗⒖吹奖冗^(guò)去兩三年多的時(shí)間更多的創(chuàng)新和變化?!?/p>

  許多新架構(gòu)都不是單處理器,。“我們看到的是不同類(lèi)型的處理器或可編程引擎的組合,,它們存在于同一個(gè) SoC 或同一個(gè)系統(tǒng)中,,” Cadence技術(shù)和戰(zhàn)略營(yíng)銷(xiāo)集團(tuán)總監(jiān) Pierre-Xavier Thomas 說(shuō)?!皩④浖蝿?wù)分派到不同的硬件或靈活的可編程引擎,。所有處理器可能共享一個(gè)公共 API,但執(zhí)行域?qū)⒂兴煌T谶@里,,您確實(shí)會(huì)看到具有不同類(lèi)型特征的不同類(lèi)型的處理,。”

  現(xiàn)實(shí)情況是,,大部分命名都是營(yíng)銷(xiāo),。

  “關(guān)鍵是人們將這些名稱(chēng)和首字母縮略詞用于兩個(gè)不同的目的,” Imperas Software 的首席執(zhí)行官 Simon Davidmann 說(shuō),?!耙粋€(gè)用于解釋處理器的架構(gòu),例如 SIMD(單指令多數(shù)據(jù)),。另一個(gè)定義了它正在尋址的應(yīng)用程序段,。所以它可以定義處理器架構(gòu),或者像張量處理單元(TPU)這樣的品牌名稱(chēng),。他們正在為他們的異構(gòu)或同構(gòu)架構(gòu)命名,,而不是單個(gè)處理器?!?/p>

  一點(diǎn)歷史

  40 年前,,事情要簡(jiǎn)單得多。當(dāng)時(shí)有中央處理器(CPU),, 也有很多它的變體,,但它們基本上都是馮諾依曼架構(gòu),圖靈完備的處理器,。每個(gè)都有不同的指令集,,使它們?cè)谀承┤蝿?wù)上更高效,并且有很多關(guān)于復(fù)雜指令集 (CISC) 與精簡(jiǎn)指令集 (RISC) 的相對(duì)優(yōu)點(diǎn)的討論,。

  RISC-V的出現(xiàn)給ISA帶來(lái)了很多關(guān)注,。“人們想要了解 ISA,,因?yàn)檎?ISA 定義了處理器針對(duì)已定義任務(wù)的優(yōu)化程度,,”賽靈思的 Uhm 說(shuō)?!八麄兛梢圆榭?ISA 并開(kāi)始計(jì)算周期,。如果一個(gè) ISA 具有本機(jī)指令并以 1 GHz 運(yùn)行,我可以將其與另一個(gè)處理器 ISA 進(jìn)行比較,,后者相同的功能可能需要兩條指令,,但處理器以 1.5 GHz 運(yùn)行。哪一個(gè)讓我走得更遠(yuǎn),?他們?yōu)橹匾墓δ苓M(jìn)行數(shù)學(xué)計(jì)算,?!?/p>

  CPU 有多種封裝方式,有時(shí)將 IO 或內(nèi)存放在同一個(gè)封裝中,,它們被稱(chēng)為微控制器單元 (MCU),。

  當(dāng)調(diào)制解調(diào)器變得流行時(shí),數(shù)字信號(hào)處理器(DSP) 出現(xiàn)了,,它們的不同之處在于它們使用了哈佛架構(gòu),。這將指令總線(xiàn)與數(shù)據(jù)總線(xiàn)分開(kāi)。其中一些還實(shí)施了 SIMD 架構(gòu),,使數(shù)據(jù)處理更加高效。

  指令和數(shù)據(jù)的分離是為了提高吞吐率,,盡管它限制了一些可以完成的邊緣編程,,例如自寫(xiě)程序,?!巴ǔ#吔鐥l件不是計(jì)算,,”Uhm 說(shuō),。“它越來(lái)越多地是 I/O 或內(nèi)存,。該行業(yè)從提升計(jì)算能力轉(zhuǎn)向確保有足夠的數(shù)據(jù)來(lái)保持計(jì)算能力并保持性能,。”

  當(dāng)單個(gè)處理器不再變得更快時(shí),,他們把多個(gè)處理器連接在一起,,這些處理器通常共享內(nèi)存并保持每個(gè)處理器和整個(gè)處理器集群保持圖靈完備的概念。程序的任何部分在哪個(gè)核心上執(zhí)行都無(wú)關(guān)緊要,,因?yàn)榻Y(jié)果是一樣的,。

  下一個(gè)重大發(fā)展是圖形處理單元(GPU),它的出現(xiàn)打破了常規(guī),,因?yàn)槊總€(gè)處理元素或pipeline都有自己的內(nèi)存,,無(wú)法在處理器外部尋址。因?yàn)閮?nèi)存是有限的,,這意味著它不能執(zhí)行任何任意的處理任務(wù),,只能執(zhí)行那些可以放入提供的內(nèi)存空間的任務(wù)。

  “對(duì)于某些類(lèi)型的功能,,GPU 是非常強(qiáng)大的處理器,,但它們的pipeline非常長(zhǎng),”Uhm 指出,?!斑@些pipeline讓 GPU 單元不斷處理數(shù)據(jù),,但在某些時(shí)候,如果您必須刷新pipeline,,那將是一個(gè)巨大的打擊,。系統(tǒng)中內(nèi)置了大量的延遲和不確定性?!?/p>

  雖然已經(jīng)定義了許多其他加速器,,但 GPU——以及后來(lái)的通用 GPU (GPGPU)——定義了一種編程范式和軟件堆棧,使它們比過(guò)去的加速器更容易上手,?!岸嗄陙?lái),某些工作是專(zhuān)門(mén)化的,,”Imperas 的Davidmann說(shuō),。“有用于順序程序的 CPU,。有圖形處理器,,它專(zhuān)注于為屏幕處理數(shù)據(jù),并將我們帶入了一個(gè)高度并行的世界,。使用許多小的處理元素來(lái)執(zhí)行任務(wù)?,F(xiàn)在有機(jī)器學(xué)習(xí)任務(wù)?!?/p>

  還有什么其他的構(gòu)造規(guī)則可以解釋所有的新架構(gòu),?過(guò)去,處理器陣列通常通過(guò)內(nèi)存或固定網(wǎng)絡(luò)拓?fù)洌ɡ缇W(wǎng)狀或環(huán)形)連接,。最近出現(xiàn)的是片上網(wǎng)絡(luò) (NoC) 的結(jié)合,,使分布式異構(gòu)處理器能夠以更靈活的方式進(jìn)行通信。將來(lái),,它們還可以在不使用內(nèi)存的情況下實(shí)現(xiàn)通信,。

  “此時(shí),NoC 只攜帶數(shù)據(jù),,”Arteris 的 Frank 說(shuō),。“未來(lái),,NoC 可以擴(kuò)展到加速器之間的通信超越數(shù)據(jù)的其他領(lǐng)域,。它可以發(fā)送命令、發(fā)送通知等,。加速器陣列的通信需求可能與 CPU 或標(biāo)準(zhǔn) SoC 等的通信需求不同,。但是片上網(wǎng)絡(luò)并不會(huì)將您限制在一個(gè)子集上。您可以通過(guò)支持加速器的特殊通信需求來(lái)優(yōu)化和提高性能,?!?/p>

  實(shí)現(xiàn)架構(gòu)

  處理器區(qū)分的一種方式是針對(duì)特定操作環(huán)境進(jìn)行優(yōu)化,。例如,軟件可能在云中運(yùn)行,,但您也可以在微型物聯(lián)網(wǎng)設(shè)備上執(zhí)行相同的軟件,。實(shí)現(xiàn)架構(gòu)將大不相同,并在性能,、功耗,、成本或在極端條件下運(yùn)行的能力方面實(shí)現(xiàn)不同的運(yùn)行點(diǎn)。

  “一些應(yīng)用程序是針對(duì)云計(jì)算的,,現(xiàn)在我們正在讓它們更接近邊緣,,”Cadence 的 Thomas 說(shuō)?!斑@可能是因?yàn)檠舆t要求,,或者能量或功率耗散,這將需要不同類(lèi)型的架構(gòu),。您可能希望擁有完全相同的軟件堆棧,,以便能夠在兩個(gè)位置運(yùn)行。云需要提供靈活性,,因?yàn)樗鼘⒔邮詹煌?lèi)型的應(yīng)用程序,,并且必須能夠聚合大量用戶(hù)。這要求服務(wù)器上的硬件具有特定于應(yīng)用程序的能力,,但一種尺寸并不適合所有人?!?/p>

  ML增加了自己的要求,。“在使用神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)構(gòu)建智能系統(tǒng)時(shí),,您需要使用軟件框架和通用軟件堆棧對(duì)新網(wǎng)絡(luò)進(jìn)行編程并將其映射到硬件,,”Thomas 補(bǔ)充道?!叭缓?,您可以從PPA 的角度使軟件應(yīng)用程序適應(yīng)正確的硬件。這推動(dòng)了對(duì)不同類(lèi)型的處理和處理器的需求,,以便能夠在硬件層滿(mǎn)足這些需求,。”

  這些需求由應(yīng)用定義,?!耙患夜疽呀?jīng)創(chuàng)建了一個(gè)用于圖形操作的處理器,” Frank說(shuō),?!八麄儍?yōu)化和加速如何跟蹤圖形,,并執(zhí)行諸如重新排序圖形之類(lèi)的操作。還有其他一些主要加速機(jī)器學(xué)習(xí)的蠻力部分(brute force ),,即矩陣乘法,。內(nèi)存訪(fǎng)問(wèn)對(duì)于每個(gè)架構(gòu)來(lái)說(shuō)都是一個(gè)特殊的問(wèn)題,因?yàn)楫?dāng)你構(gòu)建加速器時(shí),,最重要的目標(biāo)是讓它保持忙碌,。你必須將盡可能多的數(shù)據(jù)傳送到 ALU,因?yàn)樗梢韵M(fèi)和生產(chǎn),?!?/p>

  許多這些應(yīng)用有許多共同點(diǎn)?!八鼈兌加幸恍┍镜貎?nèi)存,,它們有一個(gè)片上網(wǎng)絡(luò)來(lái)進(jìn)行通信,每個(gè)執(zhí)行軟件算法的處理器都在處理一小塊數(shù)據(jù),,”Davidmann說(shuō),。“這些工作由運(yùn)行在更傳統(tǒng) CPU 上的操作系統(tǒng)調(diào)度,?!?/p>

  硬件設(shè)計(jì)人員的棘手之處在于預(yù)測(cè)它將被要求執(zhí)行哪些任務(wù)?!氨M管您將在某些層中進(jìn)行類(lèi)似類(lèi)型的操作,,但人們正在關(guān)注層中的差異化,”Thomas 說(shuō),?!盀榱四軌蛱幚砩窠?jīng)網(wǎng)絡(luò),需要幾種類(lèi)型的處理能力,。這意味著您需要能夠?qū)ι窠?jīng)網(wǎng)絡(luò)的一部分進(jìn)行某種方式的處理,,然后可能需要另一種類(lèi)型的操作來(lái)處理另一層。數(shù)據(jù)移動(dòng)和數(shù)據(jù)量也在逐層變化,?!?/p>

  這種差異化可以超越數(shù)據(jù)移動(dòng)?!皩?duì)于基因組測(cè)序,,您需要進(jìn)行某些處理,”Frank說(shuō),?!暗悄悴荒苡脝我活?lèi)型的加速器來(lái)加速所有東西。您必須為不同的pipeline構(gòu)建一整套不同的加速器,。CPU 成為管理執(zhí)行流程的守護(hù)者,。它進(jìn)行設(shè)置,,執(zhí)行 DMA,提供兩者之間的決策過(guò)程,。理解和分析算法并定義您希望如何優(yōu)化它們的處理是一項(xiàng)完整的架構(gòu)任務(wù),。”

  該過(guò)程的一部分需要分區(qū),?!皼](méi)有一種處理器類(lèi)型可以針對(duì)每個(gè)處理器任務(wù)進(jìn)行優(yōu)化—— FPGA不行,CPU不行,,GPU不行,,DSP也必行,”Uhm 說(shuō),?!拔覀儎?chuàng)建了一系列包含所有這些的設(shè)備,但客戶(hù)方面的困難部分是他們必須提供智能,,以確定整個(gè)系統(tǒng)的哪些部分將針對(duì)處理器或可編程邏輯,,或在 AI 引擎。每個(gè)人都想要那個(gè)自動(dòng)神奇的工具,,一個(gè)可以立即決定把它放在 CPU 上,,把它放在 FPGA 上,把它放在 GPU 上的工具,。那個(gè)工具今天不存在,。”

  盡管如此,,CPU 總會(huì)發(fā)揮作用,。“需要 CPU 來(lái)執(zhí)行程序的不規(guī)則部分,,”Frank說(shuō)?!癈PU 的通用可編程性有其優(yōu)勢(shì),。如果您有專(zhuān)門(mén)的數(shù)據(jù)結(jié)構(gòu)或數(shù)學(xué)運(yùn)算,它就不能很好地工作,。CPU 是一個(gè)通用處理器,,它沒(méi)有針對(duì)任何東西進(jìn)行優(yōu)化。它什么都不擅長(zhǎng),?!?/p>

  改變“抽象”

  過(guò)去,硬件/軟件邊界由 ISA 定義,,并且該內(nèi)存是連續(xù)可尋址的,。當(dāng)存在多個(gè)處理器時(shí),,它們通常是內(nèi)存一致的。

  “一致性是一種契約,,”Frank說(shuō),。“這種一致性非常重要,,不會(huì)消失,。但是您可以想象,在數(shù)據(jù)流引擎中,,一致性并不那么重要,,因?yàn)槟鷮⒃谶吘壱苿?dòng)的數(shù)據(jù)直接從一個(gè)加速器傳送到另一個(gè)加速器。如果您對(duì)數(shù)據(jù)集進(jìn)行分區(qū),,則一致性會(huì)成為障礙,,因?yàn)樗鼤?huì)花費(fèi)您額外的周期。你必須查資料,。您必須提供更新信息,。”

  這需要不同的內(nèi)存架構(gòu),?!澳惚仨毧紤]內(nèi)存結(jié)構(gòu),因?yàn)槟阒挥羞@么多緊密耦合的內(nèi)存,,”Uhm 說(shuō),。“你可以訪(fǎng)問(wèn)相鄰的內(nèi)存,,但你很快就會(huì)耗盡相鄰的內(nèi)存,,無(wú)法及時(shí)訪(fǎng)問(wèn)。這必須在設(shè)計(jì)中加以理解,。隨著工具的成熟,,工具將開(kāi)始了解更多內(nèi)容。今天,,它是由人類(lèi)智能完成的,,能夠理解架構(gòu)并應(yīng)用它?!?/p>

  還需要更高級(jí)別的抽象( abstraction),。“有些框架可以將已知網(wǎng)絡(luò)映射或編譯到目標(biāo)硬件上,,”Thomas 說(shuō),。“您有一組低級(jí)內(nèi)核或 API,它們將在軟件堆棧中使用,,然后最終由神經(jīng)網(wǎng)絡(luò)的映射器使用,。在下面,您可能擁有不同類(lèi)型的硬件,,具體取決于您想要實(shí)現(xiàn)的目標(biāo),,取決于您的產(chǎn)品詳細(xì)信息。它實(shí)現(xiàn)了相同的功能,,但不是使用相同的硬件,,也不是相同的 PPA 權(quán)衡?!?/p>

  這給那些編譯器帶來(lái)了很大的壓力,。“主要的問(wèn)題是你未來(lái)如何對(duì)加速器進(jìn)行編程,?” Frank問(wèn)道,。“您是否實(shí)現(xiàn)了像第一代 GPU 那樣串在一起的硬連線(xiàn)引擎,?或者您是否構(gòu)建了具有自己指令集的小型可編程引擎,?現(xiàn)在你必須單獨(dú)對(duì)這些東西進(jìn)行編程,并將這些引擎中的每一個(gè)與數(shù)據(jù)流連接起來(lái),,執(zhí)行任務(wù),。一個(gè)處理器擁有整個(gè)指令集的某個(gè)子集,另一個(gè)處理器擁有一個(gè)不同的子集,,它們都將共享控制流的一些重疊部分,。您可能有一些加速能力略有不同的產(chǎn)品。編譯器或了解它的庫(kù)會(huì)相應(yīng)地進(jìn)行映射,?!?/p>

  總結(jié)

  處理器的架構(gòu)沒(méi)有改變。他們?nèi)匀蛔袷剡^(guò)去 40 年來(lái)一直存在的相同選擇,。正在改變的是芯片的構(gòu)造方式,。它們現(xiàn)在包含大量異構(gòu)處理器,這些處理器具有針對(duì)應(yīng)用任務(wù)子集優(yōu)化的內(nèi)存和通信,。每個(gè)芯片都對(duì)處理器功能及其優(yōu)化目的,、所需的數(shù)據(jù)吞吐量以及通常會(huì)看到的數(shù)據(jù)流做出了不同的選擇。

  每個(gè)硬件供應(yīng)商都希望將自己的芯片與其他芯片區(qū)分開(kāi)來(lái),,但是通過(guò)品牌推廣比談?wù)搩?nèi)部技術(shù)細(xì)節(jié)要容易得多。所以他們給它起了個(gè)名字,,稱(chēng)它為第一個(gè),、最快的、最大的,并將它與特定類(lèi)型的應(yīng)用程序問(wèn)題聯(lián)系起來(lái),。這三個(gè)字母的首字母縮寫(xiě)詞已成為應(yīng)用任務(wù)名稱(chēng),,但它們并未定義硬件架構(gòu)。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected],。