30億美金投入!一文讀懂英偉達性能兇殘的Tesla V100牛在哪?

GTC CHINA 2017大會上,英偉達創始人兼CEO黃仁勛表示,AI已無處不在,兩股力量正推動計算機領域的未來。第一、摩爾定律已終結,設計人員無法再創造出可以實現更高指令集并行性的CPU架構;第二、深度學習正在引領軟體和計算機領域的變革。深度學習、大數據和GPU計算的結合引爆了AI革命。

本期的智能內參,我們推薦英偉達基於最新Volta架構的NVIDIA Tesla V100 白皮書,結合智東西市場觀察,盤點面向人工智慧/深度學習的計算平台戰場,解讀Tesla V100加速器和Volta GV100 GPU架構,以及給需要提升計算力的AI企業帶來的利益。如果想收藏本文的報告全文(NVIDIA-Volta架構白皮書),可以在智東西頭條號回復關鍵詞「nc215」下載。

以下為智能內參整理呈現的乾貨:

一、30億美金研發投入 GV100劍指AI

AI晶元也被稱為AI加速器或計算卡,即專門用於處理人工智慧應用中的大量計算任務的模塊(其他非計算任務仍由CPU負責)。當前,AI晶元主要分為 GPU(既滲透數據中心,橫掃DL訓練端,亦是DL推理端大頭) 、FPGA (可編程,適用於迭代升級、各類場景化應用)、ASIC(終端AI利器)。

德勤TMT最新報告顯示,2016年面向深度學習(DL)售出的GPU晶元數量約為10萬到20萬;預計2018年面向DL應用售出的GPU將達50萬片,FPGA約20萬片,ASIC約10萬片;2020年,DL加速器市場規模或達45億到91億美元。

▲德勤2017年TMT報告預計全球深度學習晶元市場

份額最高的GPU市場龍頭,就是英偉達,其次是AMD;而目前,數據中心/HPC和DL加速器方面,英偉達幾乎佔據了絕對優勢。可以說,在過去的幾年,尤其是2015年以來,人工智慧大爆發就是由於英偉達公司的GPU得到廣泛應用,使得并行計算變得更快、更便宜、更有效。

2017年5月GTC 2017大會上,英偉達發布了面向高性能計算的新一代Volta架構加速器,Tesla V100。Tesla V100加速器採用12nm FFN工藝,搭載新款圖形處理器GV100,擁有5120 CUDA、640個Tensor內核,分PCle和SXM2兩版,雙精度浮點運算能力分別可達7 TFLOPS和7.8 TFLOPS,單精度則為14 TFLOPS和15.7 TFLOPS。(翻譯一下就是:堆了很多運算器,性能,特別,兇殘。)

Tesla V100沒有公開售價,不過典型的伺服器大概要100萬元。

▲Tesla V100中的新技術

▲Tesla V100配備全新Tensor核心后深度學習運算能力達125Tensor TFLOPS

Tesla V100不僅僅是數據中心/HPC加速器,更針對深度學習演算法和Caffe2、MXNet、CNTK、TensorFlow等框架新版本進行了設計,新的流多處理器(SM)架構提供獨立、并行整數和浮點數據通路,配備全新Tensor核心,運算能力達125 Tensor TFLOPS,單精度矩陣-矩陣乘法比Tesla P100快1.8倍,混合精度矩陣-矩陣乘法比Tesla P100快9倍。據稱,Tesla V100由數千名工程師經數年開發,研發投入相當於30億美金。

二、Tesla V100軟硬體架構解讀

▲Tesla V100的正面與背面

Tesla V100採用與Tesla P100相同的SXM2主板外形,大小為140×78毫米,主要區別在於GPU由GV100代替了GP100。SXM2主板支持NVLink和PCIe 3.0連接功能,包含可為GPU供應各種所需電壓的高效電壓調節器,額定為300瓦熱設計功耗(TDP)。工作站、伺服器和大型計算系統中可應用一個或多個Tesla V100加速器。

從架構來看,Tesla V100不僅僅堆了更多更密集的運算單元以實現超強計算性能,也打通了更多的鏈路來實現資源更為高效的利用,降低功耗,並配套以CUDA 9提供了更為靈活的調度。下文提供一些Tesla V100架構思路以供啟發。

