能夠進行數據推理的第二代TPU
第一代的TPU只能用于深度學習的第一階段,而新版則能讓神經網絡對數據做出推論。谷歌大腦研究團隊主管Jeff Dean表示:“我預計我們將更多的使用這些TPU來進行人工智能培訓,讓我們的實驗周期變得更加快速。”
“在設計第一代TPU產品的時候,我們已經建立了一個相對完善和出色的研發團隊進行芯片的設計研發,這些研發人員也基本上都參與到了第二代TPU的研發工程中去。從研發的角度來看,第二代TPU相對于第一代來說,主要是從整體系統的角度,提升單芯片的性能,這比從無到有的設計第一代TPU芯片來說要簡單許多。所以我們才能有更多的精力去思考如何提升芯片的性能,如何將芯片更好的整合到系統中去,使芯片發揮更大的作用。”Dean在演講中表示。
未來,我們將繼續跟進谷歌的進度,以進一步了解這一網絡架構。但是在此之前,我們應當了解新一代TPU的架構、性能以及工作方式,明白TPU是如何進行超高性能計算的。在此次發布會上,谷歌并沒有展示新一代TPU的芯片樣片或者是更加詳細的技術規格,但是我們依舊能夠從目前所知的信息中對新一代TPU做出一些推測。
從此次公布的TPU圖片來看,第二代TPU看上去有點像Cray XT或者是XC開發板。從圖片上,我們不難發現,相互連接的幾個芯片被焊接到了開發板上,同時保持了芯片之間以及芯片與外部的連接功能。整個板子上共有四個TPU芯片,正如我們之前所說,每一個單獨的芯片都可以達到180TFLOPs的浮點性能。
在開發板的左右兩側各有四個對外的接口,但是在板子的左側額外增加了兩個接口,這一形式使得整個板子看上去略顯突兀。如果未來每一個TPU芯片都能夠直接連接到存儲器上,就如同AMD即將推出的“Vega”處理器可以直接連接GPU一樣,這一布局就顯得非常有趣。左側多出的這兩個接口在未來可以允許TPU芯片直接連接存儲器,或者是直接連接到上行的高速網絡上以進行更加復雜的運算。
以上這些都是我們基于圖片的猜測,除非谷歌能夠透露更多的芯片信息。每一個TPU芯片都有兩個接口可以與外部的設備進行連接,左側有兩個額外的接口對外開發,可以允許開發者在此基礎上設計更多的功能,添加更多的擴展,無論是連接本地存儲設備還是連接網絡,這些功能在理論上都是可行的。(實現這些功能,谷歌只需要在這些接口之間建立相對松散可行的內存共享協議即可。)
下圖展示了多個TPU板一種可能的連接形式,谷歌表示,這一模型可以實現高達11.5千萬億次的機器學習計算能力。
這一結果是如何得出的呢。上面這種連接方式,從外形上來看,非常像開放的計算機架構,或者是其他的一些東西。縱向上來看,疊加了8個TPU板,橫向上看,并列了4個TPU板。目前我們無法斷定每一個開發板都是完整的TPU板或者是半個開發板,我們只能看到板子的一側有6個接口,另一側有2個接口。
值得注意的是,板子的中間采用了4個接口,而左右兩側采用了2個接口,并且在左右兩側也沒有見到與TPU開發板類似的外殼。對此,一個比較合理的解釋就是,左右兩側連接的是本地存儲器接口,而不是TPU芯片接口。
即便如此,我們依舊能看到至少32個TPU二代母板在運行,這也意味著,有128個TPU芯片在同時運行。經過粗略的計算,整套系統的計算能力大概在11.5千萬億次。
舉個例子來說,如果這一運算能力在未來能夠運用到商業領域,谷歌現在進行的大規模翻譯工作所采用的32個目前最先進的GPU,在未來就可以縮減為4個TPU板,并能夠極大的縮減翻譯所需要的時間。
值得注意的是,上文所提到的TPU芯片不僅僅適用于浮點運算,也同樣適用于高性能計算。
TPU的訓練與學習
與第一代TPU相比,第二代TPU除了提高了計算能力之外,增加的最大的功能就是數據推理能力,不過這一推理模型必須先在GPU上進行訓練才可以。這一訓練模式使得谷歌等開發廠商必須降低實驗的速度,重塑訓練模型,這將耗費更長的時間,才能使機器獲得一定的數據推理能力。
正是因為如此,在相對簡單和單一的設備上先進行訓練,然后將結果帶入帶更為復雜的環境中去,從而獲得更高層次的數據推理能力,這一迭代工程是必不可少的。未來,英特爾推出的用于人工智能的GPU也將會采用這一迭代模式。英偉達的Volta GPU也是如此。
擁有“tensor core”的英偉達Volta GPU擁有超高速的機器學習與訓練能力,未來可能達到120萬億次的單設備計算能力,這一運算能力與去年上市的Pascal GPU相比,在計算能力上提升了大約40%。但是像谷歌推出的TPU這種超高速的計算能力所帶來的影響,我們即便很難在生活中切身的體會到,但是GPU越來越快的計算能力依舊令人印象深刻,也離我們更近。
Dean表示,英偉達Volta所采用的架構是非常有趣的,這一架構使得通過核心矩陣來加速應用的目的成為可能。從一定程度上來說,谷歌推出的第一代TPU也采用了類似的想法,實際上,這些技術現在依然在機器學習的流程中被采用。“能夠加快線性計算能力總是非常有用的。”Dean強調。
姑且不考慮硬件方面的影響,依然存在著許多能夠吸引用戶的地方。與那些始終保持機密的項目不同,未來,谷歌將會將TPU技術運用到谷歌云平臺。谷歌的高級研究員Jeff Dean表示,他們不希望通過各種手段來限制競爭,希望能夠為TPU提供更多的可能與空間,這樣在未來才能夠與Volta GPU以及Skylake Xeons競爭。
Dean認為,平臺也應當為開發者提供更多能夠建立和執行各自特有模型的機會,而不是限制開發者的思維。未來,谷歌將會在云平臺上為那些對開放的科研項目感興趣并不斷推進機器學習的研究團隊提供超過1000個TPU。
Dean表示,現在在谷歌內部,在進行機器訓練和學習的時候,也會同時采用GPU和CPU,在同一設備上也是如此,這樣能夠更好的保證平衡。但是對于新一代的TPU芯片,目前來說,訓練和學習時候的功率還不能夠準確的估計,但是值得肯定的是,功能肯定是低于Volta GPU。由于系統在功能上能夠滿足高性能計算和64位高性能計算,這就使得工作負載的計算異常復雜。英偉達的GPU在使用過程中也會遇到類似的問題。未來,想要更好的解決這一問題,需要我們跟工程師繼續努力。
在這一點上,Dean也承認:“與第一代TPU芯片整數計算的方式不同,第二代芯片能夠進行浮點運算。所以在芯片進行學習訓練的過程中,只需要采用固定的模型即可,不需要變動算法。工程師可以采用相同的浮點運算方式,這在很大程度上降低了工作量。”
除了英偉達和英特爾之外,谷歌將其定制的硬件產品推向市場,對于企業來說未嘗不是一件好事。因為TPU來說對于市場來說還是相當邊緣化的技術。當第二代TPU產品應用到谷歌云平臺之后,谷歌將會向大量的用戶推送培訓,這將會更好的推動這一技術的發展。
對于哪些對于谷歌為什么不將芯片進行商業化的人來說,以上的內容大概能夠給出一個回答。隨著人工智能和神經學習技術的不斷發展,TPU將能夠在谷歌云上大展拳腳,成為推動技術進步的一大力量。