新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術

OLDPAN發表於2018-08-30

老婆,我想要煤氣爐


《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

顯示卡的香氣

新顯示卡出世了,就在前幾天。

可以說是萬眾期待下,老黃髮布了消費級(民用級)顯示卡RTX2070、RTX2080、RTX2080TI,作為“大多數人”,不得不說在釋出會即將結束的那一刻,真的很想預訂一塊。真的很有誘惑力啊,畢竟價格擺在那裡,RTX2080TI顯示卡相比1080TI可是貴了許多,Founder Edition 版 京東上預訂9999差不多1w了。

好了,先不論價格,來簡單看下其引數對比(from en.wikipedia.org/wiki/GeForc…)。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

重點關注紅色剪頭指向的指標:

從左到右:流處理器、Tensor Core數量、最低\最高頻率、頻寬、TFLOP。

詳細衡量一下:

最頂級的當然是RTX 2080 Ti,4352個CUDA核心,核心基準頻率1350MHz,加速頻率公版1545MHz、FE公版超頻1635MHz,搭配352-bit 11GB GDDR6視訊記憶體,頻寬616GB/s,整卡功耗260W,8+8針供電,光線追蹤效能10 Giga Rays/s、78T RTX-OPS。

接下來是RTX 2080,2944個CUDA核心,核心基準頻率1515MHz,加速頻率公版1710MHz、FE公版超頻1800MHz,搭配256-bit 8GB GDDR6視訊記憶體,,頻寬448GB/s,整卡功耗225W,8+6針供電,光線追蹤效能8 Giga Rays/s、60T RTX-OPS。

最後是RTX 2070,2304個CUDA核心,核心基準頻率1410MHz,加速頻率公版1410MHz、FE公版超頻1710MHz,搭配256-bit 8GB GDDR6視訊記憶體,頻寬448GB/s,整卡功耗175W,8針供電,光線追蹤效能6 Giga Rays/s、45T RTX-OPS。

大概可以得出這樣的結論:流處理器普遍相比上一代多了,視訊記憶體大小與上一代一致,視訊記憶體頻率和頻寬相比上一代漲了一

再看下之前1080TI與1080的報導:

1、二者同為16nm製程、Pascal架構,不同的是GTX 1080為GP104-400核心,GTX 1080 Ti為GP102-350核心。核心面積上GTX 1080 Ti比GTX 1080大了50%,CUDA核心數量也多了近67%,光柵、紋理單元也都有近40%的提升。
2、頻率方面:GTX 1080 Ti就沒有GTX 1080高了,基礎頻率1480MHz,Boost頻率1584MHz,比GTX 1080低了9%左右。視訊記憶體方面GTX 1080 Ti和GTX 1080同為GDDR5X,不過視訊記憶體容量、頻率、位寬都有大幅的增長,這也使得GTX 1080 Ti的視訊記憶體頻寬到達了驚人的484GB/s,比Titan X Pascal還高了4GB/s。
3、功耗方面:GTX 1080 Ti額定250W,比GTX 1080多了70W,因此需要8+6 Pin的外接輔助供電來額外提供除PCI-E插槽 75W以外的225W(150+75)。
4、價格方面:GTX 1080 Ti可謂誠意十足,規格上的大幅領先卻只比GTX 1080貴了400元,再看和GTX 1080 Ti規格近似的Titan X Pascal就要貴出4000元。不過在GTX 1080 Ti上市後,NVIDIA選擇讓GTX 1080降價100美元,也算是與GTX 1080 Ti拉開差距。

說完配置,那我們到底需不需要升級2080TI,讓我們來討論下吧。

與深度學習相關

這裡我們不討論最新出的顯示卡對遊戲的提升有多大…blablabla,只知道上2080TI玩遊戲玩的更爽就夠了,前提是得適配並且用上最新的光線追蹤技術(效果見下圖)。


《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

光線追蹤驚人的“效果”

廢話不多少,進入正題,提到顯示卡,與深度學習相關的也就是平行計算架構Tensor RT技術以及最近新出的TensorCore了,而流處理的數量以及頻率以及頻寬則是常規引數,當然是越大越多越硬越好,這裡也就不再贅述了。

提提架構

我們平時利用顯示卡來跑深度學習程式的時候,對顯示卡架構來說並不用很關心,大部分關於顯示卡架構的工作,我們的CUDA庫和所使用的深度學習庫都幫我們處理了,我們平時用的GTX 1080ti、GTX 1080以及所有10系列的顯示卡,使用的是 Pascal 架構,而最新出來的RTX 2080、RTX 2080ti則使用的是Turning(圖靈架構),而之前的伺服器級別顯示卡P100則使用的是Volta架構

架構不同,計算能力也就不同,計算能力不同顯示卡支援的運算操作也就不同,我們從NVIDIA的CUDA-document中摘出這麼一張圖:

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

其中10系的計算能力是6.1、專業的計算卡P100是6.0、而V100是7.0,最新出來的圖靈架構的顯示卡官網還有沒有更新,應該跟CUDA-ToolKit10.0一塊出來吧。

