tft每日頭條

 > 生活

 > 谷歌tpu簡單版

谷歌tpu簡單版

生活 更新时间:2024-07-25 09:31:58

智東西(公衆号:zhidxcom)

編 | 海中天

導讀:在2017年谷歌I/O大會上,二代TPU亮相,它比一代TPU更強大。到底TPU是什麼?有什麼新的變化?Nextplatform記者Nicole Hemsoth一個月前采訪了谷歌著名硬件工程師Norman Jouppi,打聽了一些内幕,他還收集了許多資料,對二代TPU深入分析。

讓我們聽聽Nicole Hemsoth是怎樣解釋的:

谷歌tpu簡單版(谷歌二代TPU到底有什麼秘密)1

一個月前,我曾與谷歌著名硬件工程師Norman Jouppi交流過,讨論的重點是TPU(tensor processing unit),谷歌用TPU讓深度學習推理加速,不過設備(第一代TPU)已經有點過時了。

在今年的I/O大會上,谷歌奪走了Volta GPU的風頭,Volta GPU是Nvidia最近推出的,谷歌透露了二代TPU的細節,二代TPU系統闆的運算速度達到180萬億次,相當驚人,它既可以訓練,也可以推理,定制網絡将TPU組合成“TPU Pods”,計算能力可以與世界前500強的超級計算機媲美,最高峰值速度達到11.5 petaflops(每秒千萬億次)。

Dean解釋說:“我們擁有一個才華橫溢的ASIC設計團隊,他們開發了第一代TPU,還有許多同類的人參與項目。與一代TPU相比,二代TPU的設計與整體系統更接近,它更小,因為我們隻在一塊芯片上推理。訓練流程要求更高,因為我們既要從整體上思考底層設備,還要理解它們是如何與大型系統連接的,比如Pods。”

我們将會密切關注谷歌,深入了解定制網絡架構,下面這些資料是我們從預先準備的高級簡報中提煉出來的,它們與最新的TPU有關;我們還試圖理解新TPU是如何組成機櫃、堆疊在一起的,最終它們的性能達到超級計算機的水平。谷歌沒有透露二代TPU芯片或者主闆的規格,不過幸好有一張圖片,我們可以由此向後進行數學推導。

有些人可能看過許多的超級計算機主闆,對于他們來說,谷歌TPU2與Cray XT或者XC架構也許有點像,這點很有趣,隻是互聯的芯片似乎是焊接在主闆中央的,連接外部世界的接口放在主闆外部。TPU2共有4個TPU2單元,每一個的最大峰值吞吐量(Peak Throughput)約為180萬億次,這點我們在上文已經提到過。我們姑且假定它所使用的是16位半精度浮點。

主闆的左側和右側各有4個連接接口,左側還有2個接口。如果每一個TPU2闆卡直接連接到閃存,那将是十分有趣的一件事,AMD未來即将推出的Vega Radeon Instinct GPU加速器就是這樣設計的。左側的另外2個接口可以直接連接到存儲單元,或者向上連接到網絡的更高層級,從而讓TPU互聯起來,形成更複雜的處理系統。

如果非要猜測,每一個TPU2單元應該有2個接口連接到外部世界,跨越機櫃,左側兩個多出來的接口一個用來連接本地存儲單元,一個作為機櫃内部的互聯節點。

下面就是TPU2主闆“Pod”的樣貌,谷歌說它們處理機器學習數據的整體能力達到11.5 petaflops(千萬億次)。

谷歌tpu簡單版(谷歌二代TPU到底有什麼秘密)2

仔細觀察就會發現,它們似乎是“Open Compute(開放計算)”機櫃,或者說它的尺寸與Open Compute機櫃差不多,可能稍寬一些。上面共有8行TPU單元,每組有4塊TPU闆卡,水平放置。這些機櫃到底是全深度機櫃還是一半深度,我們無法清楚知道。你可以看到TPU2機櫃的計算節點從一側伸出來,這一側有6個接口,當中的2個接口向上連接到一個機框。

在TPU2 機框的最頂行,兩個接口向上延伸,進入另一個機框,裡面似乎沒有安裝TPU2單元。照猜測它是一個準系統(Bare bone)閃存機框,以很高的速度為TPU存儲本地數據。不論怎樣,主闆至少有32個TPU2,也就是說一個機櫃至少有128個TPU。計算一下就會知道,每一個Pod由2個機櫃和藍色罩子組成,它的計算力應該是11.5 petaflops。

在生産端,如此強大的計算力到底有什麼好處呢?谷哥最新的大型翻譯模塊是用32個最棒的商用GPU(可能是Pascal)訓練的,要花一整天訓練,現在隻需要1/8的TPU就能在一個下午完成。請注意,TPU是專門為TensorFlow優化過的,商用GPU(哪怕是高端GPU)瞄準的是通用目的,它既要完成高精度工作,也要完成低精度工作。從這個案例就可以看出,谷歌推出自有ASIC在投資回報方面是沒有什麼問題的。

