<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 業(yè)界動(dòng)態(tài) > 2017圖靈獎得主:通用芯片每年僅提升3%,神經(jīng)專(zhuān)用架構才是未來(lái)

2017圖靈獎得主:通用芯片每年僅提升3%,神經(jīng)專(zhuān)用架構才是未來(lái)

作者: 時(shí)間:2018-09-03 來(lái)源:機器之心 收藏

  摩爾定律的終結將使特定領(lǐng)域的架構成為計算的未來(lái)。一個(gè)開(kāi)創(chuàng )性的例子就是谷歌 2015 年推出的張量處理單元(TPU),目前已經(jīng)在為超過(guò)十億人提供服務(wù)。TPU 使深度神經(jīng)網(wǎng)絡(luò )(DNN)的計算速度提高了 15-30 倍,能耗效率比現有類(lèi)似技術(shù)的 CPU 和 GPU 提高了 30-80 倍。

本文引用地址:http://dyxdggzs.com/article/201809/391456.htm

  本文要點(diǎn)

  雖然 TPU 是一種專(zhuān)用集成電路,但它適用于神經(jīng)網(wǎng)絡(luò )框架 TensorFlow 下的大量程序,驅動(dòng)了谷歌數據中心的許多重要應用,包括圖像識別、翻譯、搜索和游戲。通過(guò)專(zhuān)門(mén)為神經(jīng)網(wǎng)絡(luò )重新分配芯片計算資源,TPU 在真實(shí)數據中心負載環(huán)境下效率要比通用類(lèi)型的計算機高 30-80 倍,目前已為全球 10 億人服務(wù)。神經(jīng)網(wǎng)絡(luò )的推理階段通常遵循嚴格的響應時(shí)間限制,這降低了通用計算機所使用技術(shù)的效率,該通用計算機通常運行得較快,但某些情況下也會(huì )較慢。1965 年英特爾創(chuàng )始人之一戈登·摩爾預測芯片中的晶體管數量每?jì)赡陼?huì )增加一倍。盡管 2017 年 1 月的 ACM Communications 封面呼吁道:「說(shuō)我要終結還為時(shí)過(guò)早了」,摩爾定律確實(shí)壽終正寢。2014 年推出的 DRAM 芯片包含了 80 億個(gè)晶體管,而在人們的預測中即使到了 2019 年,帶有 160 億個(gè)晶體管的 DRAM 芯片也不會(huì )大規模生產(chǎn)——如果看摩爾定律的話(huà),四年里晶體管數量應該變成四倍多。2010 年款的英特爾至強 E5 處理器擁有 23 億個(gè)晶體管,而 2016 年的至強 E5 也只有 72 億個(gè)晶體管,或者說(shuō)比摩爾定律預計的數值低 1.5 倍。毫無(wú)疑問(wèn),半導體行業(yè)還在不斷進(jìn)步,但其步伐已經(jīng)放緩。

  Dennard Scaling 是一個(gè)鮮為人知,但同樣重要的觀(guān)察結果,Robert Dennard 在 1974 年認為,晶體管不斷變小,但芯片的功率密度不變。如果晶體管尺寸線(xiàn)性縮小了二分之一,那么同樣面積上芯片中晶體管的數量就會(huì )變?yōu)?4 倍。同時(shí),如果電流和電壓都降低了二分之一,它所使用的功率將下降 4 倍,在相同的頻率下提供相同的功率。Dennard Scaling 在被發(fā)現的 30 年后結束,其原因并不是因為晶體管的尺寸不再縮小,而是因為電流和電壓不能在繼續下降的同時(shí)保持可靠性了。

  計算架構師們一直信奉摩爾定律和 Dennard Scaling,并通過(guò)復雜的處理器設計和內存層次結構,將資源轉化為性能,而在這其中并沒(méi)有顧及到程序員知識中各指令之間的并行性。不幸地是,架構師們最終耗盡了可以有效利用的指令的并行性。2004 年 Dennard Scaling 的結束,以及缺乏更有效指令級并行性方法的狀況,迫使業(yè)界選擇從單核高耗能處理器轉換到多核高效率處理器。

  今天我們遵守吉恩·阿姆達爾(IBM 著(zhù)名工程師,阿姆達爾定律的提出者)在 1967 年提出的定律,該定律認為不斷增加處理器數量會(huì )導致性能提升的遞減。阿姆達爾定律說(shuō),并行計算的理論加速受到任務(wù)順序部分的限制;如果任務(wù)的 1/8 是串行的,則最大加速比原始性能高 8 倍——即使任務(wù)的其余部分很容易并行,并且架構師增加了 100 個(gè)處理器也是如此。

  下圖顯示了過(guò)去四十年以來(lái),上述三大定律對處理器性能的影響。按照目前的速度,標準處理器的性能在 2038 年以前不會(huì )翻倍。


  圖 1. 依照 Hennessy 和 Patterson 的理論,我們繪制了過(guò)去 40 年中,32 位和 64 位處理器內核每年最高的 SPECCPUint 性能;面向吞吐量的 SPECCPUint_rate 反映了類(lèi)似的情況,即使其平穩期延遲了幾年。

  晶體管看來(lái)不會(huì )再有很大提升了(這反映了摩爾定律的結束),而每平方毫米芯片面積的功耗正在增加(Dennard Scaling 也結束了),但人們對于芯片功率的預算卻并沒(méi)有增加(因為電子移動(dòng)、機械和發(fā)熱限制),芯片設計師們已經(jīng)在充分發(fā)揮多核心的能力了(但這也受到阿姆達爾定律的限制),架構師們現在普遍認為,在性能效率上進(jìn)行重大改進(jìn)的唯一途徑是特定領(lǐng)域的架構——它們只適用于處理特定的任務(wù),但效率非常高。

  在云端的大型數據集和大量計算機之間的協(xié)作使得機器學(xué)習近年來(lái)有了很大的發(fā)展,特別是在深度神經(jīng)網(wǎng)絡(luò )(DNN)方面。與一些其他領(lǐng)域不同,DNN 應用方面很廣泛。DNN 的突破包括將語(yǔ)音識別的錯詞率降低了 30%(近 20 年來(lái)的最大進(jìn)步);自 2011 年以來(lái),將圖像識別的錯誤率從 26% 降低至 3.5;在圍棋上擊敗了人類(lèi)世界冠軍;提升了搜索排名等等。單個(gè) DNN 架構或許應用范圍很窄,但這種方法仍然催生出了大量應用。

  神經(jīng)網(wǎng)絡(luò )一定程度上模擬了人類(lèi)大腦中神經(jīng)的功能,基于簡(jiǎn)單的人工神經(jīng)元 - 輸入的加權和的非線(xiàn)性函數(例如 max(0,value))。這些人工神經(jīng)元被集中到一層,一層的輸出是下一層的輸入。深度神經(jīng)網(wǎng)絡(luò )中的「深度」代表有多個(gè)層,由于云中的大數據集,我們可以使用更大、更多的層來(lái)讓神經(jīng)網(wǎng)絡(luò )獲取更抽象、更準確的概念,而 GPU 會(huì )幫助我們快速進(jìn)行計算。

  DNN 運行的兩個(gè)階段被稱(chēng)為訓練(或學(xué)習)和推理(或預測),分別指代發(fā)展與生產(chǎn)。訓練一個(gè) DNN 可能需要數天,但訓練好的 DNN 進(jìn)行推理只需要幾毫秒。針對不同的應用,開(kāi)發(fā)者需要選擇神經(jīng)網(wǎng)絡(luò )的類(lèi)型和層數,并訓練出合適的權重。幾乎所有的訓練都是浮點(diǎn)運算,這就是 GPU 在深度學(xué)習時(shí)代如此受歡迎的原因之一。

  被稱(chēng)為「量化」的轉換將浮點(diǎn)數轉為整數——通常只有 8 位——這種程度通常足以滿(mǎn)足推斷要求了。與 IEEE 754 16 位浮點(diǎn)乘法相比,8 位整數乘法只需要 1/6 的能耗,占用 1/6 的空間,而整數加法也能帶來(lái) 13 倍能耗和 38 倍空間的提升。

  下表展示了兩個(gè)例子,共六種 DNN 的運行效率——這代表了谷歌數據中心 2016 年 95% 的深度神經(jīng)網(wǎng)絡(luò )工作負載。它們在 TensorFlow 中的代碼都非常短,只有 100-1500 行。這些示例代表在主機服務(wù)器上運行較大應用程序的小組件,可以是數千到數百萬(wàn)行 C ++代碼。應用程序通常面向用戶(hù),這會(huì )導致嚴格的響應時(shí)間限制。


  表 1. 2016 年 7 月,谷歌 TPU 上的 DNN 工作負載。共六種 DNN 應用(三種 DNN 類(lèi)型),代表 95% 的 TPU 工作負載。

  如表 1 所示,每個(gè)模型需要 500 萬(wàn)至 1 億個(gè)權重,這可能需要花費大量時(shí)間和能耗來(lái)訪(fǎng)問(wèn)。為了壓縮訪(fǎng)問(wèn)成本,在一批獨立示例中重復使用相同的權重可以提高性能。

  TPU 起源、架構及實(shí)現

  早在 2006 年,谷歌就開(kāi)始考慮在其數據中心部署 GPU——現場(chǎng)可編程門(mén)陣列(field programmable gate array,FPGA)或專(zhuān)用集成電路(ASIC)。結論是,只有為數不多的能在特殊硬件上運行的應用可以免費使用谷歌大型數據中心的過(guò)剩容量,而且很難自由改進(jìn)。情況在 2013 年出現了轉機,當時(shí)谷歌用戶(hù)每天使用語(yǔ)音識別 DNN 語(yǔ)音搜索三分鐘,使得谷歌數據中心的計算需求增加了一倍,而如果使用傳統的 CPU 將非常昂貴。因此,谷歌啟動(dòng)了一項優(yōu)先級別非常高的項目,快速生產(chǎn)一款定制芯片用于推理,并購買(mǎi)現成的 GPU 進(jìn)行訓練。谷歌的目標是將性?xún)r(jià)比提高 10 倍。為了完成這項任務(wù),谷歌在其數據中心設計、驗證、構建并部署了 GPU,而這一過(guò)程僅僅用了 15 個(gè)月。

  為了降低部署延遲的風(fēng)險,谷歌工程師將 TPU 設計成 I/O 總線(xiàn)上的協(xié)處理器,并允許它像 GPU 一樣插入現有服務(wù)器,而不是使 TPU 與 CPU 緊密集成。此外,為了簡(jiǎn)化硬件設計和調試,主機服務(wù)器將指令發(fā)送給 TPU 令其執行,而不是讓 TPU 去自行獲取。因此,TPU 在理念上更接近浮點(diǎn)單元(FPU)協(xié)處理器,而不是 GPU。

  谷歌工程師將 TPU 看做一個(gè)系統進(jìn)行優(yōu)化。為了減少與主機 CPU 的交互,TPU 運行整個(gè)推理模型,但提供了與 2015 年及以后的 DNN 相匹配的靈活性,而不局限于 2013 年的 DNN。

  圖 2:TPU 的框圖。TPU 指令通過(guò)外圍組件互連高速(PCIe)Gen3x16 總線(xiàn)從主機被發(fā)送到指令緩沖器中。內框通常通過(guò) 256 字節寬度的路徑連接在一起。從右上角開(kāi)始,矩陣乘法單元為 TPU 的核心,256×256 MAC 可以對有符號或無(wú)符號的整數執行 8 位乘法和加法運算。這個(gè) 16 位的產(chǎn)品聚集在矩陣單元下方的 32 位累加器的 4MB 中。這四個(gè) MiB 代表含有 4,096, 256 個(gè)元素的 32 位累加器。矩陣單元每周期產(chǎn)生一個(gè) 256 元素的部分和。


  圖 2. TPU 框圖及平面圖

  矩陣單元的權重通過(guò)片內「權重 FIFO」來(lái)分級,該 FIFO 從我們稱(chēng)之為「權重存儲器」的片外 8GB DRAM 中讀取;為了推理,權重僅作讀取;8GB 支持很多同時(shí)激活的模型。權重 FIFO 有四層深。中間結果保存在 24MiB 的片上「統一緩沖器」中,可以作為矩陣單元的輸入??删幊?DMA 控制器將數據傳送到 CPU 主機存儲器和統一緩沖器或從二者中傳送數據。為了能在谷歌的規模上可靠地部署,內存儲器和外存儲器包含內置錯誤檢查與糾正硬件。

  TPU 微架構的原理是保持矩陣單元繁忙。為了實(shí)現這一目標,讀取權重的指令遵循解耦訪(fǎng)問(wèn)/執行原理,因為它可以在發(fā)送地址之后、從權重存儲器中取出權重之前完成。如果輸入激活或權重數據沒(méi)有準備好,矩陣單元將停止。

  由于讀取大型靜態(tài)隨機存取存儲器(Static Random-Access Memory,SRAM)消耗的算力比算法多得多,矩陣單元使用「脈動(dòng)執行」通過(guò)減少統一緩沖器的讀寫(xiě)來(lái)節約能量。它依賴(lài)于來(lái)自不同方向的數據,這些數據以規則的間隔到達陣列中的單元,這些方向在間隔中組合到一起。給定的含有 65,536 個(gè)元素的向量-矩陣乘法運算作為對角波前在矩陣中移動(dòng)。這些權重被預加載,并隨著(zhù)新數據塊的第一個(gè)數據一起隨著(zhù)前進(jìn)波生效??刂坪蛿祿涣魉€(xiàn)化,給程序員一種錯覺(jué),即 256 個(gè)輸入被一次讀取,并立即更新 256 個(gè)累加器中每個(gè)累加器的一個(gè)位置。從正確性的角度來(lái)看,軟件不了解矩陣單元的脈動(dòng)特性,但為了提高性能,必須考慮單元的延遲。

  TPU 軟件棧必須與為 CPU 和 GPU 開(kāi)發(fā)的軟件棧兼容,這樣應用可以快速移植到 TPU。在 TPU 上運行的應用部分通常用 TensorFlow 編寫(xiě),并編譯成可以在 GPU 或 TPU 上運行的 API。

  CPU、GPU、TPU 平臺

  多數體系架構研究的論文基于運行小型、易于移植的基準測試模擬,這些基準測試可以預測潛在的性能(如果實(shí)施的話(huà))。本文與上述論文不同,而是對 2015 年以來(lái)數據中心運行真實(shí)、大型生產(chǎn)工作負載的機器進(jìn)行回顧性評估,其中一些機器的日常用戶(hù)超過(guò) 10 億。表 1 中列出的六種應用代表了 2016 年 TPU 數據中心 95% 的使用。

  由于正在測量生產(chǎn)工作負載,要比較的基準平臺也必須可以在 Google 數據中心部署,因為這是生產(chǎn)工作負載運行的唯一處所。谷歌數據中心的很多服務(wù)器和谷歌規模對應用程序可靠性的要求意味著(zhù)機器必須至少檢查內存錯誤。由于英偉達 Maxwell GPU 和最近的 Pascal P40 GPU 不檢查內存中的錯誤,在谷歌的規模中部署這些處理器并滿(mǎn)足谷歌應用程序的嚴格可靠性要求是不可行的。

  表 2 顯示了部署在谷歌數據中心的服務(wù)器,可以將其與 TPU 進(jìn)行比較。傳統的 CPU 服務(wù)器以英特爾的 18 核雙插槽 Haswell 處理器為代表,該平臺也是 GPU 或 TPU 的主機服務(wù)器。谷歌工程師在服務(wù)器中使用四個(gè) TPU 芯片。


  表 2. 基準測試的服務(wù)使用 Haswell CPU、K80 GPU 及 TPU。

  很多計算機架構師沒(méi)有考慮到從產(chǎn)品發(fā)布到芯片、主板、軟件可以服務(wù)于數據中心的用戶(hù)之間的時(shí)間差。表 3 指出,2014 年至 2017 年,商業(yè)云公司的 GPU 時(shí)間差為 5 至 25 個(gè)月。因此,可以媲美 2015 年 TPU 的 GPU 顯然是英偉達 K80,后者處于相同的半導體工藝中,在 TPU 部署前六個(gè)月發(fā)布。


  表 3. 2015 年到 2017 年,英偉達 GPU 從發(fā)布到云端部署的時(shí)間差距,這 4 代 GPU 分別為 Kepler、Maxwell、Pascal 和 Volta 架構。

  每個(gè) K80 卡包含兩個(gè)裸片,并提供內部存儲器和 DRAM 的錯誤檢測和糾正機制。這種服務(wù)器中最多可安裝 8 個(gè) K80 裸片,這也是我們基準測試的配置。CPU 和 GPU 都使用大型芯片:大約 600 mm2,或者是英特爾 Core i7 的三倍。

  性能:Roofline、響應時(shí)間、吞吐量

  為了說(shuō)明這六個(gè) app 在三個(gè)處理器上的性能,我們使用了高性能計算機群(HPC)的 Roofline 性能模型。這一簡(jiǎn)單的視覺(jué)模型雖然不完美,但揭示了性能瓶頸出現的原因。該模型背后的假設是 app 無(wú)法適應片上緩存,因此它們要么計算受限,要么內存帶寬受限。對于 HPC,y 軸表示每秒浮點(diǎn)運算性能(單位是 FLOPS),因此峰值計算率形成了 roofline 的「平緩」區(flat part)。x 軸表示運算密度(operational intensity),單位是 FLOPS/byte。內存帶寬表示每秒多少比特,形成了 roofline 的「傾斜」部分(slanted part),因為 (FLOPS/sec)/ (FLOPS/Byte) = Bytes/sec。沒(méi)有充足的運算密度時(shí),程序受限于內存帶寬,性能只能在 roofline 的「傾斜」部分之下。

  一個(gè)應用的每秒實(shí)際計算量與其天花板計算量之間的距離代表了保持運算密度不變時(shí)性能提升的潛力;提升運算密度的優(yōu)化(如緩存塊)可能帶來(lái)更大的性能提升。

  為了在 TPU 上使用 Roofline 模型,當 DNN 應用被量化時(shí),我們首先將浮點(diǎn)運算替換成整數運算。由于權重步伐無(wú)法正常適應 DNN 應用的片上內存,因此第二個(gè)改變就是將運算密度重新定義為每權重比特的整數乘積累加運算(integer multiply-accumulate operations per byte of weights),如表 1 所示。

  圖 3 展示了單個(gè) TPU、CPU 和 GPU 在 log-log scale 上的 Roofline 模型。TPU 的 Roofline 模型「傾斜」部分較長(cháng),其運算密度意味著(zhù)性能更多地受限于內存帶寬,而不是計算峰值。六個(gè)應用中有五個(gè)都接近天花板,MLP 和 LSTM 受限于內存,CNN 受限于計算。


  圖 3:TPU、CPU 和 GPU 在 log-log 圖上的 roofline 模型。五角星表示 TPU,三角形表示英偉達 Tesla K80 GPU,圓表示英特爾酷睿處理器(Haswell);所有 TPU 五角星都與其他兩種芯片的 roofline 模型持平或在后者之上。

  如圖 3 所示,這六個(gè) DNN 應用與 Haswell 和 K80 roofline 天花板的距離大于與 TPU roofline 天花板的距離。響應時(shí)間是原因所在。這些應用中的很多個(gè)是面向終端用戶(hù)服務(wù)的一部分。研究表明,即使響應時(shí)間的些微增加都會(huì )導致用戶(hù)使用該服務(wù)的頻率降低。訓練可能沒(méi)有苛刻的響應時(shí)間 deadline,但推斷通常有,或者說(shuō)相比于吞吐量,推斷更偏好 latency。

  例如,按照應用開(kāi)發(fā)者的要求,MLP0 的 99th 百分位響應時(shí)間通常為 7ms。(每秒推斷和 7ms 的延遲包括服務(wù)器主機時(shí)間和加速器時(shí)間。)如果對響應時(shí)間的限制不嚴格,Haswell 和 K80 分別以 MLP0 最高吞吐量的 42% 和 37% 運行。這些限制也會(huì )影響到 TPU,它會(huì )以 80% 的吞吐量來(lái)運行,更加接近 TPU 的 MLP0 最大吞吐量。與 CPU 和 GPU 相比,單線(xiàn)程 TPU 沒(méi)有復雜的微架構特征,即消耗晶體管和功率來(lái)提高平均性能,而非 99th 百分位的情況,即 TPU 沒(méi)有緩存、分支預測、亂序執行、多處理、推測預取(speculative prefetching)、地址合并(address coalescing)、多線(xiàn)程、上下文切換(context switching)等。極簡(jiǎn)是領(lǐng)域專(zhuān)用處理器的優(yōu)勢。

  表 4 顯示了每個(gè)芯片的相對推斷性能底線(xiàn),包括兩個(gè)加速器 vs. CPU 的主機服務(wù)器開(kāi)銷(xiāo),展示了這六個(gè) DNN 應用相對性能的加權平均值,表明 K80 芯片速度是 Haswell 的 1.9 倍,TPU 芯片速度是 Haswell 的 29.2 倍,TPU 芯片速度是 GPU 的 15.3 倍。


  表 4:在 DNN 工作負載下 K80 GPU 芯片和 TPU 芯片與 CPU 的性能比。加權平均值使用了表 1 中六個(gè) app 的實(shí)際混合。

  性?xún)r(jià)比、總體擁有成本(TCO)、性能/功耗(Performance/Watt)

  大批量購買(mǎi)計算機時(shí)會(huì )更多地考慮性?xún)r(jià)比而非性能。數據中心最好的成本指標是總體擁有成本(TCO)。組織(如谷歌)購買(mǎi)數千張芯片時(shí)所支付的實(shí)際價(jià)格取決于與相關(guān)企業(yè)的談判溝通。由于涉及商業(yè)機密,我們無(wú)法公開(kāi)此類(lèi)價(jià)格信息或數據。但是,功率與 TCO 相關(guān),我們可以公開(kāi)每臺服務(wù)器的功耗數,因此這里我們使用性能/功耗比代替性能/TCO 比。這部分我們對比了整個(gè)服務(wù)器而不是單個(gè)芯片。圖 4 顯示了 K80 GPU 和 TPU 相對于 Haswell CPU 的平均性能/功耗比。我們給出了兩種不同的性能/功耗比計算。我們展示了兩種不同的性能/功耗計算方法。第一種「total」包括計算 GPU 和 TPU 的性能/功耗時(shí)主機 CPU 服務(wù)器所消耗的功率;第二種「incremental」從 GPU 和 TPU 中減去了主機 CPU 服務(wù)器所消耗的功率。


  圖 4:GPU 服務(wù)器與 CPU 服務(wù)器的性能/功耗對比(藍色條)、TPU 服務(wù)器與 CPU 服務(wù)器的功耗對比(紅色條)、TPU 服務(wù)器與 GPU 服務(wù)器的功耗對比(橙色條)。TPU' 是使用 K80 的 GDDR5 內存將 TPU 進(jìn)行改進(jìn)后的芯片。

  對替代性 TPU 設計的評估

  和 FPU 類(lèi)似,TPU 協(xié)同處理器比較容易評估,因此我們?yōu)榱鶄€(gè)應用創(chuàng )建了一個(gè)性能模型。模型結果和硬件性能的平均差距小于 10%。

  我們使用性能模型來(lái)評估一款假設的 TPU 芯片 TPU'(使用同樣的技術(shù)再用 15 個(gè)月我們也能設計出這款芯片)。更具攻擊性的邏輯合成和模塊設計仍然可以把時(shí)鐘頻率提高 50%。為 GDDR5 內存設計接口電路(就像 K80 那樣)可以將權重內存帶寬(weight memory bandwidth)提高四倍,將 roofline 脊點(diǎn)從 1350 降到 250。

  將時(shí)鐘頻率提高到 1,050 MHz 而不幫助內存并沒(méi)有什么作用。如果我們使時(shí)鐘頻率為 700MHz,但使用 GDDR5 作為權重內存,則加權平均值飛躍至 3.9。同時(shí)實(shí)行這兩種措施無(wú)法改變平均值,因此假設的 TPU' 具備更快的內存。

  將 DDR3 權重內存替換成等價(jià)的 K80 GDDR5 內存需要將內存通道的數量翻一倍,即 4 個(gè)通道。這一改進(jìn)可以將芯片大小擴大約 10%。GDDR5 還能夠將 TPU 系統的功率預算從 861W 提高到 900W 左右,因為每臺服務(wù)器都有四個(gè) TPU。

  圖 4 顯示,TPU'的總體性能/功耗/芯片是 Haswell 的 86 倍,K80 的 41 倍。其 incremental 指標是 Haswell 的 196 倍,K80 的 68 倍。

  討論

  這部分按照 Hennessy 和 Patterson 的謬誤-陷阱-反駁格式來(lái)展開(kāi):

  謬誤。數據中心的 DNN 推斷應用將吞吐量和響應時(shí)間置于同等重要的地位。我們驚訝于谷歌 TPU 開(kāi)發(fā)者對響應時(shí)間有這么高的要求,2014 年就有人透露:對于 TPU 來(lái)說(shuō),批尺寸應該足夠大,以到達性能峰值或者對延遲的要求不用那么苛刻。一個(gè)強大的應用是離線(xiàn)圖像處理,谷歌開(kāi)發(fā)者的直覺(jué)是,如果交互式服務(wù)也需要 TPU,則大部分服務(wù)需要累積足夠大的批量。即使 2014 年谷歌關(guān)注響應時(shí)間(LSTM1)的應用開(kāi)發(fā)者稱(chēng),2014 年的限制是 10ms,而真正向 TPU 移植時(shí) 10ms 將被減少至 7ms。很多此類(lèi)服務(wù)對 TPU 的意料之外的要求,以及它們對快速響應時(shí)間的影響和偏好,改變了這個(gè)等式。應用編寫(xiě)者通常會(huì )選擇降低延遲,而不是累積更大的批量。幸運的是,TPU 具備一個(gè)簡(jiǎn)單、可重復的執行模型,來(lái)滿(mǎn)足交互式服務(wù)的響應時(shí)間要求,此類(lèi)高峰值吞吐量、小批量大小導致 TPU 具備比當前 CPU 和 GPU 更好的性能。

  謬誤。K80 GPU 架構很適合進(jìn)行 DNN 推斷。我們發(fā)現 TPU 在性能、能耗和成本方面優(yōu)于 K80 GPU 有五個(gè)方面的原因。一,TPU 只有一個(gè)處理器,而 K80 有 13 個(gè),單線(xiàn)程當然更容易滿(mǎn)足嚴格的延遲目標。二,TPU 具備一個(gè)非常大的二維乘法單元,GPU 有 13 個(gè)小的一維乘法單元。DNN 的矩陣相乘密度適合二維陣列中的算術(shù)邏輯運算單元。三,二維陣列還能通過(guò)避免訪(fǎng)問(wèn)寄存器來(lái)促成脈動(dòng)實(shí)現,節約能源。四,TPU 的量化應用使用 K80 并不支持的 8 比特整數而不是 GPU 的 32 比特浮點(diǎn)數。數據小幅度改善的不僅是計算能耗,還能四倍化權重 FIFO 的有效容量和權重內存的有效帶寬。(盡管使用的是 8 比特整數,但這些應用被訓練來(lái)實(shí)現與浮點(diǎn)數相同的準確率。)五,TPU 忽略 GPU 需要而 DNN 不需要的特征,從而縮小 TPU 芯片、節約能耗、為其他更新留下空間。TPU 芯片的大小幾乎是 K80 的一半,通常運行所需能量是后者的三分之一,而它的內存卻是后者的 3.5 倍。這五個(gè)因素導致 TPU 在能耗和性能方面優(yōu)于 K80 GPU 30 倍。

  陷阱。在設計領(lǐng)域專(zhuān)用架構時(shí)不顧架構歷史。不適用通用計算的想法可能適合領(lǐng)域專(zhuān)用架構。對于 TPU 而言,三個(gè)重要的架構特征可以追溯到 1980 年代早期:脈動(dòng)陣列(systolic array)、解耦訪(fǎng)問(wèn)/執行(decoupled access/execute)和復雜的指令集。第一個(gè)特征減少了大型矩陣相乘單元的面積和能耗;第二個(gè)特征在矩陣相乘單元運算期間并行獲取權重;第三個(gè)特征更好地利用 PCIe bus 的有限帶寬來(lái)發(fā)送指令。因此,了解架構歷史的領(lǐng)域專(zhuān)用架構具備競爭優(yōu)勢。

  謬誤。如果谷歌對 CPU 使用更加高效,它得到的結果將可以媲美 TPU。由于有效使用高級向量擴展(AVX2)整數支持需要大量工作,最初在 CPU 上只有一個(gè) DNN 有 8 位結果,其收益大約是 3.5 倍。用浮點(diǎn)而不是 roofline 來(lái)顯示所有 CPU 結果,會(huì )更加明確(也不需要太多空間)。如果所有 DNN 都有類(lèi)似的加速,性能/功耗比將分別從 41 倍和 83 倍降為 12 倍和 24 倍。

  謬誤。如果谷歌使用合適的新版本,GPU 結果將與 TPU 相匹配。表 3 報告了發(fā)布 GPU 和客戶(hù)何時(shí)可以在云中使用 GPU 的區別。與較新的 GPU 進(jìn)行公平比較將包括新的 TPU,而對于另外的 10W,我們只需使用 K80 的 GDDR5 內存就可以將 28 納米、0.7GHz、40W TPU 的性能提高三倍。把 TPU 移動(dòng)到 16 納米工藝將進(jìn)一步提高其性能/功耗。16 納米英偉達 Pascal P40 GPU 的峰值性能是原 TPU 的一半,但在 250 瓦時(shí),能耗卻是原來(lái)的很多倍。如前所述,缺乏誤差檢測意味著(zhù) Google 無(wú)法再去數據中心部署 P40,因此無(wú)法在它們身上運行生產(chǎn)工作負載來(lái)確定其實(shí)際相對性能。

  相關(guān)研究

  兩篇介紹 DNN ASIC 的研究文章至少可以追溯到 20 世紀 90 年代初。如 2016 年的《Communications》中所述,DianNao 家族有四種 DNN 架構,通過(guò)對 DNN 應用程序中的內存訪(fǎng)問(wèn)模式提供有效的架構支持,可以最大限度地減少片上和外部 DRAM 的內存訪(fǎng)問(wèn)。最初的 DianNao 使用 64 個(gè) 16 位整數乘法累加單元的數組。


  谷歌 TPU 3.0 于今年 5 月推出,其功能是 2.0 的八倍,性能高達 100petaflops。

  DNN 的特定領(lǐng)域架構仍然是計算機架構師的熱門(mén)話(huà)題,主要聚焦于稀疏矩陣架構,這是在 2015 年 TPU 首次部署之后提出的。高效推理機基于第一次傳遞,通過(guò)過(guò)濾出非常小的值,將權重數量減少 9 倍左右,然后使用哈夫曼編碼進(jìn)一步縮小數據以提高推理機的性能。Cnvlutin 避免了激活輸入為零時(shí)的乘法運算,這種幾率可以達到 44%,部分原因可能是線(xiàn)性整流函數(ReLU),非線(xiàn)性函數將負值轉換為零,使平均性能提高了 1.4 倍。Eyeriss 是一種新穎的低功耗數據流架構,通過(guò)游程編碼數據利用零來(lái)減少內存占用,并通過(guò)避免輸入為零時(shí)的計算來(lái)節省功率。Minerva 是一種跨算法、結構和電路學(xué)科的協(xié)同設計系統,通過(guò)用量化數據和小值修剪激活函數的方式把功耗降低到原來(lái)的 1/8。2017 年的相關(guān)研究是 SCNN——一種稀疏和壓縮卷積神經(jīng)網(wǎng)絡(luò )的加速器。權重和激活函數都被壓縮在 DRAM 和內部緩沖器中,從而減少了數據傳輸所需的時(shí)間和能量,并允許芯片存儲更大的模型。

  2016 年以來(lái)的另一個(gè)趨勢是用于訓練的特定領(lǐng)域架構。例如,ScaleDeep 用來(lái)對專(zhuān)為 DNN 訓練和推理而設計的高性能服務(wù)器進(jìn)行評估,該服務(wù)器包含數千個(gè)處理器。每塊芯片包含計算量大和存儲量大的塊,比例為 3:1,性能優(yōu)于 GPU 6~28 倍。它用 16 位或 32 位浮點(diǎn)運算來(lái)計算。芯片通過(guò)與 DNN 通信模式匹配的高性能互連拓撲連接。和 SCNN 一樣,這種拓撲只在 CNN 上評估。2016 年,CNN 僅占谷歌數據中心 TPU 工作量的 5%。計算機架構師期待對其它類(lèi)型的 DNN 和硬件實(shí)現進(jìn)行 ScaleDeep 評估。

  DNN 似乎是 FPGA 作為數據中心計算平臺的一個(gè)良好用例。部署的一個(gè)例子是 Catapult。盡管 Catapult 是在 2014 年公開(kāi)發(fā)布的,但它與 TPU 是同一個(gè)時(shí)代的,因為 2015 年它與 TPU 同時(shí)在微軟數據中心部署了 28 納米 Stratix V FPGA。Catapult 運行 CNN 比普通服務(wù)器快 2.3 倍。也許 Catapult 和 TPU 最顯著(zhù)的區別在于,為了獲得最佳性能,用戶(hù)必須使用低級硬件設計語(yǔ)言 Verilog 編寫(xiě)長(cháng)程序,而不是使用高級 TensorFlow 框架編寫(xiě)短程序;也就是說(shuō),「可再編程性」(re-programmability)來(lái)自于 TPU 的軟件,而不是最快 FPGA 的固件。

  總結

  盡管 TPU 在 I/O 總線(xiàn)上,并且內存帶寬相對有限,限制了其使用(六個(gè) DNN 應用程序中有四個(gè)內存受限),但每個(gè)周期 65536 次乘法累加的一小部分仍然數目不小,如 roofline 性能模型所示。這個(gè)結果表明,Amdahl 定律的「cornucopia 推論」——大量廉價(jià)資源的低效利用仍然可以提供頗具性?xún)r(jià)比的高性能。

  我們了解到,推理應用具有嚴格的響應時(shí)間限制,因為它們通常是面向用戶(hù)的應用;因此,當面對 99% 的延遲期限時(shí),DNN 架構需要表現良好。

  TPU 芯片利用其在 MAC 和片上內存的優(yōu)勢運行使用特定領(lǐng)域 TensorFlow 框架編寫(xiě)的短程序,該 TensorFlow 框架比 K80 GPU 芯片快 15 倍,因此能獲得 29 倍的性能/功耗優(yōu)勢,這與性能/總擁有成本相關(guān)。與 Haswell CPU 芯片相比,對應的比率分別為 29 和 83 倍。

  有五個(gè)架構因素可以解釋這種性能差距:

  處理器。TPU 只有一個(gè)處理器,而 K80 有 13 個(gè),CPU 有 18 個(gè);單線(xiàn)程使系統更容易保持在固定的延遲限制內。大型二維乘法單元。TPU 有一個(gè)非常大的二維乘法單元,而 CPU 和 GPU 分別只有 18 個(gè)和 13 個(gè)較小的一維乘法單元;矩陣乘法受益于二維硬件。脈動(dòng)陣列。二維組織支持脈動(dòng)陣列,減少寄存器訪(fǎng)問(wèn)和能量消耗。8 位整數。TPU 的應用使用 8 位整數而不是 32 位浮點(diǎn)運算來(lái)提高計算和內存效率。棄掉的特征。TPU 放棄了 CPU 和 GPU 所需要但是 DNN 用不到的功能,這使得 TPU 更便宜,同時(shí)可以節約資源,并允許晶體管被重新用于特定領(lǐng)域的板載內存。雖然未來(lái)的 CPU 和 GPU 在運行推理時(shí)速度更快,但是使用 circa-2015 GPU 內存重新設計的 TPU 將比原來(lái)快三倍,并使其性能/功耗優(yōu)勢分別為 K80 和 Haswell 的 70 倍和 200 倍。

  至少在過(guò)去十年中,計算機架構研究人員一直在發(fā)布基于模擬的創(chuàng )新成果,這些成果使用了有限的基準,并聲稱(chēng)通用處理器的改進(jìn)為 10% 或更少,而我們現在報告的收益是原來(lái)的十倍不止,這是應用于真實(shí)生產(chǎn)應用的真實(shí)硬件中部署的特定領(lǐng)域架構的收益。

  商業(yè)產(chǎn)品之間的數量級差異在計算機架構中很少見(jiàn),而這甚至可能導致 TPU 成為該領(lǐng)域未來(lái)工作的典型。我們預計,其它人將會(huì )迎頭趕上,將門(mén)檻提得更高。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>