0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TPU和GPU的帶寬模型

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-10-21 09:20 ? 次閱讀

前幾天,谷歌AI團(tuán)隊(duì)發(fā)布了一款新的語(yǔ)言表征模型——BERT,是來(lái)自Transformer的雙向編碼器表征。它的效果很強(qiáng)大,在11項(xiàng)NLP任務(wù)中都刷新了最佳成績(jī)。

https://arxiv.org/abs/1810.04805

在計(jì)算力方面,關(guān)于BERT選擇TPU還是GPU仍然存在爭(zhēng)議。BERT用了四天時(shí)間,在4個(gè)TPU pod上完成的(共有256個(gè)TPU芯片),這是否意味著只有谷歌才能訓(xùn)練像BERT這樣的模型呢?難道GPU已經(jīng)走到盡頭了嗎?這里需要明確兩點(diǎn)基礎(chǔ)知識(shí):

一臺(tái)TPU是一個(gè)矩陣乘法單元,它僅可以進(jìn)行矩陣乘法和矩陣操作。在計(jì)算矩陣乘法時(shí),它的速度很快。

進(jìn)行矩陣乘法的過(guò)程中,最慢的部分就是從主記憶體中得到元素,并將其載入處理器中。

換句話說(shuō),矩陣相乘中,最燒錢(qián)的部分是內(nèi)存負(fù)載。對(duì)BERT來(lái)說(shuō),矩陣相乘應(yīng)該占計(jì)算負(fù)載的90%。了解了這些背景,我們可以對(duì)這一問(wèn)題進(jìn)行小小的技術(shù)分析。

TPU和GPU的帶寬模型

TPU上的Transformer

BERT中常見(jiàn)的操作是矩陣乘法:AB=C,其中A的尺寸為256×256,B為1024×1024。TPU在對(duì)矩陣執(zhí)行相乘的過(guò)程中,會(huì)將矩陣分解成更小的128×128矩陣。這就意味著我們需要對(duì)A加載16個(gè)128×128的tile,從B中加載64個(gè)tile??偣簿褪?664=1024個(gè)128×128的負(fù)載量。在16位的條件下,這就是32MB的數(shù)據(jù)。

現(xiàn)在我們進(jìn)一步簡(jiǎn)化它。我們假設(shè),在進(jìn)行兩個(gè)記憶負(fù)載時(shí)沒(méi)有延遲時(shí)間,這也是有可能的,因?yàn)橥ǔD憧梢栽诰€程并行下隱藏內(nèi)存訪問(wèn)延遲。簡(jiǎn)單地說(shuō),這意味著,當(dāng)我們等待一個(gè)128×128的矩陣副本完成時(shí),已經(jīng)完成了下一個(gè)。這樣一來(lái),我們只需要等待第一個(gè)內(nèi)存副本的完成,不用等待其他的。這就是GPU速度快的核心原因,以及為什么我們要在GPU中使用多個(gè)線程,無(wú)延遲的重疊內(nèi)存?zhèn)鬏斉c實(shí)際情況相差無(wú)幾。使用了這種簡(jiǎn)化,我們現(xiàn)在可以直接使用內(nèi)存帶寬計(jì)算為矩陣乘法加載內(nèi)存所需要的時(shí)間。如果我們查看TPU的帶寬,就會(huì)放發(fā)現(xiàn)有600GB/s,所以我們需要5.2e-05秒來(lái)傳輸32MB的數(shù)據(jù)。

GPU上的Transformer

對(duì)于GPU,過(guò)程相同,只不過(guò)使用更小的tile和更多處理器。和TPU相似,我們同時(shí)使用兩個(gè)負(fù)載來(lái)隱藏內(nèi)存延遲。對(duì)GPU來(lái)說(shuō),16位數(shù)據(jù)的tile尺寸是96×96的。如果我們用一個(gè)V100 Tesla GPU,那么需要同時(shí)運(yùn)行160個(gè)tile,還會(huì)有稍許延遲。與TPU相比,這意味著,和兩個(gè)能處理128×128的矩陣的單元不同,GPU有160個(gè)單元(80個(gè)SM,160個(gè)線程塊,每個(gè)線程塊有兩個(gè)96×96的矩陣)。這也能保證我們可以通過(guò)并行隱藏內(nèi)存延遲。

重復(fù)以上計(jì)算過(guò)程,可以得到下面的結(jié)果:

對(duì)矩陣A,我們有33個(gè)96×96的tile;對(duì)矩陣B,我們有121個(gè)96×96的tile??偣残枰?3*121=3993次負(fù)載,數(shù)據(jù)總量為70MB。V100每秒運(yùn)行速度為900GB,所以內(nèi)存負(fù)載可能會(huì)花7.6r-05秒。所以,我們的模型判斷,在這一場(chǎng)景下,一臺(tái)GPU比一臺(tái)TPU慢32% 。注意,對(duì)一臺(tái)RTX 2080 Ti GPU來(lái)說(shuō),矩陣tile是一樣的,但是內(nèi)存帶寬減少到了616GB/s,說(shuō)明RTX 2080 Ti比TPU慢了54%。

