陳天奇的tvm更新了:VTA,開源AI晶片棧

2020-12-04 量子位

陳天奇 發表於 tvm社區 量子位 搬運 | 公眾號 QbitAI

華盛頓大學陳天奇博士近日在tvm社區介紹了VTA(Versatile Tensor Accelerator)項目,量子位全文搬運如下。

問題:不只是硬體設計

2016年的秋天,我收到我們系硬體的教授Luis的郵件邀請暢談合作計劃,當時正在醞釀TVM計劃的我這樣認識了同系的法國同學Thierry,開始了我們將近兩年的合作。AI晶片和硬體加速是深度學習發展寫下一個大的方向,而如何設計專用加速晶片無疑是大家都感興趣的話題,Thierry也不例外。加速晶片專用性強,反而可以使得邏輯設計更加趨於簡單,在設計思路上面也可以更加開放,不用受到傳統指令集和功能完整性因素的制約,正好適合在研究前沿的高校同學一展身手。

然而,當我們的合作真正開始的時候,才發現問題比原來想的要困難的多:深度學習晶片的主要問題遠遠超過了硬體本身。深度學習硬體真正的目標,是希望大家都可以把自己的深度學習的模型跑在AI晶片上。而加速器帶來的特殊定製導致對於每個加速器,我們都需要重新設計一套驅動,以及上面的軟體棧—-包含編譯,優化和部署模塊。 雖然以高校研究人員的能力可以設計出不亞於工業級別的晶片設計,但是他還需要重頭打造所有的這些模塊,才可以讓大家都真正的把自己的模型運行在他的加速器之上。

軟體棧設計本身的巨大壓力成為了讓我們的項目完成的一道大大的鴻溝。而反觀現在的行業現狀,不論是高校還是公司,大家都面臨的同樣的一個問題 — 深度學習晶片從來不只是硬體的問題,而是涉及到一個從硬體,到驅動,到編譯優化部署,再到模型本身的全棧問題。

一直以來我們不斷在思考這個問題:如何降低AI晶片設計門檻,讓每一個人都可以玩深度學習硬體加速和系統開發。

今天,由Thierry領銜設計,我合作參與的項目VTA(Versatile Tensor Accelerator)作為TVM stack的一部分正式亮相,也給出了對於這個問題的一個答案。

VTA是什麼

VTA的全名叫做Versatile Tensor Accelerator,直譯過來為靈活的張量加速器。首先,VTA是一個完全開源的深度學習加速器。但是VTA不光包含了加速器設計本身,完整的驅動,tvm編譯的整合和直接從tvm前端python編譯部署深度學習模型的完整開源工具鏈。本次發布的VTA包含了模擬器和FPGA部署模塊。當然因為設計本身完全開源,有興趣的同學也可以直接基於目前的設計進行流片設計。

作為tvm社區的一部分,VTA對於不同的人有著不同的意義:

對於硬體設計者而言,VTA就像一個硬體和軟體棧的藍圖。為不論是基於VTA擴展定製,或者是給自己的加速器增加TVM的支持提供詳細的參照。硬體設計者也可以通過tvm快速的直接在自己的硬體上運行深度學習程序,減少開放開銷。VTA本身也會不斷演化發布各種可定製設計來支持各種應用的需求。對於硬體設計研究者而言,VTA提供了一套從軟體到硬體完全開源的測試平臺。

對於深度學習的從業人員來說,新的深度學習優化往往需要考慮到加速硬體的特性。如何讓系統支持未來的各種加速器優化成為了系統設計人員頭疼的問題。VTA的設計總結了現在的深度學習加速器的特性,並且會不斷更新反應最新的研究成果。系統設計者可以通過VTA為目標來完成優化深度學習加速器的一個基石。這也是TVM社區加速器支持發展的路線之一。同時完全開放的設計帶來了更多軟硬體結合設計的機會。對於深度學習算法同學來說,有一個開放的硬體平臺可以讓大家更好地研究如量化,低精度,壓縮和設計針對加速硬體優化的模型。

設計細節: 精簡硬體和軟硬體協同設計

