• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      實(shí)力搭上阿里、百度 走近這家AI芯片獨(dú)角獸的硬核技術(shù)

      2020-09-26 11:19:58李實(shí)
      微型計(jì)算機(jī) 2020年15期
      關(guān)鍵詞:線程內(nèi)存架構(gòu)

      李實(shí)

      隨著人工智能產(chǎn)業(yè)的興起和市場(chǎng)空間的擴(kuò)大,越來越多的公司開始進(jìn)入人工智能產(chǎn)業(yè),同時(shí)也順帶推出了不少新技術(shù)。在人工智能計(jì)算芯片方面,業(yè)內(nèi)除了有英偉達(dá)、谷歌、英特爾這樣的巨頭在征戰(zhàn)外,一些創(chuàng)業(yè)公司也憑借天才的設(shè)計(jì)和獨(dú)創(chuàng)的技術(shù)希望躋身其中并分得一杯羹。來自英國的Graphcore就正是一家這樣的創(chuàng)業(yè)公司,他們推出的IPU計(jì)算芯片尚未誕生,就引得業(yè)內(nèi)巨頭紛紛投資,近期更是推出了堪稱史上算力規(guī)模數(shù)一數(shù)二的全新AI計(jì)算芯片,并且以獨(dú)特的架構(gòu)設(shè)計(jì)和技術(shù)特點(diǎn)得到了業(yè)界多家企業(yè)的青睞。從這一點(diǎn)來看,Graphcore的新技術(shù)和新產(chǎn)品的確值得我們進(jìn)一步了解。

      2020年6月,備受大家關(guān)注的全球超級(jí)計(jì)算機(jī)排行榜TOP500更新了最新一期的榜單。在新一期的榜單中,出現(xiàn)了一家名為Graphcore的公司。作為一家來自于英國的創(chuàng)業(yè)公司,Graphcore從2015年成立到現(xiàn)在也僅僅只有5年時(shí)間。但是就在這短短的5年中,Graphcore憑借其獨(dú)特的技術(shù),獲得了來自微軟、百度、阿里、寶馬、博世、戴爾、三星等各行業(yè)巨頭的青睞,其累計(jì)融資已經(jīng)超過了4.5億美元,公司估值也已經(jīng)達(dá)到了19.5億美元。Graphcore之所以能夠獲得如此多的投資,并且在這么短的時(shí)間內(nèi)就推出了全新的芯片,還是由于它掌握了先進(jìn)的設(shè)計(jì)思想并推出了令人滿意的產(chǎn)品。

      目前Graphcore一共推出了2款產(chǎn)品。第一款產(chǎn)品全稱是GraphcoreColossusMK1GC2IPU(下簡(jiǎn)稱為“GC2”),它采用了16nm工藝,集成了236億晶體管。目前沒有查到GC2的芯片面積,但是估計(jì)在600平方毫米之上。令人震驚的是Graphcore最新推出的一款名為GraphcoreColossusMK2GC200IPU(下簡(jiǎn)稱“GC200”)的芯片,芯片面積高達(dá)823平方毫米,采用臺(tái)積電7nm工藝制造。相比之下,之前英偉達(dá)推出的A100GPU芯片面積是826平方毫米,也是采用了臺(tái)積電7nm工藝制造。GC200的芯片面積雖然比A100小了3平方毫米,但是GC200集成了高達(dá)594億晶體管,相比英偉達(dá)A100的540億晶體管,數(shù)量高出了10%。毫不夸張地說,在芯片尺寸方面,GC200雖然以微小的差距惜敗,但是傳統(tǒng)單芯片封裝卻包含了目前全球最多的晶體管數(shù)量、再加上Graphcore僅僅是一家創(chuàng)業(yè)公司,其第二款產(chǎn)品的規(guī)模就如此龐大,還是相當(dāng)令人驚訝的。

      如果進(jìn)一步從它具體的計(jì)算能力來看的話,Graphcore宣稱IPU對(duì)比傳統(tǒng)產(chǎn)品,能夠?qū)⒆匀徽Z言處理的速度進(jìn)一步提升20%~50%,并為圖像分類帶來更低的延遲以及相當(dāng)于傳統(tǒng)架構(gòu)差不多6倍的吞吐率,還能夠讓金融模型的訓(xùn)練速度提升26倍以上。那么,IPU產(chǎn)品是如何帶來如此巨大的性能提升的呢?

      針對(duì)AI計(jì)算的并行架構(gòu):IPU架構(gòu)簡(jiǎn)述

      作為一個(gè)全新的產(chǎn)品,Graphcore在推出IPU之前進(jìn)行了大量的深入研究,包括研究目前和未來可能出現(xiàn)的人工智能架構(gòu)以及計(jì)算模型,試圖找到其中的關(guān)鍵節(jié)點(diǎn)并加以優(yōu)化,并最終實(shí)現(xiàn)在具體的產(chǎn)品之上。在IPU推出之后,Graphcore又進(jìn)行了大量有關(guān)產(chǎn)品實(shí)現(xiàn)、系統(tǒng)架構(gòu)、軟件環(huán)境等方面的工作,并撰寫了大量的技術(shù)文檔供用戶參考。本文這一部分的內(nèi)容來自于Graphcore發(fā)布的《Citadel Securities Technical Report-Dissecting the Graphcore IPU Architecture via Micro benchmarking Dec 2019》白皮書。在這本白皮書中,Graphcore詳細(xì)介紹了IPU是什么,和CPU以及GPU的差別在哪里,IPU如何實(shí)現(xiàn)更高的效率以及其獨(dú)特的架構(gòu)等。由于其內(nèi)容已經(jīng)相當(dāng)完善,因此本文編譯了其中比較重要和關(guān)鍵的部分以饗讀者。

      Graphcore推出的產(chǎn)品被稱為IPU,全稱是IntelligenceProcessingUnit,智能處理單元。在Graphcore的描述中,IPU是一種針對(duì)人工智能和機(jī)器學(xué)習(xí)的全新大規(guī)模并行計(jì)算架構(gòu)。任何IPU計(jì)算設(shè)備的核心都是IPU處理器本身,這意味著IPU的設(shè)計(jì)目標(biāo)是在相對(duì)大量的并行線程中,高效地執(zhí)行細(xì)粒度操作,并且這種操作不同于其他大規(guī)模并行架構(gòu)(例如GPU)。在這一點(diǎn)上,IPU提供了真正的MIMD(多指令、多數(shù)據(jù))并行性,尤其是獨(dú)創(chuàng)地將分布式的本地內(nèi)存作為設(shè)備上唯一的內(nèi)存形式,從而使得設(shè)備的運(yùn)行不再需要外置內(nèi)存的參與。在數(shù)據(jù)格式方面,IPU能很好地適應(yīng)各種不規(guī)則數(shù)據(jù),在不同的細(xì)粒度、不規(guī)則計(jì)算中呈現(xiàn)出色的效能。

      從宏觀上來看,一個(gè)IPU包含了數(shù)千個(gè)IPU計(jì)算塊,一個(gè)IPU計(jì)算塊包含了計(jì)算核和本地內(nèi)存。除了寄存器文件外,IPU本身不提供額外的內(nèi)存接口,只擁有分布式的本地內(nèi)存。內(nèi)部通訊方面,IPU中包含了專用的內(nèi)部通訊交換器,允許不同的IPU計(jì)算塊之間實(shí)現(xiàn)交互的高帶寬、低延遲通訊。對(duì)外通訊方面,IPU采用了Graphcore的專用互聯(lián),能夠?qū)崿F(xiàn)和不同IPU之間的高效率通信。另外,每個(gè)IPU還包含了和CPU通訊的2個(gè)PCIe4.0總線。

      本地SRAM搭配MIMD:IPU如何突出重圍

      IPU強(qiáng)調(diào)細(xì)粒度并行性,這意味著IPU可以高效地運(yùn)行諸如不規(guī)則數(shù)據(jù)、稀疏數(shù)據(jù)或者擁有控制流的應(yīng)用程序。和SIMD/SIMT架構(gòu)不同的是,IPU不需要使用大量連續(xù)向量數(shù)據(jù)的線程來實(shí)現(xiàn)高效率,可以以高度并行的MIMD方式在較小的數(shù)據(jù)塊上運(yùn)行單獨(dú)的處理線程。每個(gè)線程可以擁有完全不同的代碼和執(zhí)行流,且不會(huì)導(dǎo)致性能損失。與之相反的是,目前的GPU需要大量的連續(xù)矢量計(jì)算才能實(shí)現(xiàn)高效率,這對(duì)數(shù)據(jù)源和整個(gè)計(jì)算過程的控制又提出了較高要求。為了實(shí)現(xiàn)這樣的計(jì)算優(yōu)勢(shì),IPU在架構(gòu)上與通常用于執(zhí)行機(jī)器學(xué)習(xí)或者人工智能工作負(fù)載的平臺(tái)(比如CPU或者GPU)有很大區(qū)別。

      CPU運(yùn)行模式:較少的復(fù)雜內(nèi)核,偏向于控制和單線程

      先來看CPU部分。CPU傾向于提供相對(duì)較小數(shù)量的復(fù)雜內(nèi)核。簡(jiǎn)單來說就是用更少的核心搭配更復(fù)雜的內(nèi)核,比如在目前桌面處理器上,常見的產(chǎn)品最多也就16個(gè)內(nèi)核,即便是頂級(jí)處理器,其內(nèi)核數(shù)量也不會(huì)超過64個(gè)。但是每一個(gè)內(nèi)核都擁有多級(jí)復(fù)雜的流水線和厚重的前端、后端單元。

      在架構(gòu)方面,CPU核心具有復(fù)雜的延遲降低技術(shù),如分支預(yù)測(cè)和亂序執(zhí)行。這些優(yōu)化使得CPU在單線程性能和控制代碼方面優(yōu)于其他處理單元,但可能會(huì)以能源效率和芯片本身的累計(jì)算術(shù)吞吐量為代價(jià)。由于CPU本身架構(gòu)的原因,即使如今大多數(shù)CPU提供了向量化(比如SIMD、單指令、多數(shù)據(jù),典型的就是英特爾AVX-512這樣的指令集),但是在大型、常規(guī)、基于數(shù)組的工作負(fù)載上,它們?cè)诖笠?guī)模并行浮點(diǎn)運(yùn)算或能源效率(每瓦特性能)這些方面也無法與GPU相提并論。

      不僅如此,為了隱藏內(nèi)存延遲,CPU通常使用包含多個(gè)緩存級(jí)別的深層內(nèi)存層次結(jié)構(gòu)以及復(fù)雜的預(yù)取預(yù)測(cè)器,更增加了整個(gè)系統(tǒng)的執(zhí)行代價(jià),降低了計(jì)算效率,尤其是用于真正計(jì)算和性能輸出的晶體管占比的下降。

      GPU運(yùn)行模式:大量并行計(jì)算核心的SIMT架構(gòu)

      接下來我們?cè)倏纯碐PU。GPU的特點(diǎn)是在每個(gè)芯片上擁有更小、更多的計(jì)算內(nèi)核。GPU核心在架構(gòu)方面相比CPU更簡(jiǎn)單,通常不提供分支預(yù)測(cè)、無序執(zhí)行或硬件預(yù)取等功能。但是GPU核心的數(shù)量極其龐大,這就要求其在計(jì)算并行度上有極為出色的表現(xiàn)。

      為了達(dá)到這個(gè)條件,GPU將它們的核心排列成多組同步運(yùn)行的集群。這樣可以使得集群中的所有核心在任何時(shí)間點(diǎn)都執(zhí)行相同的指令。線程被有規(guī)律地集合成為波次(warp)、波次再被規(guī)律地排列成為計(jì)算簇(clusters)。每個(gè)波次中單獨(dú)的一個(gè)線程都會(huì)相對(duì)獨(dú)立地執(zhí)行相同的操作。這種執(zhí)行模型稱為SIMT,也就是單指令多線程。

      在單指令多線程方面,人們還為GPU配備了大量的數(shù)據(jù)緩存和多級(jí)存儲(chǔ)結(jié)構(gòu),但它們隱藏內(nèi)存延遲的基本方法仍然是不斷地切換線程以及盡可能地將它們?nèi)麧M整個(gè)計(jì)算核心。在這種方法中,當(dāng)一堆線程等待內(nèi)存(顯存)中的操作數(shù)時(shí),硬件將直接掛起這個(gè)等待中的線程,并將其切換到另一個(gè)已經(jīng)從內(nèi)存中接收到操作數(shù)并準(zhǔn)備繼續(xù)執(zhí)行的線程。GPU編程模型也明確鼓勵(lì)開發(fā)人員在線程并行性上進(jìn)行更多優(yōu)化,以便始終有一部分線程準(zhǔn)備執(zhí)行,而其余線程等待操作數(shù)。

      除了執(zhí)行方面的內(nèi)容以外,GPU對(duì)于主內(nèi)存的訪問也存在一定的要求。目前GPU的編程模型要求,只有當(dāng)負(fù)載和存儲(chǔ)操作在每個(gè)波次內(nèi)涉及相鄰的內(nèi)存區(qū)域時(shí),才允許GPU以峰值吞吐量訪問主內(nèi)存。并且這種內(nèi)存訪問在一些操作中,要求必須遵循一定規(guī)則的狀態(tài)出現(xiàn),那些無法遵循一定規(guī)則的內(nèi)存訪問只能達(dá)到理論峰值內(nèi)存帶寬的一小部分。為了獲得最佳性能,開發(fā)人員必須實(shí)例化共享同一程序的大線程塊,嘗試以協(xié)調(diào)至相應(yīng)規(guī)則的方式使用輸入(輸出)數(shù)據(jù),并有節(jié)制地使用控制流。另外值得一提的是,SIMT對(duì)線程的要求非常嚴(yán)格,當(dāng)線程在它的控制流中分離時(shí),GPU將不得不停下來等待后續(xù)數(shù)據(jù)載入,這會(huì)使得它的性能受到一些影響。

      從上面的這些描述中可以看出,GPU擅長于那種規(guī)則的、密集的、并行化的、數(shù)據(jù)流為主的工作負(fù)載,這些工作負(fù)載配合相關(guān)的規(guī)則和一致的控制流將使得GPU運(yùn)行效率大大提升。在這類工作負(fù)載上,GPU往往比CPU更節(jié)能且更高效,這不是由緩存或面向延遲的特性(比如分支預(yù)測(cè))所決定的,而是由于它用于計(jì)算的晶體管比例更高。

      IPU運(yùn)行模式:本地SRAM搭配大量計(jì)算核心

      再來看看IPU。IPU在很多方面和GPU有點(diǎn)類似。比如IPU同樣具備巨大的核心數(shù)量,但這些核心將擁有更為復(fù)雜的計(jì)算能力,能夠執(zhí)行完全不同的程序。IPU減少內(nèi)存延遲的方法是革命性的—它完全消除了共享內(nèi)存。IPU只提供本地的、能緊密耦合到每個(gè)核心的分布式小內(nèi)存。在這一點(diǎn)上,IPU的內(nèi)存更像是一個(gè)個(gè)計(jì)算核心自己的“小便簽”,而不是大家一起使用的“大賬本”。另外,IPU采用的分布式小內(nèi)存使用了SRAM,能夠比內(nèi)存或者顯存使用的DRAM提供更快的速度和更高的帶寬,當(dāng)然還有更低的延遲(低至6個(gè)時(shí)鐘周期,DRAM一般在20~30個(gè)時(shí)鐘周期甚至更高)。SRAM的性能與L2CPU緩存相當(dāng),也要顯著優(yōu)于GPU的共享內(nèi)存(或NVIDIA稱為的L1緩存)。在采用了獨(dú)特的分布式內(nèi)存模

      式后,IPU所擁有的顯著優(yōu)勢(shì)是當(dāng)控制流出現(xiàn)發(fā)散的情況時(shí),或者當(dāng)它們的內(nèi)存訪問地址發(fā)散時(shí),IPU核心不會(huì)遭受嚴(yán)重的性能損失,而這往往是GPU面臨的比較困難的問題。實(shí)際上,IPU核心在受到不相關(guān)指令的不連貫內(nèi)存訪問時(shí),幾乎沒有什么性能損失。這是因?yàn)镮PU核心只從各自的本地內(nèi)存訪問數(shù)據(jù),這與訪問模式無關(guān)。這使得IPU在執(zhí)行那些采用不規(guī)則或者隨機(jī)數(shù)據(jù)訪問模式的應(yīng)用程序,或者類似控制流控制的應(yīng)用程序時(shí)比GPU更高效。當(dāng)然,這里的前提是計(jì)算任務(wù)本身需要處理至適合IPU的存儲(chǔ)模式。

      在計(jì)算效能方面,和CPU、GPU類似的是,IPU也是通過保證核心始終處于工作負(fù)載中來實(shí)現(xiàn)更高的效率。具體來說,每個(gè)IPU塊都提供了對(duì)6個(gè)線程的硬件支持,其功能類似于CPU上常見的SMT技術(shù)(同步多線程,或英特爾的超線程)。因此,每個(gè)IPU塊都可以駐留6個(gè)執(zhí)行上下文,這在一定程度上隱藏了指令延遲(依賴、內(nèi)存訪問和分支延遲),減少了相應(yīng)的管道停頓,并增加了總吞吐量。此外,每個(gè)IPU塊還可以根據(jù)靜態(tài)的循環(huán)調(diào)度在線程之間不斷跳轉(zhuǎn)任務(wù)。同樣在軟件層面,為了獲得最大的占用率,依舊鼓勵(lì)軟件設(shè)計(jì)人員實(shí)例化更多線程以方便IPU調(diào)用。

      另外一個(gè)值得提及的內(nèi)容是IPU的算術(shù)吞吐量。IPU的計(jì)算實(shí)現(xiàn)方式是采用名為累積矩陣乘積(AMP)單元的專用單元,這種專用單元被設(shè)計(jì)在每個(gè)IPU計(jì)算塊中,專門用于加速矩陣乘法和卷積運(yùn)算。一個(gè)AMP單元每個(gè)時(shí)鐘周期可完成64個(gè)混合精度或16個(gè)單精度浮點(diǎn)運(yùn)算。上一代IPUGC2的單精度計(jì)算能力高達(dá)31.1TFlops/s,混合精度計(jì)算能力高達(dá)124.5TFlops/s。最新一代的IPUGC200暫時(shí)沒有看到相關(guān)的數(shù)據(jù),但是官方宣稱其計(jì)算能力相比第一代提高了8倍之多。這也遠(yuǎn)遠(yuǎn)超過了目前GPU所能達(dá)到的計(jì)算速度。

      當(dāng)然,它所具備的實(shí)際算術(shù)性能極大地依賴于特定的數(shù)值工作負(fù)載,因此可能與理論數(shù)據(jù)有很大的不同。根據(jù)Graphcore的測(cè)試,第一代GC2芯片的單精度性能明顯優(yōu)于英偉達(dá)的V100GPU(每顆芯片的比較)。在復(fù)雜一些的計(jì)算中,由于受到的限制因素比較多,暫時(shí)很難得到明確的結(jié)果。

      在內(nèi)存方面,IPU采用的是分布式SRAM本地內(nèi)存方案。在GC2中(GC200的數(shù)據(jù)暫時(shí)沒有更新),IPU的每個(gè)塊包含256KBSRAM,在整個(gè)處理器上總計(jì)是304MB。每個(gè)塊都有一個(gè)獨(dú)立的、連續(xù)的21位地址空間,由6個(gè)硬件執(zhí)行上下文共享,其中本地執(zhí)行的代碼和本地處理的數(shù)據(jù)必須相互匹配。在GC2芯片中,本地內(nèi)存的名義帶寬達(dá)到45TB/s,而延遲為6個(gè)時(shí)鐘周期。雖然IPU的容量低于典型的GPUDRAM內(nèi)存(如32GB),但I(xiàn)PU內(nèi)存在速度上彌補(bǔ)了它們?cè)谌萘可系牟蛔?。比如與英偉達(dá)T4GPU上的L1緩存和共享內(nèi)存相比,IPUSRAM的延遲更短,與IntelSkylake、KabyLake、CoffeeLakeCPU上L2緩存的延遲相當(dāng),容量基本相當(dāng)(值得注意的是,GC200的每個(gè)計(jì)算核心的SRAM本地內(nèi)存容量要大得多)。從實(shí)際情況來看,IPU內(nèi)存的總大小可以消除在GPU和CPU上類似緩存層次結(jié)構(gòu)的相應(yīng)需求,從而極大地釋放了傳統(tǒng)多級(jí)內(nèi)存模式中占用的資源,并且可以大幅度提高數(shù)據(jù)存取效能。

      IPU的通訊模式:更為有效地交換數(shù)據(jù)

      互聯(lián)體系是IPU的核心架構(gòu)之一。正是由于優(yōu)秀的互聯(lián)體系設(shè)計(jì),IPU系統(tǒng)上的每個(gè)計(jì)算塊才能緊密地工作并彼此有效地交換數(shù)據(jù)。這也是那些擁有多個(gè)IPU芯片的大規(guī)模系統(tǒng)真正可以被看做一個(gè)單一的、一致性的設(shè)備的原因。

      具有多個(gè)IPU芯片的系統(tǒng)獨(dú)立地公開單個(gè)IPU設(shè)備,同時(shí)它也會(huì)公開每個(gè)IPU核心。在目前的情況下,IPU設(shè)備有能力將多個(gè)IPU核心或者系統(tǒng)虛擬為一個(gè)設(shè)備,并向用戶提供它們所有的內(nèi)存和計(jì)算資源,這樣一來它將允許用戶訓(xùn)練和推斷比單個(gè)IPU容量更大的模型,同時(shí)利用多個(gè)IPU芯片的計(jì)算能力。

      為了搭建這樣的系統(tǒng),IPU將互聯(lián)部分分為了片上互聯(lián)和片外互聯(lián)(設(shè)備互聯(lián))兩個(gè)部分。在GC2上,它的片上互聯(lián)總吞吐量為7.7TB/s,而GC200的片上互聯(lián)吞吐總量則為8TB/s。在GC2的1216個(gè)計(jì)算塊中,每一個(gè)塊都可以同時(shí)使用6.3GB/s的帶寬,并將數(shù)據(jù)傳輸?shù)叫酒系娜我饽康牡亍F嫌?jì)算塊到計(jì)算塊的交換延遲為165ns或更低,并且在負(fù)載高于該值時(shí)不會(huì)降低。

      片外互聯(lián)部分,面向系統(tǒng)內(nèi)其他設(shè)備,IPU可以通過PCIe接口連接到它的主機(jī)系統(tǒng)并獲取數(shù)據(jù),在GC2和GC200中,PCIe已經(jīng)被升級(jí)到PCIe4.0x16。兩個(gè)并行的IPU芯片之間可以由三個(gè)鏈路連接,每個(gè)鏈路的名義雙向帶寬為64GB/s,其中兩個(gè)預(yù)留給板內(nèi)傳輸。IPU芯片之間的實(shí)際基準(zhǔn)測(cè)試的連接帶寬高達(dá)108GB/s。另外在建立更大規(guī)模的系統(tǒng)互聯(lián)方面,IPU提供了名為IPU-link連接方式,IPU單芯片提供了多個(gè)IPU-link連接通道,最大能提供320GB/s的互聯(lián)帶寬。

      IPU的運(yùn)行模式:BSP批量同步并行

      最后我們?cè)賮砜纯催\(yùn)行模式。由于沒有外部內(nèi)存,因此IPU的運(yùn)行模式非常獨(dú)特。IPU采用的是一種被稱為BSP(BULKSYNCHRONOUSPARALLEL,批量同步并行)的運(yùn)行模式。這種模式分為三步,第一步是本地計(jì)算。每個(gè)IPU的計(jì)算核心預(yù)先計(jì)算本地已經(jīng)準(zhǔn)備好的數(shù)據(jù),不同的進(jìn)程之間不會(huì)進(jìn)行通訊。第二步是同步,在所有進(jìn)程都達(dá)到同步點(diǎn)之前,任何進(jìn)程都不會(huì)進(jìn)行下一步操作或者通訊。第三部是通訊,進(jìn)程開始利用片上和片外(如果存在多個(gè)IPU集群進(jìn)行互連的話)互聯(lián)系統(tǒng)交換數(shù)據(jù),每個(gè)進(jìn)程都可以向每個(gè)期望的數(shù)據(jù)目的地發(fā)送信息,此階段不會(huì)進(jìn)行任何計(jì)算。然后再進(jìn)行下一次的計(jì)算、同步和通訊,周而復(fù)始,直到所有計(jì)算完成。

      IPU的計(jì)算模式設(shè)計(jì)是非常獨(dú)特的,其單向通訊、處理器只操作本地SRAM以及控制流程的簡(jiǎn)化,這使得整個(gè)操作的效率得到大幅度提升。不過這樣的設(shè)計(jì)也帶來了一些問題,比如計(jì)算和通信必須是串行的,另外所有計(jì)算核心必須步調(diào)一致,也就是維持極高吞吐量,否則就會(huì)出現(xiàn)不同核心之前的互相等待(所以Graphcore才為每個(gè)核心設(shè)計(jì)了SMT模式,支持6個(gè)線程同步)。這樣一來,整個(gè)架構(gòu)的壓力更傾向于軟件方面,硬件則大大簡(jiǎn)化了。

      總的來看,IPU架構(gòu)和芯片相比傳統(tǒng)的AI加速芯片,帶來了三個(gè)重要的改變,分別是MIMD多指令多數(shù)據(jù)流、包含本地SRAM的片上計(jì)算系統(tǒng)、解決了大規(guī)模并行計(jì)算處理核之間的效率問題。這三大系統(tǒng)集體運(yùn)作,才帶來了我們今天看到的Graphcore的產(chǎn)品以及其強(qiáng)悍的性能。

      更大規(guī)模的產(chǎn)品實(shí)現(xiàn):

      Graphcore Colossus

      MK2 GC200 IPU

      在了解了IPU的架構(gòu)以及其設(shè)計(jì)的相關(guān)內(nèi)容后,讓我們繼續(xù)來了解GC200芯片。

      在這里需要先聲明的是,目前Graphcore推出的GC200芯片主要以標(biāo)準(zhǔn)的1U刀片服務(wù)器的方式提供,型號(hào)為IPU-MachineM2000(下簡(jiǎn)稱“M2000”)。每一個(gè)M2000設(shè)備中包含了4個(gè)GC200芯片。Graphcore提供的大量官方數(shù)據(jù)都以M2000作為基本單位展示,畢竟最終售賣的是M2000刀片服務(wù)器。

      根據(jù)Graphcore的數(shù)據(jù),每一個(gè)GC200芯片都包含了1472個(gè)獨(dú)立的IPU內(nèi)核,能夠執(zhí)行8832個(gè)獨(dú)立的并行計(jì)算線程,每個(gè)IPU可以執(zhí)行6個(gè)線程。數(shù)據(jù)格式上,GC200支持IEEEFP32格式、FP16.32(16位乘32位累加)以及FP16.16(16位乘法累加)計(jì)算。在計(jì)算特性方面,GC200支持算術(shù)隨機(jī)取整并可以以處理器的全速運(yùn)行,因此GC200可以將所有的計(jì)算格式保持在16位,從而減少內(nèi)存、讀寫需求等,同時(shí)又提供了全精度的計(jì)算結(jié)果。這個(gè)計(jì)算方法和目前谷歌、英偉達(dá)采用的BF16計(jì)算方法有一定的相似之處。不僅如此,每個(gè)IPU內(nèi)核都可以從Graphcore開發(fā)的一種稱為AI-Float的浮點(diǎn)技術(shù)中獲得性能提升,同時(shí)AI-Float算術(shù)塊還為稀疏算術(shù)浮點(diǎn)運(yùn)算提供了本機(jī)支持。Graphcore為各種稀疏操作提供了庫支持,包括塊稀疏性和動(dòng)態(tài)稀疏性。這意味著GC200不僅可以在推理中,還可以在訓(xùn)練過程中提供更高效的稀疏數(shù)據(jù)計(jì)算,從而幫助創(chuàng)作者創(chuàng)建新型復(fù)雜模型,以更少的參數(shù)、更短的訓(xùn)練時(shí)間以及更少的能量提供最先進(jìn)的性能。根據(jù)Graphcore展示的數(shù)據(jù),擁有4個(gè)GC200的M2000刀片服務(wù)器將帶來超過1PFlop的AI計(jì)算能力。

      除了相關(guān)的計(jì)算能力外,和之前的產(chǎn)品一樣,GC200不再需要外部存儲(chǔ)設(shè)備,整個(gè)處理器自帶片上內(nèi)存,這種內(nèi)存被稱為“In-Processor Memory”。GC200擁有高達(dá)900MB的片上SRAM作為內(nèi)存,每個(gè)處理器內(nèi)核都擁有自己的RAM,以最低能量的訪問實(shí)現(xiàn)最高效率的數(shù)據(jù)讀取。相比此前的GC2,GC200帶來了超過3倍的數(shù)據(jù)存儲(chǔ)空間,足以讓處理器在高速運(yùn)行中容納大的數(shù)據(jù)模型、預(yù)先狀態(tài)等內(nèi)容,最大限速的加速整個(gè)系統(tǒng)。

      由于片上內(nèi)存的容量大幅度提升,Graphcore還帶來了整合在《Poplar》管理軟件中的、可以用于訪問“Streaming Memory”的“Exchange-Memory”軟件功能,通過聯(lián)合使用這款軟件,GC200可以支持擁有千億個(gè)參數(shù)的超大模型。內(nèi)存帶寬方面,在《Exchange-Memory》軟件的幫助下,擁有4個(gè)CG200芯片的M2000服務(wù)器支持?jǐn)?shù)據(jù)密度高達(dá)450GB的Exchange-Memory,帶寬也能夠高達(dá)180TB/s。相比現(xiàn)有7nm的GPU產(chǎn)品,GC200的Exchange-Memory數(shù)據(jù)密度達(dá)到了前代產(chǎn)品的10倍,內(nèi)存帶寬則達(dá)到了前代產(chǎn)品的100倍。

      數(shù)據(jù)通信方面,M2000內(nèi)置了專用的AI通信網(wǎng)絡(luò),稱作IPU-Fabric。這個(gè)通訊系統(tǒng)的核心一款名為GraphcoreGC4000IPU-Gateway的通訊芯片,這款芯片能夠提供2.8Tbps的帶寬,并且能夠?qū)崿F(xiàn)芯片之間的高速互聯(lián)功能。值得一提的是,GC4000互聯(lián)芯片還為多個(gè)M2000刀片服務(wù)器之間的互聯(lián)提供支持,多個(gè)M2000服務(wù)器互聯(lián)后,GC4000最多可以提供Pb級(jí)別的帶寬。在這種連接中,IPU-Fabric將以3D環(huán)形拓?fù)涞男问竭B接所有的計(jì)算核心,連接方式支持標(biāo)準(zhǔn)的銅連接或者OSFP光學(xué)連接器,也非常方便。

      最后還是來看看性能方面的內(nèi)容。由于IPU這類產(chǎn)品非常專業(yè),因此對(duì)其性能很難得到具體的測(cè)試結(jié)果。Graphcore在2020年6月4日更新了軟件系統(tǒng)后,在官網(wǎng)上展示了一些GraphcoreGC2針對(duì)英偉達(dá)V100的性能測(cè)試對(duì)比結(jié)果。包括自然語言BERT訓(xùn)練和推理,圖像識(shí)別ResNeXt訓(xùn)練和推理、可分離卷積分析、時(shí)間序列分析、自動(dòng)編碼器訓(xùn)練(推薦/排名,基于Netflix數(shù)據(jù))、馬爾科夫鏈蒙特卡洛概率學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等模型。從這些測(cè)試的數(shù)據(jù)可以看出,IPU在優(yōu)化得當(dāng)?shù)那闆r下展示出了相比GPU更為出色的性能。在強(qiáng)化學(xué)習(xí)、概率學(xué)習(xí)等應(yīng)用中帶來了數(shù)十倍的性能提升,在可分離卷積分析中根據(jù)不同情況,性能提升幅度大約在4倍到100倍左右。其余的一些測(cè)試中,IPU基本都擁有1.25倍到6倍左右的性能提升。

      需要注意的是,這里的性能對(duì)比是基于上代GC2和上代英偉達(dá)V100,兩家公司最新的產(chǎn)品GraphcoreGC200和英偉達(dá)A100的性能對(duì)比還沒有太多資料??紤]到Graphcore宣稱GC200的性能相比GC2最多達(dá)到了8倍的提升,因此GC200的性能有很大可能是勝過A100的。

      寫在最后

      總的來看,Graphcore推出的新品在計(jì)算性能方面表現(xiàn)非常出色,整體架構(gòu)設(shè)計(jì)也幾乎避開了目前主流的CPU和GPU的缺陷,堪稱一個(gè)充滿突破性和劃時(shí)代的AI計(jì)算產(chǎn)品。剩下的問題就是Graphcore能否更進(jìn)一步,發(fā)展壯大了。一般來說,在AI這種快速發(fā)展的產(chǎn)業(yè)界,新創(chuàng)意、新產(chǎn)品年年都有,層出不窮,但大部分都在大浪淘沙中變得無影無蹤。一個(gè)全新的技術(shù)體系和創(chuàng)新思想最后是否能發(fā)展壯大,還得看是否有好的產(chǎn)業(yè)環(huán)境和生態(tài)支持。在這一點(diǎn)上,Graphcore還算不錯(cuò),微軟、阿里、百度等巨頭都紛紛對(duì)其提供了支持,Graphcore中文官網(wǎng)的資料也很詳細(xì),國內(nèi)市場(chǎng)空間應(yīng)該也很廣闊。在GC200發(fā)布后,已經(jīng)有多家AI廠商宣布考慮和Graphcore合作。目前的問題主要還是Graphcore本身,能否繼續(xù)在現(xiàn)有技術(shù)和軟件架構(gòu)的基礎(chǔ)上,揚(yáng)長避短,加強(qiáng)優(yōu)勢(shì),解決難題,才是Graphcore和旗下芯片進(jìn)一步擴(kuò)張市場(chǎng)的最根本因素。

      猜你喜歡
      線程內(nèi)存架構(gòu)
      基于FPGA的RNN硬件加速架構(gòu)
      功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      “春夏秋冬”的內(nèi)存
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
      淺談linux多線程協(xié)作
      一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
      基于內(nèi)存的地理信息訪問技術(shù)
      Linux線程實(shí)現(xiàn)技術(shù)研究
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      上網(wǎng)本為什么只有1GB?
      南投县| 汝城县| 天台县| 富阳市| 高州市| 盈江县| 台北市| 沈阳市| 临城县| 农安县| 蒙城县| 余江县| 赤壁市| 荥经县| 巴塘县| 钟山县| 湘阴县| 海丰县| 方城县| 蒙城县| 体育| 略阳县| 湘潭市| 昌邑市| 土默特右旗| 出国| 九江县| 泊头市| 习水县| 颍上县| 澳门| 通江县| 巩留县| 石河子市| 博罗县| 迭部县| 东宁县| 连州市| 托克逊县| 轮台县| 神池县|