注意,可用Tensor Core的TPU和GPU都能在一次運(yùn)行中分別計(jì)算矩陣乘法tile,所以,就速度來(lái)說(shuō)二者是差不多的,區(qū)別就在于內(nèi)存是如何被載入的。

在GPU上BERT的訓(xùn)練時(shí)間

利用這一數(shù)據(jù),用V100和RTX 2080 Ti構(gòu)成的GPU群組,以及高速網(wǎng)絡(luò)和好的并行算法(例如用微軟的CNTK),我們能在64臺(tái)GPU上(相當(dāng)于四個(gè)TPU pod)、用5天多的時(shí)間或8天半的時(shí)間訓(xùn)練出BERT。在有八臺(tái)GPU的設(shè)備上,使用任意軟件和并行算法(PyTorch或者TensorFlow),我們訓(xùn)練BERT需要42天或者68天。對(duì)于標(biāo)準(zhǔn)的四個(gè)GPU的臺(tái)式機(jī),我們需要99天。

帶寬模型的限制

帶寬模型最大的限制就是這些計(jì)算是針對(duì)特定矩陣大小的,計(jì)算的難度在各種尺寸之間都不同。例如,如果你的batch size是128,那么GPU的速度會(huì)比TPU稍快一點(diǎn)。如果batch size小于128,GPU的速度就會(huì)快很多。增加矩陣B的尺寸會(huì)讓TPU比GPU快得多。在BERT的原始論文中,研究人員是針對(duì)TPU進(jìn)行矩陣尺寸的調(diào)整,如果你用GPU訓(xùn)練的話就不要參考了。

未來(lái)可能遇到的限制包括融合運(yùn)算,TPU可以計(jì)算額外的操作,例如非線性激活函數(shù)或矩陣乘法中的偏差。這意味著,TPU不需要從較慢的全局內(nèi)存中進(jìn)行加載。另外,GPU也支持這種操作,但是英偉達(dá)還未將它們實(shí)現(xiàn),所以GPU用戶可能無(wú)法使用這一方法。所以,用戶可能會(huì)遇到1.6%的速度變慢,例如,如果你應(yīng)用一個(gè)非線性函數(shù)和一個(gè)偏見(jiàn),那么TPU可能會(huì)比GPU快3.2%。

32位、16位和8位的區(qū)別

如果在32位情況下重復(fù)上面的計(jì)算過(guò)程,那么TPU會(huì)比之前快5.3倍。所以數(shù)據(jù)類型的尺寸在TPU和GPU的選擇上還是很重要的。

TPU不支持8位訓(xùn)練,但是圖靈GPU可以。所以,我們也可以看看8位矩陣乘法會(huì)有怎樣的表現(xiàn)。我此前總結(jié)了8位模型的表現(xiàn),發(fā)現(xiàn)并不難訓(xùn)練。如果我們重復(fù)上面的訓(xùn)練,用8位GPU訓(xùn)練,就會(huì)發(fā)現(xiàn)GPU比TPU快了3倍。在四臺(tái)RTX 2080 Ti上的8位訓(xùn)練需要21天。

結(jié)語(yǔ)

TPU在訓(xùn)練類似BERT的模型時(shí),比GPU快32%到54%。你也可以用40到70天的時(shí)間,在八臺(tái)GPU上復(fù)現(xiàn)BERT。而用四臺(tái)普通GPU,在16位的情況下訓(xùn)練出BERT需要99天,在8位情況下則需要21天。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3643

    瀏覽量

    134519
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128948