GV100:堆了84個SM 640個Tensor核心

▲含84個SM單元的完整Volta GV100 GPU

與上一代Pascal GP100 GPU一樣,GV100 GPU由6個GPU處理集群(GPC)和8個512位內存控制器組成,每個GPC擁有7個紋理處理集群(TPC),每個TPC含2個流多處理器(SM)。

含84個SM的完整GV100 GPU,總共擁有5376個FP32核心,5376個INT32核心、2688個FP64核心、672個Tensor核心以及336個紋理單元。每個HBM2 DRAM堆棧由一對內存控制器控制。完整的GV100 GPU總共包含6144KB的L2緩存。

▲NVIDIA Tesla系列各GPU比較

GV100新增的流多處理器(SM)架構提供了性能、能效和可編程方面的重大改進,主要特性包括:

1、 新增專為深度學習矩陣演算法構建的混精度Tensor核心,相較GP100在同一功率電路下訓練可提升12倍TFLOPS;

2、在通用計算工作負載中的能效提高50%;

3、L1數據緩存性能大幅提升;

4、新增SIMT線程模型,可消除之前的SIMT和SIMD處理器設計中存在的限制。

▲Volta GV100流多處理器(SM)

Tensor核心:大型神經網路訓練的關鍵

Tesla V100包含640個Tensor核心(密集運算器),這是支持大型神經網路訓練的關鍵,可為訓練和推理應用提供125 Tensor TFLOPS:每個SM有8個核心,SM內每塊處理器(分區)有2個,每個Tensor核心每時鐘執行64次浮點FMA運算。

Tensor核心及其關聯的數據路勁經自定義設計,可以較高能效大幅增加浮點計算吞吐量。每個Tensor核心都在4×4矩陣中運行,並執行以下計算:

▲Tensor核心執行矩陣乘積累加運算,D=A×B+C

其中,A、B、C和D為4×4矩陣,矩陣乘法輸入A和B為FP16,而累加矩陣C和D可以是FP16或FP32矩陣。特別指出的是,與無法同時執行FP32和INT32指令的Pascal GPU不同,Volta GV100 SM包含單獨的FP32和INT32核心,允許以完整吞吐量同時執行FP32和INT32運算,並且還可增加指令發送吞吐量。

▲Tensor核心中的混合精度乘積累加運算

事實上,Tensor核心會用於執行更大型的二維或更高維的矩陣運算,這種運算都是由這些較小元素構建而成。

▲Pascal和Volta 4×4矩陣乘法運算

Volta Tensor核心可在CUDA 9 C++ API中存取並作為線程數級矩陣運算公開。該API公開專門化矩陣負載、矩陣乘積累加和矩陣存儲運算,以高校使用CUDA 9 C++程序中的Tensor核心。此外,cuBLAS和cuDNN庫也已經更新,以提供新的庫介面將Tensor核心用於深度學習程序和框架。

L1數據緩存和性能共享

將數據緩存和共享內存功能整合進單一內存塊中,可為兩種類型內存訪問提供出色的整體性能,帶來更低延遲和更高帶寬。整合后的容量可達128KB/SM,比GP100數據緩存大了七倍以上,不使用共享內存的程序可將其作為緩存,紋理單元也可使用該緩存。

▲Pascal與Volta數據緩存的比較

計算能力7.0

GV100 GPU支持新的Compute Capability7.0,詳情參見下表。

▲GK180、GM200、GP100和GV100計算能力對比

NVLink:第二代高速互聯

NVLink最早於2016年隨Tesla P100加速器和Pascal GP100 GPU一起推出,是英偉達的高速互聯技術。Tesla V100引入了第二代NVLink,可以提供更高的鏈路速度(從20GB/s增加到25GB/s)以及每個GPU更多的鏈路(從4條增至6條),並在CPU主控、緩存一致性和可擴展性方面實現改進。

▲「配備V100的DGX-1」中使用的混合立體網路NVLink拓撲

優化HBM2內存架構

Tesla P100是首個支持高帶寬HBM2內存技術的GPU架構。Tesla V100的HBM2更快、更高效:HBM2內存由內存堆棧(與GPU位於同樣的物理包)組成,每個堆棧使用四個存儲器晶片,從而獲得最大為16GB的GPU內存,與傳統GDDR5設計相比,可顯著節省能耗和佔用空間,從而允許在伺服器中安裝更多GPU。