VTA的設計在同時發布的論文中有詳細解說,麻雀雖小,五臟俱全,基本反應了TPU數據流風格的AI加速器設計經驗。我就講一些個人的體會。VTA的設計總結了目前已經有的深度學習晶片的設計經驗。最後設計的結果是我和Thierry在兩年之內不斷討論凝練的結果。

一開始Thierry給出的設計,比較偏向於複雜指令集(CISC)和固定的流水線 ,但我們發現RISC的微指令變成加上CISC訪存和單元張量指令混合的風格可以做出更好的設計。原因非常簡單,如果把碰到的問題都通過硬體的手段來解決,勢必會給硬體增加很多負擔。以深度學習應用為例,一般TPU類的加速器會有一個矩陣乘法核心,而卷積等操作都會轉化到這個矩陣乘法核心來做。CISC的設計方式會使得我們的指令集裡面直接有一個conv2d的卷積操作,然後由硬體來把這個指令解析成微指令。但是這麼做並不是最好的,因為光是卷積,就需要支持stride, dilation,如果對於醫學圖像應用,我們需要支持三維卷積。因為細微的應用差別就需要重新改變硬體顯然並不是我們想要的。這一點其實也體現在了深度學習加速器的學術研究上 — 大家都會說我們的硬體設計了XX功能解決了XX問題。比如我之前在會議上有看到專門用於處理deconvolution的GAN加速器。

但是事實上,並非所有的問題都適合在硬體解決。針對剛才的conv2d的例子,雖然深度學習晶片的核心是矩陣乘法或者卷積單元,但是如何利用這些簡單的基本單元組合成我們想要的操作的微指令本身,其實可以直接暴露給軟體來可編程。這樣的設計讓硬體「越來越笨」,而把更多的任務交給軟體也來接。這正是RISC的思想。當然天下沒有免費的午餐,更加靈活的設計需要更多的軟體的支持,這也是VTA在tvm stack中協同設計的原因。

當然,深度學習加速器肯定和傳統的RISC不同 —傳統的CPU的指令為單個寄存器指令,一定程度上VTA的loop源語類似於比較靈活的表達loop的CISC。但是把大的任務打碎成基本的張量計算單元的這樣的思想是一致的。這樣的設計涉及到更多的軟硬體協同,但是一旦處理的當,也可以使得加速器變得更加靈活。比如VTA目前的設計可以直接支持是誰三維卷積,對於之前的GAN加速器的例子也都可以直接通過編程實現。

VTA裡面最讓我喜歡的設計是顯式的控制流依賴操作。利用這些控制流依賴我們可以直接在軟體層面實現動態的流水線,達到掩蓋內存開銷的目的。有趣的是,當我們回過頭來看這個過程時候,在VTA設計的這個過程我們不斷重新發現了計算機體系結構教科書裡面要解決的問題。比如內存讀寫掩蓋的這個技術一定程度上可以看成是SMT(simultaneous multithreading),我們現在的系主任是主要的發明人之一。為了用好這個設計,我們必須在軟體層面做出創新,但是反過來使得VTA可以擁有更加靈活的流水線依賴。

除了控制流之外,我們還直接為VTA設計了一個完整的JIT驅動,並且可以通過RPC直接在自己筆記本上遠程運行FPGA加速器實現,真正做到用python去編寫加速器程序。這些設計無一包含了軟體和硬體協同設計的痕跡,這也需要軟體和硬體專家的同時努力。我相信未來的深度加速器也會往「更加聰明的軟體,更加笨的硬體」,和更多軟硬體協同方向發展。

未來展望

作為TVM社區加速器支持的重要一環,我相信VTA可以使得大家都可以玩加速器的目標更近一步。當然VTA的設計並非完美,我們也會不斷的完善和擴展硬體和軟體層,同時結合TVM社區的其他模塊一起來做聯合的優化。

圍繞這個問題,這個方向還留下包括硬體抽象,協同設計,模型表示等許多非常有趣的問題等著大家去探索,也歡迎更多的小夥伴加入TVM社區。

