如何看待NVIDIA 即將開源的DLA?

The NVIDIA GPU Tech Conference 2017 Keynote Live Blog

「NVIDIA is going to open source Xavier"s deep learning accelerator」


最近我們DLA團隊一直在搞這個,為了符合開源標準,各種加班加點修改設計,已經接近尾聲。第一版正式release很快就要跟大家見面了,代碼文檔都有,請大家關注GTC China2017大會(9月25號開始),老黃應該會公布具體內容的。


似乎很少有人關注到這樣一個消息,但又非常重要,因為這裡面包含了幾層意思:

  1. Nvidia 也在研發類似於 TPU 的加速器。
  2. Xavier 中將有深度學習的任務直接跑在 DLA 上,而不只是由 GPU 提供加速。
  3. Nvidia 選擇將其開源,意味著更多的 Startup 和研究機構可以基於此開發 Inference 加速器。

其中第三層的意義最為重大,很難想像之前被 Linus 爆粗口的老黃在 AI 時代玩起了開源,更想不到一上來就是開源硬體架構。


我在網上沒有找到這個幻燈片非常清楚的版本,所以還是自己把這個Deep Learning Accelerator的框圖再畫一下吧。


首先,這個硬體加速器和我們看到的很多設計類似,核心是一個MAC Array。它的配置,2048個8比特整型操作或者1024個16bit浮點操作也算是一個中規中矩的選擇。而其它部分主要是圍繞這個MAC Array實現有效的輸入輸出(Weight和Activation數據)的電路。首先是通過一個輸入的DMA把數據從memory中取出,然後把weight和activation數據分別放到一個Unified Buffer裡面。這個buff的大小是512KB,這個數值也是一個比較常見的配置。再後面是對數據的預處理,包括兩個功能,第一個是對稀疏weight的解壓縮,這也意味著weight是以壓縮的方式存儲的,可以節約存儲空間,以及訪問Memory的帶寬。第二個是對輸入進行Winograd變換,這說明Nvidia是使用Winograd方法進行卷積運算優化的。之後就是將數據發給MAC array進行運算,這裡的細節就不知道了。如我之前文章中介紹過的,MAC陣列的設計也有很多方法,重點是數據怎麼流動(脈動方式,廣播方式,多播方式,NoC等等)。之後的處理就比較簡單了,包括累加器;後處理,主要是各種激活函數(應該和TPU中MAC array後的處理相似,參考脈動陣列 - 因Google TPU獲得新生);以及寫回Memory的DMA。最後所有這些模塊由一個「Tensor Excution Micro-controller」來控制。之前在一個新聞里看到「To spread the DLA impact, Nvidia will open source instruction set and RTL for any third party to integrate. 」如果這個描述是準確的,這個Micro-controller應該也有自己的指令集。

從目前看到的這個框圖來看,Nvidia的Deep Learning Accelerator基本上可以說是個中規中矩的設計,並沒有太出乎意料的地方。相比技術而言,更令人吃驚的是Nvidia做出的「Open Source」決定。

對此我做了一些進一步的分析,參見從Nvidia開源深度學習加速器說起 - 知乎專欄


這個有點厲害啊!

RTL的代碼質量確實不錯,不過CModel咋是空的呢。。。

@龔黎明


各種感測器都可以收益


已發布

http://nvdla.org/

軟硬體路線圖見

http://nvdla.org/roadmap.html


這波加速器熱潮讓體系結構重新火起來了,期待百花齊放。


GPU在AI走到頭了,化蝶是必須的,重點是大集群和大行業,其它碎片用DLA佔領,建立護城河,這是mind share問題了,DLA開源,吃兩頭大的,小的讓生態圈自己找便宜的硬體方案好了,用生態實現壟斷。

另外GPU是批處理,這會是瓶頸的,所以往通用非同步可編程方向演進 。


有代碼鏈接沒有,我在github上面沒有搜到,可以分享下嗎?


推薦閱讀:

安裝 NVIDIA 驅動導致 Windows 無法啟動該如何解決?
N卡和A卡在建築學人員使用上各自的優劣是什麼?
AMD 和 NVIDIA 顯卡在平面繪圖靜態圖像上還有畫質色彩區別嗎?
如何評價 Tegra K1 64 Denver CPU 的體系結構設計?

TAG:人工智慧 | NVIDIA英偉達 | 開源硬體 | 深度學習DeepLearning | DLA |