<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TPU和GPU的帶寬模型

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

前幾天,谷歌AI團隊發布了一款新的語言表征模型——BERT,是來自Transformer的雙向編碼器表征。它的效果很強大,在11項NLP任務中都刷新了最佳成績。

https://arxiv.org/abs/1810.04805

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

一臺TPU是一個矩陣乘法單元,它僅可以進行矩陣乘法和矩陣操作。在計算矩陣乘法時,它的速度很快。

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

換句話說,矩陣相乘中,最燒錢的部分是內存負載。對BERT來說,矩陣相乘應該占計算負載的90%。了解了這些背景,我們可以對這一問題進行小小的技術分析。

TPU和GPU的帶寬模型

TPU上的Transformer

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

現在我們進一步簡化它。我們假設,在進行兩個記憶負載時沒有延遲時間,這也是有可能的,因為通常你可以在線程并行下隱藏內存訪問延遲。簡單地說,這意味著,當我們等待一個128×128的矩陣副本完成時,已經完成了下一個。這樣一來,我們只需要等待第一個內存副本的完成,不用等待其他的。這就是GPU速度快的核心原因,以及為什么我們要在GPU中使用多個線程,無延遲的重疊內存傳輸與實際情況相差無幾。使用了這種簡化,我們現在可以直接使用內存帶寬計算為矩陣乘法加載內存所需要的時間。如果我們查看TPU的帶寬,就會放發現有600GB/s,所以我們需要5.2e-05秒來傳輸32MB的數據。

GPU上的Transformer

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

重復以上計算過程,可以得到下面的結果:

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

注意,可用Tensor Core的TPU和GPU都能在一次運行中分別計算矩陣乘法tile,所以,就速度來說二者是差不多的,區別就在于內存是如何被載入的。

在GPU上BERT的訓練時間

利用這一數據,用V100和RTX 2080 Ti構成的GPU群組,以及高速網絡和好的并行算法(例如用微軟的CNTK),我們能在64臺GPU上(相當于四個TPU pod)、用5天多的時間或8天半的時間訓練出BERT。在有八臺GPU的設備上,使用任意軟件和并行算法(PyTorch或者TensorFlow),我們訓練BERT需要42天或者68天。對于標準的四個GPU的臺式機,我們需要99天。

帶寬模型的限制

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

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

32位、16位和8位的區別

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

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

結語

TPU在訓練類似BERT的模型時,比GPU快32%到54%。你也可以用40到70天的時間,在八臺GPU上復現BERT。而用四臺普通GPU,在16位的情況下訓練出BERT需要99天,在8位情況下則需要21天。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    42

    文章

    3382

    瀏覽量

    131833
  • gpu
    gpu
    +關注

    關注

    27

    文章

    4456

    瀏覽量

    126977

原文標題:面向BERT的TPUs和GPUs性能分析比較

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文理清CPU、GPUTPU的關系

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

    從CPU、GPU再到TPU,Google的AI芯片是如何一步步進化過來的?

    Google使用TPU的方式是將載有TPU的板子插在數據中心機柜的硬盤驅動器插槽里來使用。而且我覺得TPU的高性能還來源于它數據的本地化。對于GPU,從存儲器中取指令與數據將耗費大量的
    發表于 03-15 11:40

    GPU編程的平臺模型、執行模型、內存模型及編程模型

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

    CORAL-EDGE-TPU:珊瑚開發板TPU

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

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

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

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

    清源塑膠經營.進口.國內.供應TPU原料.副牌TPU塑膠.TPU透明副牌. 再生粒子.白色.黑色.透明. 注塑料.擠出料. 壓延等等..聚醚. 脂肪料. 聚酯料.硬度70A--98A. 高硬度
    發表于 11-21 17:47

    CPU,GPU,TPU,NPU都是什么

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

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

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

    一文了解CPU、GPUTPU的區別

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

    一文搞懂 CPU、GPUTPU

    張量處理單元(TPU)是一種定制化的 ASIC 芯片,它由谷歌從頭設計,并專門用于機器學習工作負載。TPU 為谷歌的主要產品提供了計算支持,包括翻譯、照片、搜索助理和 Gmail 等。 在本文中,我們將關注 TPU 某些特定的
    的頭像 發表于 09-15 10:46 ?4.4w次閱讀

    如何利用Google Colab的云TPU加速Keras模型訓練

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

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

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

    CPU、GPU、TPU、NPU等的講解

    CPU、GPU、TPU、NPU等的講解
    的頭像 發表于 01-05 14:54 ?9936次閱讀

    谷歌發布多模態Gemini大模型及新一代TPU系統Cloud TPU v5p

    谷歌亦發布新一代TPU 系統——Cloud TPU v5p,以幫助訓練尖端的 AI 模型。目
    的頭像 發表于 12-12 10:50 ?864次閱讀
    谷歌發布多模態Gemini大<b class='flag-5'>模型</b>及新一代<b class='flag-5'>TPU</b>系統Cloud <b class='flag-5'>TPU</b> v5p

    Groq推出大模型推理芯片 超越了傳統GPU和谷歌TPU

    Groq推出了大模型推理芯片,以每秒500tokens的速度引起轟動,超越了傳統GPU和谷歌TPU。
    的頭像 發表于 02-26 10:24 ?455次閱讀
    Groq推出大<b class='flag-5'>模型</b>推理芯片 超越了傳統<b class='flag-5'>GPU</b>和谷歌<b class='flag-5'>TPU</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>