腾讯机智在GTC 2019
|?導語?騰訊機智團隊在今年的GTC大會上做了介紹機智平臺的報告,本文總結了GTC的一些主要內容以及筆者和同事的見聞。
GPU?Technology?Conference:GPU技術大會是并行計算和人工智能公司英偉達在美國加州硅谷中心圣荷西舉辦的年度技術大會。自2009年開辦以來已經舉辦十屆,成為并行計算方面全世界最盛大的技術會議之一。在GTC上進行研究成果的匯報代表了計算加速領域工作的廣泛同行認可以及領先水平。
本次GTC十周年的主題演講包括英偉達GPU在圖形學,數據科學和嵌入式領域的最新進展。CUDA下載量和NVIDIA顯卡去年銷量持續增長,如今對于英偉達來說,加速芯片不僅僅是芯片本身,還需要整個生態系統。因此今年NVIDIA發布了CUDA-X。把旗下所有的GPU加速庫都以CUDA-X的品牌名稱重新整合:
[ 黃仁勛介紹CUDA-X技術棧 ]
整個技術棧底層是四個專用領域的顯卡系統:
RTX類顯卡,用于圖形渲染
DGX系統,用于深度學習訓練
HGX系統,用于高性能計算
AGX片上系統,用于自動駕駛的AI計算
在CUDA這個開發框架之上,也整合了針對不同領域的庫,包括:
Rtx:?圖形渲染
Hpc:?高性能計算
AI:?深度學習加速
Dr:?自動駕駛
Is:?Issac?機器人
Cl:?Clara?健康醫療
Me:?metropolis?智慧城市
另外,CUDA庫家族里新增并做出重大改進的一些加速庫包括:
cuDF,數據分析庫
cuDNN,深度學習加速庫
cuML,傳統機器學習加速庫
DALI,數據預處理加速庫
同時黃仁勛提出了公司的新口號:
PRADA?(PRogrammable?Acceleration?Domains?Architecture),即:針對不同領域,基于同一架構的可編程的加速方案。
在推廣RTX顯卡方面,世界上兩個最大的主流商業游戲引擎Unreal虛幻以及Unity都支持了新的光線追蹤功能。數個AAA級游戲大作也在游戲中開始支持實時的光線追蹤。另外,也有開發者提出能否公開RTX的調用接口讓開發者對其進行創新的使用。另外十分激動人心的是主題演講上公開的經典游戲雷神之錘II使用RTX添加現代光線追蹤效果的demo。源代碼也會在一個月內公開!
在數據科學方面,英偉達發布RAPIDS:?一個開源的數據科學庫軟件集合。RAPIDS專注通用的數據處理,包括DataFrame?API和一些常用的機器學習算法整合,以及端到端的管線加速。同時支持多機多卡部署。世界級的云服務及數據分析公司databricks和數據分析可視化公司omni-sci都開始使用NVIDIA的RAPIDS加速技術。傳統的NVIDIA顯卡支持超算,屬于scale-up,讓單機性能達到極限。高性能計算是主要的應用領域;而分布式計算領域屬于scale-out,專注容錯和可擴展性,不同機器計算性能不同。數據科學的應用屬于這兩個極端的中間。也是NVIDIA以后要著重提升的能力,需要既能scale-up,也能scale-out。為了這一目標,英偉達發布了新的為數據處理設計的服務器,裝有4個T4芯片,260TFLOPs的FP16算力,以及64GB的GDDR6顯存。
最后,英偉達為了支持IoT和邊緣計算的應用,發布了支持AI應用的SoC?Jetson Nano。
Tensor Core
自從Volta架構引入Tensor?Core以來,英偉達一直在大力推廣Tensor?Core的使用,因為在V100?GPU上,每個Streaming?Multi-Processor上都配備8個Tensor?Core,以每個clock?cycle運行64個浮點FMA操作來看,一個clock?cycle總共可以運行512個FMA操作。讓Volta架構獲得最大的使用率,良好的使用Tensor?Core是非常關鍵的步驟。Turing架構上的Tensor?Core更是增加了對int8和int4的支持,能進一步提高推理的性能。英偉達宣稱使用Tensor?Core進行矩陣運算可以輕易的在訓練時達到2-5倍的提速,同時降低一半的內存訪問和存儲。在介紹Tensor?Core性能和調試方法的一場報告里,英偉達工程師提到了幾種使用Tensor?Core的方法,從底層到高層依次為:
使用CUDA中的wmma?API;
使用諸如cublas和cutlass這樣的矩陣運算庫;
通過框架內打開tensor?core的開關使用,包括pyTorch和TensorFlow;
使用框架上的高層庫,例如pytorch的Apex矩陣運算庫。
同時,報告中還提到了調試Tensor?Core的方法。主要使用的工具是NSight?System。可以通過命令行的:運行并生成report.qdrep的文件。在V100卡上,使用tensor?core的kernel在名字內會包含s884,可以用這個簡單的辦法來確認系統是否使用了tensor?core。
同時,還可以使用NSight?Compute來對Tensor?Core的性能進行監測:這個工具還可以設定只監測第N次運行的tensor?core的kernel性能:
表示只監測所有的stream上第5次運行的包含s884?的kernel(tensor?core?kernel)性能。
或者通過設定監測的指標來過濾tensor?core的信息:
CUDA新特性
CUDA作為GPU上主要的編程語言,其技術細節和介紹歷來都是GTC非常重要的一部分。今年,CUDA的首席架構師Stephen?Jones進行了一小時的報告,詳細描述了圖靈架構下的新的Tensor?Core以及CUDA?10里的一些新的特性。新的圖靈架構的Tensor?Core能提供65TFLOPS的FP16算力、130TeraOPS的INT8算力,以及260TeraOPS的INT4算力。通過調用nvcuda::wmma::experimental,研究者們可以試驗各種低精度訓練方法。
基于模板類,能夠靈活構建不同類型的矩陣乘法、element-wise操作和簡單的kernel?fusion的CUTLASS?1.3的性能在一些常用的情況下也都達到或超過矩陣乘法專用庫cuBlas性能的80%。同時,改進的線程調度機制也讓一些并發算法如Trie查找的性能在Volta/Turing架構上大幅提高。另外,CUDA一改以往只能通過stream來啟動的方式,增加了通過有向無環圖來描述任務,并啟動的方式,對于超過15個節點的任務圖來說,能夠體現任務啟動時的優勢。這項新的特性用來迅速的把一個任務圖里的kernel工作流映射到CUDA,主要能夠使推理模型的運行速度加快。另外,CUDA的編譯器nvcc也進行了很多性能改動。CUDA庫家族還推出了包括張量計算庫cuTensor、輕量級矩陣計算庫cuBLASLt、JPEG解碼庫nvJPEG、以及圖計算庫cuGraph在內的多個新的庫。
國內公司阿里、百度、京東、曠世、平安保險等均派出團隊參會并分享在AI、HPC領域的最新研究和應用成果。
我的同事戎海棟和我在3月20日下午一點給與會聽眾做了標題為:《Training?ImageNet?in?Four?Minutes?with?Tencent?Jizhi》的主題報告。
在50分鐘的時間里,我們介紹了去年夏天發布在ArXiv上,打破最快ImageNet訓練記錄,并在去年底被收錄在NeurIPS?2018的Workshop?on?Systems?for?ML?and?Open?Source?Software的論文:
Highly?Scalable?Deep?Learning?Training?System?with?Mixed-Precision:?Training?ImageNet?in?Four?Minutes。
這篇論文的技術創新點我的同事周飛虎已經在這篇文章中詳細闡述。我們不僅利用算法、模型、通信上的創新,第一次將分布式ImageNet訓練的batch?size突破了64K,并且還第一次將訓練時間降低到分鐘級別。之后的數次紀錄提升,均整合了我們在模型改造和通信策略方面的優化。同時在擴展率和性價比上我們仍然以ResNet-50模型的1024卡訓練99.2%擴展率和在相對較低性能的P40上達到6.6分鐘訓練時間成為近期不斷涌現的各類分布式ImageNet訓練算法中的冠軍。我們分享了一些關鍵技術的細節,包括結合LARS算法的半精度訓練、梯度融合、以及混合分層和環形規約的通信優化。這些通用的優化策略已經被整合進騰訊機智,以服務公司內部更廣大的用戶群體。
我們不止關注理論研究,也重視理論研究在實際產品中的應用。分享的后半段,我的同事海棟介紹了機智平臺作為以分布式和性能加速為特性的分布式訓練平臺在公司內部的多項典型應用,包括王者榮耀強化學習游戲AI模型的訓練加速,我們在128K超大batchsize基礎上,128卡訓練速度相對基線8卡提升13.8倍,接近”線性”擴展,1v1場景樣本吞吐量超過OpenAI?1v1場景;?同時,在大規模語音識別訓練方面,機智平臺實現了107倍的訓練加速,將原有3個月訓練時間縮短到僅有20小時,大幅提升業務部門算法迭代速度。
過去一年,機智平臺的多項研究成果在公司內多個產品落地,產生了實際價值,在訓練加速方面積累了豐富的理論和工程經驗。在理論研究成果應用于工程實踐的過程中,我們克服了不斷出現的新問題,比如算力容災、調參調優成本高、如何滿足親和性等問題,在分享中,我們給出了機智平臺在這些問題上的解決方案。
最后,我們展望了基于目前的優勢,平臺上還在開展的諸如AutoML、模型分析、半異步同步訓練等新功能,這些內容引起了聽眾的極大興趣。分享后,我們與阿里、曠世科技、索尼以及百度等旁聽的同行們進行了長時間交流。從反饋的信息來看,我們的分布式訓練通用優化加速技術在很多公司的業務上都有強烈的需求,我們公開的論文和技術也一定程度上幫助了這些同行搭建他們自己的訓練系統。
更多精彩的報告內容,讀者可以在會議結束一個月之后的官方網站上找到。
騰訊報告pdf鏈接:
https://on-demand.gputechconf.com/gtc/2019/presentation/_/s9146-training-imagenet-in-four-minutes.pdf
騰訊報告視頻解讀版:
機智平臺入口:
http://c.oa.com/r/home
總結
以上是生活随笔為你收集整理的腾讯机智在GTC 2019的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入浅出Android BufferQu
- 下一篇: 深入浅出百亿请求高可用Redis(cod