此外,Tesla V100 HBM2內存子系統支持通過糾一位檢二位(SECDED)糾錯碼(ECC)來保護數據,為已受數據損壞影響的計算應用程序提供更高可靠性。這在大型集群計算環境中尤為重要,因為其中的GPU需處理非常大的數據集亦或長時間運行應用程序。

▲V100上HBM2內存加速與P100的對比

複製引擎支持多處理器數據傳輸

英偉達GPU複製引擎可在多個GPU間或GPU與CPU間傳輸數據。

之前的複製引擎需要固定(不可分頁)源內存區域和目標內存區域,而新的Volta GV100 GPU複製引擎可為沒有映射至分頁表的地址生成分頁錯誤,然後內存子系統可處理分頁錯誤,並將地址映射至分頁表,之後複製引擎便可執行傳輸。目前,此功能可用於ATS系統中。

CUDA:通用并行計算架構的改進

▲基於CUDA平台的深度學習創新時間線

CUDA是英偉達建立的并行計算平台和編程模型,為開發者提供基於英偉達GPU的開發環境,以便其使用C和C++擴展構建大規模并行應用程序。Volta架構的改進將進一步增強CUDA應用程序中并行線程的功能,使CUDA平台的能力、靈活性、生產力和可移植性實現下述提高:

1、獨立線程調度優化

▲Volta獨立線程調度功能:可交錯執行離散分支中的語句,幫助執行精細并行計算

Volta GV100是首款支持獨立線程調度的GPU,允許GPU執行任何線程,從而程序中的并行線程之間實現更精細的同步與協作。

Pascal和早期英偉達GPU均以SIMT形式執行含32個線程的線程組,雖然減少跟蹤線程狀態所需的資源數量,重收斂線程以最大化并行性,但離散去相同線程束或不同執行狀態的線程無法互相發送信號或交換數據,從而產生不一致性。

Volta調度優化器通過在所有線程之間實現等效併發(通過無飢餓現象演算法,確保所有線程對爭用資源擁有相應的訪問許可權,將同一線程束中的活動線程一併分組到SIMT單元,以子線程數粒度進行離散和重新收斂,執行相同的代碼),避免了上述問題。

2、多進程服務

▲Pascal中的基於軟體的MPS服務和Volta中硬體加速MPS服務對比

多進程服務(MPS)是Volta GV100架構的一項新功能(Pascal的CUDA MPS是一個CPU進程),專門用於在單一用戶的應用程序中貢共享GPU。

Volta MPS可為MPS伺服器的關鍵組件實現硬體加速,使MPS客戶端將工作直接提交至GPU中的工作隊列,降低提交延遲並增加總吞吐量(特別是用於高效推理部署),從而提升性能並改進隔離(服務質量和獨立地址空間),增加MPS客戶端的最大數量,將其從Pascal上的16個增加為Volta上的48個。

3、統一內存定址和地址轉換服務

CUDA 6曾推出有限形式的統一內存定址,以簡化GPU編程,該功能在Pascal GP100中通過硬體頁面錯誤和更大的地址空間得到改進。Volta GV100中,全新的存取計數器功能可追蹤GPU存取其他處理器內存的頻率,幫助確保內存頁面移動至訪問頁面最頻繁的處理器的物理內存。此外,Volta還通過NVLink支持地址轉換服務(ATS),為GPU提供對CPU內存的完整訪問許可權。

4、協作組

▲協作組在粒子模擬中的應用

并行演算法中,線程通常需要通過協作來執行集群計算。構建這些寫作代碼需要對協作線程進行分組和同步。因此,CUDA 9引入了協作組,用於組織線程組的全新編程模式。協作組編程元素由以下元素組成:

1、專為深度學習矩陣演算法構建的全新混合精度FP16/FP32 Tensor核心;

2、表示協作線程組的數據類型;

3、CUDA啟動API定義的默認組(例如,線程塊和網格);

4、將現有組劃分為新組的運算;

5、同步組中所有線程的障礙運算;

6、檢查群組屬性以及特定於組的集合運算。