還有一點要注意,第一代TPU也許已經擁有強大的推理能力,既快速又高效,不過模型必須先從GPU訓練集群中移出,如果要将新模型或者重新訓練的模型正式部署起來,實驗過程就會變慢,谷歌開發者必須等更長的時間才能拿到結果,然後重複工作。正是因為這個原因,對于深度學習硬件來說,在單個設備上訓練/推理就是研究的“聖杯”,現在我們終于走到了轉折點,可以用多種方法解決此問題;未來還可以用英特爾 Knights Mill或者Nvidia Volta GPU。

Nvidia的Volta GPU有一些“tensor core”的處理元素,它可以讓機器學習訓練加速,處理超級計算任務時也會更快,Volta GPU在單個設備上的速度可以達到120 teraflops,相比一年前發布的Pascal進步很多。雖然Volta GPU很驚人,不過谷歌的産品還是奪走Nvidia的一些風頭,雖然短期之内用戶無法自己動手自制TPU機器。

Dean說Volta架構很有趣,因為Nvidia意識到核心矩陣相乘原語(core matrix multiply primitive)對于應用的加速而言相當重要。他還說,谷歌第一代TPU用相似的方法提高推理時矩陣相乘的速度,不過設備是在機器學習工作流中實現這一點的。他還說:“加快線性代數運算速度一直個好方法。”

先将硬件放在一邊不談,讓我們從用戶角度看一看。谷歌沒有将秘密保護起來,在不久的将來,谷歌會通過“谷歌雲平台”使用TPU。谷歌高級研究員Jeff Dean說,他們不會限制競争,TPU隻是作為一種選擇提供給用戶,還會提供Volta GPU,繼續使用Skylake Xeons,開發者構建、運行模型時,谷歌會提供幾種選擇。谷歌将會在雲計算中裝備1000個TPU,提供給合格的研究團隊使用,這些團隊正在完成開放科研項目,它們也許願意将自己的機器學習成果開放。

Dean解釋說,谷歌内部完成一些機器學習任務時可能仍然會使用GPU和CPU,在同一款設備中同時使用兩種訓練和推理技術有着巨大的潛力,設備專為TensorFlow優化過,它也許會打破平衡。新TPU能耗如何我們現在還不知道,不過第一代設備能耗很低,如果用它作為标準評估新設備也許不合适,因為新設備既可以訓練也可以推理。我們可以推斷新TPU的能耗比Volta低,畢竟無論哪個方面來看Volta都是一款更大的設備,而且Volta可以完成多種工作,比如運行一些HPC應用,它們需要進行64位浮點運算,Volta還可以做一些機器學習超低精度運算工作。Nvidia已經将FP16(16位浮點運算)技術标準化,用戶可以根據工作改變精度,隻是我們必須假定新的TPU架構是16位或者8位的。

谷歌tpu簡單版(谷歌二代TPU到底有什麼秘密)3

關于這一點,Dean說:“第一代産品支持量子化整數運算,第二代支持浮點運算。一旦模型的推理訓練結束,可以用來運行量化算法,就沒有必要改變模型了,在整個訓練和推理過程中可以使用相同的浮點數表示法,部署起來也會更容易。”

谷歌沒有将定制硬件推向市場,這對于Nvidia、英特爾來說是一件好事,因為在這個市場Nvidia與英特爾都想占據上風,而谷歌的TPU很有競争力。将二代TPU放進谷歌雲平台,無疑可以幫助一些人完成規模化訓練,不過正如上文提到的,完成這些工作時既會用到高端GPU,也會用到CPU。用戶可以在架構上大規模使用TensorFlow,而架構本身就是針對TensorFlow設計的,這點也很吸引人。谷歌的舉動會激怒亞馬遜和微軟,它們可能會加速引進最新的GPU,以前它們的速度比較慢。亞馬遜使用的最高端GPU是 Tesla K80,微軟Azure使用的是Pascal P100s。

有些人可能感到奇怪,為什麼谷歌不将芯片商用呢?仔細閱讀上文,看看谷歌做了一些什麼,就會發現它選擇的路線不是直接的,風險也比較小。如果深度學習市場像預料的一樣擴張,TPU和TensorFlow也許會帶來差異化,這種差異化如果足夠大,就會讓谷歌雲平台擁有更大的優勢,這種優勢是之前沒有過的。然後谷歌就可以大規模生産,進入大衆市場,這樣谷歌就可以有序擴張TensorFlow了。

多年前,谷歌就曾說過“不作惡”。老實說,在Volta推出之時展示一頭這樣的怪獸的确有點邪惡。

谷歌tpu簡單版(谷歌二代TPU到底有什麼秘密)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved