如何評價英偉達發布的Tesla V100 計算卡?

 2017-09-19 09:43:52.0

5120顆CUDA!Nvidia正式發布Tesla V100計算卡

815mm^2!簡直就是驚了!





吕超

GPU Architect at NVIDIA

原文: 新一代 Volta 架構解析 - 知乎專欄

老黃在 GTC 2017 上發佈了 Nvidia 新一代的 GPU 架構 Volta,以及一塊巨無霸(815 mm²)晶片 GV100。


與以往不同的是,這一代架構設計把更多的精力放在了提高深度學習的性能上,幾乎所有的新特性都與之有關。


Tensor Core



作為 Volta 最主要的新特性,Tensor Core 的加入使兩個 4 x 4 大小的矩陣乘法運算可以在一個週期內完成,相當於 4 x 4 x 4 = 64 個乘加運算,也就是說單個 SM 達到了 1024 FLOPS 的理論性能。


這樣設計背後的邏輯是更多的提高資料在 datapath 中的複用。設想若按照順序依次計算這兩個 4 x 4 矩陣中的每一個元素,則一共需要 64 x 2 = 128 次寄存器讀寫。但若將其設計成一條指令,則只需要 4 x 4 = 16 次寄存器讀寫(假設兩個 FP16 被打包在一個 FP32 寄存器中)。


首先受益於 Tensor Core 的用戶,是各位正在苦逼 “煉丹” 的人工智慧科學家們,既然可以大幅減少深度學習的訓練時間,等於人生的有效時間又多了幾年。



可配置的 L1 Cache 和 Shared Memory


早期的 Kepler 架構中一個頗為好用的特性就是 CUDA 程式師可以根據應用特點,自行配製 L1 Cache 和 Shared Memory 的大小。在 Volta 架構中,我們又重新引入這個特性,並且將兩者的總大小做到了 128 KB。相信這對於有 Transpose,Histogram 需求的應用,或者嚴重依賴 L1 cache 命中率的應用都會帶來不小的提高。


獨立的執行緒調度


SIMT(Single instruction, multiple threads)模型中一個被經常詬病的問題是,若一個 Warp 內的執行緒發生了 ”分道揚鑣“ (control flow diverge)的情況,往往會產生意想不到的鎖死,且執行緒之間也一直無法細細微性的同步(synchronization)或搶佔(preemption)。


作為 Volta 的 Soul 之一,Thread-Is-A-Thread 的特性讓每一個執行緒都有了自己的 PC 和 Call Stack,從程式設計模型上變得更加接近 MIMD(Multiple Instruction, Multiple Data)。



一個典型的應用場景是 32 個執行緒併發的往一個鏈表中插入節點,得益于 Thread-Is-A-Thread,未來我們可以在 GPU 上執行如下的代碼,且不用擔心各種未知的鎖死。


__device__ void insert_after(Node *a, Node *b)

{

    Node *c;

    lock(a); lock(a->next);

    c = a->next;


    a->next = b;

    b->prev = a;


    b->next = c;

    c->prev = b;


    unlock(c); unlock(a);

}


寫在最後


Volta 架構的推出意味著 Nvidia 越來越重視其 GPU 上通用計算(深度學習)的性能,以期打開人工智慧計算市場。從股價上的回饋來看,投資者們也很看好這一路線。


Nvidia 上海 Compute Arch 組作為這一領域的重要的團隊之一,參與了這一次 Volta 架構的整個設計及驗證環節,歡迎更多有志於深度學習以及體系結構設計的同學加入我們。詳情請參考:[上海] NVIDIA Computing Architecture 組招聘

空明流轉

計算機圖形學、C++、編程 話題的優秀回答者

晶體管多就是粗暴,大力出奇蹟啊!

應用多用什麼,我們就在硬件上實現什麼,這妥妥地是做DSP的思路啊!


高洋

高性能計算,異構計算,x86,ARM,GPU,高性能嵌入式系統

基本上乾掉了絕大多數AI芯片startup… tensor core的絕對性能處理矩陣運算,通用gpu部分處理其它運算,還有大內存大帶寬加持,各方面都沒有太多短板。google的tpu和它比更像個半成品…


更多討論請見 https://www.zhihu.com/question/59680681


文章來源:知乎