協作組以子線程塊和多線程塊粒度顯示定義線程組,並且可以執行集合運算,讓開發者以安全、可支持的方式通過靈活同步功能針對硬體快速進行各種優化;協作組還實現了抽象化,讓開發者能夠編寫靈活、可擴展的代碼,該代碼可在不同的GPU架構中安全運行,包括擴展至未來GPU功能;Volta獨立線程調度也以任意交叉線程束和子線程數粒度,為線程組實現更靈活的選擇和劃分;Volta同步真正實現了每線程操作。

三、推薦GV100的理由

GPU比CPU擁有更多的運算器,只需要進行高速運算而不需要邏輯判斷,其海量數據并行運算的能力與深度學習需求不謀而合,也成為了高性能計算進一步發展的主流方案。而GV100,作為GPU界佔據絕對優勢的英偉達的新力作,具備了以下特點:

1、運算能力超強

GV100堆了84個SM、640個Tensor核心,相較GP100在同一功率下訓練可提升12倍的TFLOPS。相應的,Telsa V100運算能力達125 Tensor TFLOPS,可以說是深度學習上游訓練端的一個大殺器。

截至目前,Telsa V100已經用於英偉達首款深度學習和分析專用工作站DGX Station;阿里雲、百度和騰訊等企業均已在其雲服務中部署Tesla V100;華為、浪潮和聯想等原始設備製造商也已採用Tesla V100來構建新一代加速數據中心。

2、新架構提升效能

Volta新增流多元處理(SM)架構,使用新的分區方法來提升SM利用率和整體性能。

全新的Volta SM的節能效率相較上一代Pascal產品提升50%,在同一功率電路下可顯著提高FP32和FP64的性能;專為深度學習設計的Tensor核心在訓練方面可提供高達12倍的TFLOPS峰值,推理方面可提供6倍的TFLOPS峰值。相比之前幾代的GPU,GV100支持同時運行更多的線程、線程束和線程塊,實現了性能、效能、可編程性方面的重大改進。

3、開發生態成熟

CUDA因統一而完整的開發套件,豐富的庫,以及對英偉達GPU的原生支持而成為開發主流,目前已開發至第9代,開發者人數超過51萬。CUDA工具包9.0版包含新的API以及對Volta功能的支持,並可以實現更輕鬆的編程。Caffe 2、MXNet、CNKT、TensorFlow等深度學習框架新版本以及其他框架皆可發揮出Volta的強大性能,縮短訓練時間並獲得更高的多節點訓練。

4、有19439家合作組織

剽悍的硬體配上成熟的CUDA開發環境,英偉達已經形成,並正在鞏固自己的AI生態。據稱,在深度學習方面與英偉達有合作的組織已有19439家,覆蓋金融、汽車、教育、互聯網等各類領域。

▲在深度學習方面與英偉達有合作的組織

▲英偉達GPU平台

智東西認為,Tesla V100的架構設計中,我們看到了英偉達強大的硬實力積累(堆運算器的能力),以及「并行思維」的啟發(分類、同步等),結果就是非常兇殘的浮點運算能力。而對於企業而言,浮點運算能力、功耗和成本是選擇GPU的三個主要考量,再加上面對AI新藍海的野心,所以我們會看到諸如百度這樣,既和英偉達哥倆好,又跟AMD搞GPU技術聯合實驗室。毋庸置疑的是,AI晶元戰已經打響,傳統晶元商、新入玩家已經開始在佔山頭了。

深度學習上游訓練端來看,GPU是當仁不讓的第一選擇,而英偉達先發的構架升級以及廣泛成熟的開發生態環境優勢明顯,佔據了絕對優勢。目前來看,英偉達數據中心GPU的主要競爭對手有GPU市場佔有率第二的AMD、手握FPGA的英特爾和手握TPU的谷歌。

深度學習的下游推理端來看 ,除了主流的GPU晶元之外,還包括CPU、FPGA( Xilinx、英特爾Altera、Lattice 及 Microsemi等)、ASIC (英特爾Nervana Engine、Wave Computing數據流處理單元、英偉達的DLA、谷歌TPU、寒武紀NPU等),競爭態勢中英偉達依然佔大頭。但隨著AI的發展,FPGA的低延遲、低功耗、可編程性和ASIC的特定優化和效能優勢將滿足一些特定方向的需求。

你可能會喜歡