很顯然上圖可以看出,專業的計算卡,在單精度(32-bit)和半精度(16-bit)浮點型計算上都很出眾,而我們平時的消費級顯示卡,例如1080TI(6.1),雖然說支援半精度浮點型計算,但是這數值..相比左右兩邊的就很寒蟬了。

再看下圖,顯然,1080TI的F16那一項直接就是N/A,而且,也沒有TensorCore。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

總結下,雖然說1080TI對16-bit精度的計算支援度並不是很強,但是我們平時訓練大部分使用的還是32-bit的精度,只有在inference的時候才會使用16-bit或者8-bit浮點精度,對於我們研究來說,預測的速度區別影響並不是很大。

目前暫時還不知道RTX2080TI的具體引數,如果RTX2080TI對半精度的支援比較強的話,那麼都可以和專業的計算卡媲美了。

Tensor Core

之前已經提到了Tensor Core,這個是什麼東西,說白了就是比流處理器更強大的專門針對矩陣操作有特別優化的一個運算核。

每個 Tensor Core 包含一個 4x4x4 的矩陣處理陣列來完成 D=A x B + C 的運算,其中 A、B、C、D 是 4×4 的矩陣,如下圖。矩陣相乘的輸入 A 和 B 是 FP16 矩陣,相加矩陣 C 和 D 可能是 FP16 矩陣或 FP32 矩陣。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

每個 Tensor Core 每個時鐘可執行 64 次浮點 FMA 混合精度運算(FP16 乘法與 FP32 累加),一個 SM 單元中的 8 個 Tensor Core 每個時鐘可執行共計 1024 次浮點運算。相比於使用標準 FP32 計算的 Pascal GP100 而言,單個 SM 下的每個深度學習應用的吞吐量提升了 8 倍,所以這最終使得 Volta V100 GPU 相比於 Pascal P100 GPU 的吞吐量一共提升了 12 倍。Tensor Core 在與 FP32 累加結合後的 FP16 輸入資料之上操作。FP16 的乘法得到了一個全精度結果,該結果在 FP32 和其他給定的 4x4x4 矩陣乘法點積的乘積運算之中進行累加。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

新的Volta GPU架構的顯著特徵是它的Tensor Core,而最新的Turning架構也擁有Tensor Core,這也大概是為什麼這一代RTX比較貴的原因了吧(1080TI沒有哦)。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

有多快呢?官方宣稱有Tensor Core的顯示卡架構比普通的沒有Tensor Core的顯示卡訓練(train)速度最多提升12倍,預測(inference)速度提升6倍。平均差不多3倍的提速,而且這個提速是對32-bit和64-bit精度操作的。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

可以說是很強了,速度進一步提升,理論上Tensor Core可以提升計算速度,但是目前的TensorFlow-1.10.0以及Pytorch-0.4.1對Tensor Core的支援有限,還不能完全發揮作用,期待之後的更新吧。

想知道深度學習框架是否支援Tensor Core可以到官方的GITHUB上的release介面檢視更新資訊。

TensorRT

如果說Tensor Core是一個硬體核,那麼TensorRT就相當於一個軟體庫了,通常作為一個高效能的深度學習推斷(inference)的優化器和執行的引擎,是NVIDIA自家開發的。

TensorRT主要的目的是加快推斷(inference)的速度,我們在訓練模型的時候可以在大型的裝置上進行訓練,但是如果投入生產實際,我們更多關注的是推斷的速度而不是精度,在犧牲一點精度的同時如果可以增加幾倍的速度那麼就是成功的。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

我們把設計好的神經網路利用TensorRT去重新優化設計,變成統一高效的推斷網路,對部署階段有著很好的優化。

當然,作為一個軟體核,大部分的顯示卡都是支援的,但是官方還是建議使用最新的原生支援FP16和INT8型運算的顯示卡,TensorRT 3版本也開始支援Tensor Core,兩者疊加起來,加速能力簡直不要不要的。

《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

想具體瞭解的,可以看看 yq.aliyun.com/articles/58… 這篇檔案,介紹的還是比較詳細的。


《新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術》

32-bit和16-bit精度訓練推斷速度比較

總結

總的來說,如果想要用到最新的Tensor Core技術,那麼只有購買伺服器級別顯示卡或者最新出的RTX系列。但是是不是剛需呢? 其實不然,新技術固然可以增加我們訓練或推斷神經網路的速度,但是提升的這些速度對於我們學生黨來說影響並不是很大(當然有錢的除外),更何況相容性和優化還沒有落實到位,我們可以再等一等。

GTX 1080TI和RTX2080TI都是擁有11G視訊記憶體,RTX 2080TI出世後,如果1080TI適當降價的話,價效比還是非常高的,組個雙卡1080TI或許是不錯的選擇。

參考文章:
timdettmers.com/2018/08/21/…
github.com/u39kun/deep…
developer.nvidia.com/tensorrt
www.nvidia.com/en-us/data-…

文章來源於OLDPAN部落格,歡迎來訪:Oldpan部落格

歡迎關注Oldpan部落格公眾號,持續醞釀深度學習質量文:

新顯示卡出世,我們來談談與深度學習有關的顯示卡架構和相關技術


相關文章