相關焦點

  • 自動生成硬體優化內核:陳天奇等人發布深度學習編譯器TVM
    TVM 項目負責人陳天奇表示,「我們的框架允許開發人員快速、輕鬆地部署和優化大量硬體設備上的深度學習系統。」項目連結:https://github.com/dmlc/tvm深度學習如今無處不在且必不可少。這次創新部分得益於可擴展的深度學習系統,比如 TensorFlow、MXNet、Caffe 和 PyTorch。
  • 陳天奇等人提出TVM:深度學習自動優化代碼生成器
    TVM 是由華盛頓大學在讀博士陳天奇等人提出的深度學習自動代碼生成方法,去年 8 月機器之心曾對其進行過簡要介紹。該技術能自動為大多數計算硬體生成可部署優化代碼,其性能可與當前最優的供應商提供的優化計算庫相比,且可以適應新型專用加速器後端。
  • 2017中國AI英雄風雲榜技術創新人物候選人之陳天奇
    陳天奇陳天奇,華盛頓大學計算機系博士生,此前畢業於上海交通大學ACM班,研究方向為大規模機器學習。
  • 陳天奇任 CTO,華盛頓大學TVM團隊創業,獲390萬美元種子輪融資
    作為機器學習領域知名的青年華人學者,陳天奇加入創業公司的消息引起了業內極大的關注。今日,OctoML 宣布完成 390 萬美元種子輪融資,主要面向缺少源或知識來構建優化深度學習模型的群體。 本輪融資由麥德羅納風險投資集團領投,Amplify Partners 參投。
  • 華盛頓大學成立SAML實驗室:陳天奇參與,探索跨系統堆棧多層問題
    安妮 發自 凹非寺量子位 出品 | 公眾號 QbitAI△ 陳天奇昨天,TVM、XGBoost、cxxnet等機器學習工具的作者陳天奇宣布,自己所在的華盛頓大學新成立了一個實驗室陳天奇本人在微博上介紹說,實驗室將有整合系統、體系結構、機器學習和程序語言4個方向的團隊推進深度學習算法、系統的硬體和協同設計研究和TVM等開源項目。△ 陳天奇微博截圖四個方向華盛頓大學為什麼想建立這個實驗室?
  • 資料| 陳天奇介紹Xgboost原理的PPT
    【 圖片來源:https://xgboost.apachecn.org/  所有者:https://xgboost.apachecn.org/ 】歡迎大家添加研習社小學妹微信(aiyanxishe),小學妹拉你加入(備註求職)。
  • 阿里將 TVM 融入 TensorFlow,在 GPU 上實現全面提速
    ((batch, K, N), name='B')k = tvm.reduce_axis((0, K), 'k')C = tvm.compute((batch, M, N),         lambda b, y, x: tvm.sum(A[b, y, k] * B[b, k, x], axis = k),         name = 'C')
  • 陳天奇明年將加入CMU出任助理教授
    華盛頓大學博士生、SAMPL Lab和MODE Lab成員陳天奇,今天在推特上宣布,將於明年秋天加入卡內基梅隆大學(CMU),擔任助理教授。陳天奇在AI領域有諸多貢獻,他參與構建了三個廣為使用的機器學習系統,包括:TVM、XGBoost以及Apache MXNet。2012年,陳天奇還曾獲得KDDCup的冠軍。
  • 陳天奇:深度學習編譯技術的現狀和未來
    作者:陳天奇傳統的深度學習框架採用人工優化算子,然後建立運行時圖解釋器來解決內存分配調度等問題。深度學習編譯器技術路線一般指在優化過程中採用了自動或者半自動的代碼生成用以替代人工優化。深度學習編譯器無疑是最近非常熱門的話題。本文主要探討深度學習編譯技術的現狀和未來。
  • 陳天奇將於2020年加入CMU任助理教授
    6月17日消息,據報導,陳天奇他將於2020年秋季加入CMU任助理教授,成為加入CMU的年輕華人學者之一。陳天奇是機器學習領域著名的青年華人學者之一,本科畢業於上海交通大學ACM班,博士畢業於華盛頓大學計算機系,研究方向為大規模機器學習。
  • 陳天奇做的XGBoost為什麼能橫掃機器學習競賽平臺?
    XGBoost最初由陳天奇開發。陳天奇是華盛頓大學計算機系博士生,研究方向為大規模機器學習。他曾獲得KDD CUP 2012 Track 1第一名,並開發了SVDFeature,XGBoost,cxxnet等著名機器學習工具,是Distributed (Deep) Machine Learning Common的發起人之一。
  • 陳天奇創業公司首個SaaS產品:快速構建部署ML應用,跨平臺優化
    去年,知名人工智慧青年學者、華盛頓大學博士陳天奇參與創建了 ML 創業公司 OctoML。該公司致力於打造一個可擴展、開放、中立的端到端棧,用於深度學習模型的優化和部署。這不,他們推出了首個 SaaS 產品 Octomizer,其能夠幫助開發者或數據科學家更方便、更省事省力地將 ML 模型部署到設備上。
  • Facebook AI 年度總結來啦
    我們更新的 XNLI 數據集(https://code.fb.com/ai-research/xlni/)中的語言包括兩種資源很少語言(斯瓦希裡語和烏爾都語),我們的方法有助於跨語言理解,從而減少了對監督訓練數據的需求。
  • 陳天奇:機器學習科研的十年
    機器之心轉載作者:陳天奇陳天奇是機器學習領域著名的青年華人學者之一,本科畢業於上海交通大學ACM班,博士畢業於華盛頓大學計算機系,研究方向為大規模機器學習。上個月,陳天奇在Twitter上宣布自己將於2020年秋季加入CMU任助理教授,成為加入CMU的年輕華人學者之一。
  • 2020年成國內深度學習框架開源元年 曠視科技開源天元加速AI落地與...
    人工智慧時代,開源作為算法創新與迭代的重要驅動力,在深度學習領域發揮著至關重要的作用。全球諮詢機構IDC《中國深度學習平臺市場份額調研》指出,在AI技術使用方面,接受調研的企業和開發者中,86.2%選擇使用開源的深度學習框架。
  • Uber 開源 AI 可視化調試工具 Manifold,2 個工作流讓計算性能提升...
    因此,為了讓開發者能夠更好的利用 Manifold 帶來的高效率,日前 Uber 宣布,他們將 Manifold 作為開源項目發布。對數損失:http://wiki.fast.ai/index.php/Log_Loss 曲線下面積:https://stats.stackexchange.com/questions/132777/what-does-auc-stand-for-and-what-is-it 平均絕對誤差:https://en.wikipedia.org
  • Xilinx、Spline.AI、AWS 推出 X 射線分型深度學習模型和參考設計
    通過採用這樣的開源設計,醫療診斷設備、臨床設備製造商以及醫療服務提供商能夠快速地為行動裝置、可攜式設備或護理點邊緣設備中的大量臨床應用和放射醫學應用開發和部署經過訓練的模型,並提供向雲端擴展的選項。因此,能夠向業界推出這種自適應的開源解決方案,我們感到十分高興。這種低成本的解決方案兼具低時延、高能效和可擴展能力。此外,由於該模型能夠輕鬆適應相似的臨床應用和診斷應用,醫療設備製造商和醫療服務提供商可以藉助參考設計套件,提前快速開發出適應未來的臨床應用和放射醫學應用。」
  • PyTorch v1.1 重大更新,TensorBoard已加入豪華套餐
    近日在 2019 年 Facebook 開發者大會「F8」上,Facebook 公布了 PyTorch 的重大更新 1.1 版本,同時還發布並開源了其它多個開發工具,繼續降低機器學習/深度學習模型開發調試以及深度學習專用硬體設計的門檻。雷鋒網(公眾號:雷鋒網) AI 科技評論把更新主要內容介紹如下。更新更強的 PyTorch v1.1
  • 夏日專刊AI產品上新升級集錦,50餘項軟硬能力加速場景落地
    七八月50餘項能力的開源開放及升級,是夏日火熱的積澱,希望可以幫助您更高效實現產業智能化應用落地,快來一同閱讀您最關心的內容吧。>>查看詳情ai.baidu.com/tech/nlp_apply/address飛槳 PaddlePaddle 開源深度學習平臺、零門檻AI 開發平臺 EasyDL、AI 學習與實訓社區 AI Studio 發布多項升級。