原文標(biāo)題:面向BERT的TPUs和GPUs性能分析比較

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一文理清CPU、GPUTPU的關(guān)系

    很多讀者可能分不清楚 CPU、GPUTPU 之間的區(qū)別,因此 Google Cloud 將在這篇博客中簡(jiǎn)要介紹它們之間的區(qū)別,并討論為什么 TPU 能加速深度學(xué)習(xí)。
    的頭像 發(fā)表于 09-04 11:12 ?4455次閱讀

    從CPU、GPU再到TPU,Google的AI芯片是如何一步步進(jìn)化過(guò)來(lái)的?

    Google使用TPU的方式是將載有TPU的板子插在數(shù)據(jù)中心機(jī)柜的硬盤(pán)驅(qū)動(dòng)器插槽里來(lái)使用。而且我覺(jué)得TPU的高性能還來(lái)源于它數(shù)據(jù)的本地化。對(duì)于GPU,從存儲(chǔ)器中取指令與數(shù)據(jù)將耗費(fèi)大量的
    發(fā)表于 03-15 11:40

    GPU編程的平臺(tái)模型、執(zhí)行模型、內(nèi)存模型及編程模型

    GPU編程--OpenCL四大模型
    發(fā)表于 04-29 07:40

    CORAL-EDGE-TPU:珊瑚開(kāi)發(fā)板TPU

    和功能規(guī)格邊緣TPU模塊CPU:i.MX 8M應(yīng)用處理器(四核Cortex-A53,Cortex-M4F)GPU:集成的GC7000 Lite圖形ML加速器:Google Edge TPU協(xié)處理器RAM
    發(fā)表于 05-29 10:43

    TPU透明副牌.TPU副牌料.TPU抽粒廠.TPU塑膠副牌.TPU再生料.TPU低溫料

    清源塑膠經(jīng)營(yíng). 供應(yīng)TPU塑膠原料.副牌.再生顆粒料.TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A.
    發(fā)表于 11-21 17:21

    供應(yīng)TPU抽粒工廠.TPU再生工廠.TPU聚醚料.TPU聚酯料.TPU副牌透明.TPU副牌.TPU中低溫料

    清源塑膠經(jīng)營(yíng).進(jìn)口.國(guó)內(nèi).供應(yīng)TPU原料.副牌TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A. 高硬度
    發(fā)表于 11-21 17:47

    CPU,GPU,TPU,NPU都是什么

    嵌入式算法移植優(yōu)化學(xué)習(xí)筆記5——CPU,GPU,TPU,NPU都是什么一、什么是CPU?二、什么是GPU?三、什么是TPU?四、什么是NPU?附:一、什么是CPU?中央處理器(CPU)
    發(fā)表于 12-15 06:07

    MCU、DSP、GPU、MPU、CPU、DPU、FPGA、ASIC、SOC、ECU、NPU、TPU、VPU、APU、BPU、ECU、FPU、EPU、這些主控異同點(diǎn)有哪些?

    MCU、DSP、GPU、MPU、CPU、DPU、FPGA、ASIC、SOC、ECU、NPU、TPU、VPU、APU、BPU、ECU、FPU、EPU、這些主控異同點(diǎn)有哪些?
    發(fā)表于 12-17 17:07

    在Ubuntu上使用Nvidia GPU訓(xùn)練模型

    問(wèn)題最近在Ubuntu上使用Nvidia GPU訓(xùn)練模型的時(shí)候,沒(méi)有問(wèn)題,過(guò)一會(huì)再訓(xùn)練出現(xiàn)非??D,使用nvidia-smi查看發(fā)現(xiàn),顯示GPU的風(fēng)扇和電源報(bào)錯(cuò):解決方案自動(dòng)風(fēng)扇控制在nvidia
    發(fā)表于 01-03 08:24

    一文了解CPU、GPUTPU的區(qū)別

    很多讀者可能分不清楚 CPU、GPUTPU 之間的區(qū)別,因此 Google Cloud 將在這篇博客中簡(jiǎn)要介紹它們之間的區(qū)別,并討論為什么 TPU 能加速深度學(xué)習(xí)。
    的頭像 發(fā)表于 09-06 16:53 ?2.8w次閱讀

    如何利用Google Colab的云TPU加速Keras模型訓(xùn)練

    TPU包含8個(gè)TPU核,每個(gè)核都作為獨(dú)立的處理單元運(yùn)作。如果沒(méi)有用上全部8個(gè)核心,那就沒(méi)有充分利用TPU。為了充分加速訓(xùn)練,相比在單GPU上訓(xùn)練的同樣的
    的頭像 發(fā)表于 11-16 09:10 ?1w次閱讀

    CPU和GPUTPU是如何工作的到底有什么區(qū)別

    很多讀者可能分不清楚 CPU、GPUTPU 之間的區(qū)別,因此 Google Cloud 將在這篇博客中簡(jiǎn)要介紹它們之間的區(qū)別,并討論為什么 TPU 能加速深度學(xué)習(xí)。
    的頭像 發(fā)表于 01-20 11:57 ?5641次閱讀

    CPU、GPUTPU、NPU等的講解

    CPU、GPU、TPU、NPU等的講解
    的頭像 發(fā)表于 01-05 14:54 ?1.1w次閱讀

    谷歌發(fā)布多模態(tài)Gemini大模型及新一代TPU系統(tǒng)Cloud TPU v5p

    谷歌亦發(fā)布新一代TPU 系統(tǒng)——Cloud TPU v5p,以幫助訓(xùn)練尖端的 AI 模型。目
    的頭像 發(fā)表于 12-12 10:50 ?1378次閱讀
    谷歌發(fā)布多模態(tài)Gemini大<b class='flag-5'>模型</b>及新一代<b class='flag-5'>TPU</b>系統(tǒng)Cloud <b class='flag-5'>TPU</b> v5p

    Groq推出大模型推理芯片 超越了傳統(tǒng)GPU和谷歌TPU

    Groq推出了大模型推理芯片,以每秒500tokens的速度引起轟動(dòng),超越了傳統(tǒng)GPU和谷歌TPU。
    的頭像 發(fā)表于 02-26 10:24 ?1041次閱讀
    Groq推出大<b class='flag-5'>模型</b>推理芯片 超越了傳統(tǒng)<b class='flag-5'>GPU</b>和谷歌<b class='flag-5'>TPU</b>