色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > RISC-V架構(gòu)下 DSA - AI算力的更多可能性(1)

          RISC-V架構(gòu)下 DSA - AI算力的更多可能性(1)

          發(fā)布人:AI科技大本營 時(shí)間:2023-03-19 來源:工程師 發(fā)布文章

          責(zé)編 | 王子彧

          出品 |進(jìn)迭時(shí)空SpacemiT

          AI 應(yīng)用出現(xiàn)在我們?nèi)粘5纳a(chǎn)生活當(dāng)中,賦能各行各業(yè)的勁頭勢不可擋。近些年,AI 算力芯片領(lǐng)域群雄逐鹿,通過對芯片、算力與 AI 三者發(fā)展迭代過程的理解,我們發(fā)現(xiàn)高能效比的算力、通用的軟件棧以及高度優(yōu)化的編譯器,是我們的 AI 算力產(chǎn)品邁向成功的必要條件。

          進(jìn)迭時(shí)空作為計(jì)算芯片企業(yè),對 RISC-V 架構(gòu) CPU 進(jìn)行高度定制,不斷挖掘其在計(jì)算中的潛力,在 RISC-V 生態(tài)強(qiáng)大的軟件棧與 CPU 領(lǐng)域成熟的編譯器的基礎(chǔ)上對 RISC-V DSA 進(jìn)行聯(lián)合優(yōu)化并提供軟硬一體的計(jì)算解決方案,給 AI 領(lǐng)域帶來高效、易用的算力。


          圖片


          GPGPU 作為 HPC 領(lǐng)域(通用算力)的

          DSA 打開了 AI 的大門



          在上世紀(jì)80年代到90年代之間,隨著科技的發(fā)展,CPU 的性能每隔 18 到 20 個(gè)月左右就能翻倍。這就是英特爾(Intel)創(chuàng)始人之一戈登·摩爾提出的摩爾定律(Moore's law)的主要內(nèi)容。這意味著每隔18個(gè)月左右,同一款軟件在新發(fā)售的 CPU 處理器上的運(yùn)行速度可以直接翻倍。

          轉(zhuǎn)折點(diǎn)大概在2004年5月份, 當(dāng)時(shí) Intel 取消了其新一代的單核處理器開發(fā)工作轉(zhuǎn)頭主攻雙核處理器設(shè)計(jì)。在同年稍晚一些,Herb Sutter 寫了著名的《The Free Lunch Is Over(不再有免費(fèi)午餐)》,文章主要表達(dá)除非軟件的開發(fā)進(jìn)行了多核多線程的設(shè)計(jì),否則將無法像過去一樣每隔一年多時(shí)間即可獲取一倍的加速效果。如下圖所示,CPU 處理器的單核計(jì)算性能開始趨近于一個(gè)平臺區(qū)間,依靠增加晶體管密度來提升計(jì)算性能已趨于乏力,不斷縮小的芯片尺寸總會(huì)遇到其物理極限。這意味著獲得更高的性能提升需要新的方法。

          圖片

          上圖為42年間的微處理器趨勢數(shù)據(jù)

          在摩爾定律的加倍效應(yīng)已經(jīng)放緩的后摩爾時(shí)代,持續(xù)提升處理器性能的一種重要的技術(shù)理念就是 Domain-Specific Architectures(DSA),即采用可編程的專用集成電路(ASICs)去加速特定的高強(qiáng)度的處理器負(fù)載,比如加速圖形渲染、加速 AI 神經(jīng)網(wǎng)絡(luò)的前向推理計(jì)算、提高巨量網(wǎng)絡(luò)數(shù)據(jù)的吞吐等。

          架構(gòu)的定義包含指令集架構(gòu)與微架構(gòu)。指令集架構(gòu)是軟件與硬件進(jìn)行對話的接口,如果說一條指令是一個(gè)單詞,那么指令集(ISA)就是詞典,而軟件程序就像是一本使用特定詞典中的詞匯編寫出來的一本書。

          圖片


          圖片


          架構(gòu)設(shè)計(jì)


          通過對架構(gòu)進(jìn)行面向特定領(lǐng)域的設(shè)計(jì),縮小應(yīng)用范圍,獲得更高的性能,或者更好的能效比,保持可編程的靈活性,這就是 DSA 的理念。

          • 面向領(lǐng)域的架構(gòu)設(shè)計(jì)可以以較低的成本獲取較高的算力,以滿足算力需求。

          • 指令集架構(gòu)的可編程性帶來了相對通用的算力,為下一代算法的應(yīng)用和覆蓋更廣泛的領(lǐng)域提供了無限的可能。


          DSA 的概念由 2017 年圖靈獎(jiǎng)得主 Henessy 和 Patterson 提出,并進(jìn)行了題為《創(chuàng)新體系結(jié)構(gòu)將迎來新的黃金時(shí)代》的演說。我們生活中最為熟悉的DSA 可能就是顯卡(Graphics Processing Unit即GPU),游戲影音娛樂都離不開它。

          1999年,NVIDIA 公司在發(fā)布其標(biāo)志性產(chǎn)品 GeForce 256時(shí),首次提出了 GPU 的概念。其實(shí)就是 DSA for 3D Graphics,目的是為了加速計(jì)算 3D 虛擬世界的渲染,降低 CPU 的負(fù)載。GPU 技術(shù)的發(fā)展也促進(jìn)了顯卡殺手級游戲引擎的激進(jìn)發(fā)展,時(shí)至今日游戲畫面的逼真程度堪比真人版電影。

          時(shí)間來到2006年,NVIDIA 發(fā)布了 GeForce 8800 GTX(核心代號G80),與 G80 一同發(fā)布的還有著名的 CUDA(compute unified device architecture)并提供了驅(qū)動(dòng)程序和 C 語言擴(kuò)展 。

          CUDA 發(fā)展到今日,區(qū)別于開放計(jì)算語言 (OpenCL 跨平臺并行編程的獨(dú)立開放標(biāo)準(zhǔn)) ,開發(fā)人員可以使用流行的語言(C、C++、Fortran、Python、MATLAB 等)編寫 CUDA 程序,并使用幾個(gè)基本的關(guān)鍵字即可將并行性添加到他們的代碼中,而不僅僅是局限于使用 C 語言。理論上 OpenCL 的運(yùn)行時(shí)編譯能夠帶來較高的執(zhí)行效率,但是實(shí)際上由于 CUDA 是由同一家開發(fā)執(zhí)行其功能的硬件的公司開發(fā),所以后者能更好地匹配 GPU 的計(jì)算特性,從而提供更好的性能。

          由于 CUDA 便捷的編程模型與優(yōu)秀的編譯器,硬件資源可以較為容易的被充分利用,使得 GPU 上的通用計(jì)算能力被充分開發(fā),拓展了 GPU 的應(yīng)用領(lǐng)域。如下圖所示 G80 核心能夠提供比同時(shí)期的以 CPU 為中心的高性能處理器相當(dāng)甚至更高的計(jì)算能力。再加上便于編程利用的這一特點(diǎn)開始逐漸被高性能計(jì)算(High-Performance Computing HPC)社區(qū)注意到,并加入到 CUDA 的生態(tài)當(dāng)中開展研究。NVIDIA 公司也提供了 cuBLAS、cuRAND、cuSPARSE、cuSolver、cuFFT、NPP 等一眾實(shí)用高效的計(jì)算庫,進(jìn)一步擴(kuò)充了 NVIDIA 的算力生態(tài)。

          圖片

          2012年多倫多大學(xué)的 Alex Krizhevsky 發(fā)表了一種新的深度神經(jīng)網(wǎng)絡(luò)(DNN 亦或深度卷積神經(jīng)網(wǎng)絡(luò) CNN 本文中一律以 DNN 指代)模型 AlexNet,該模型在 ImageNet 圖像比賽中取得了有史以來最好的成績。15.3%的 top-5 錯(cuò)誤率與此同時(shí)第二名的錯(cuò)誤率高達(dá)26.2%。這一結(jié)果震驚了世界,從此AI競賽開始拉開帷幕。該網(wǎng)絡(luò)模型擁有60 million 的單精度浮點(diǎn)參數(shù)量,存儲到磁盤上要占用 240MB 的空間。作者表示在顯存和算力依然不夠的影響下這是他在兩塊GTX 580 3GB GPU 上能做到的極限了,如果能夠有更快的 GPU 按照經(jīng)驗(yàn),他可以得到更好的分類結(jié)果?!綢mageNet Classification with Deep Convolutional Neural Networks】

          從那時(shí)起, 幾乎所有的AI研究員都開始使用 GPU 去進(jìn)行算法領(lǐng)域的探索與突破。同時(shí) GPU 的架構(gòu)設(shè)計(jì)也傾向于提供越來越多的3D能力以外的通用算力,這種設(shè)計(jì)理念被稱為 General-Purpose GPU(GPGPU)。

          2011年 TESLA GPU 計(jì)算卡發(fā)布,標(biāo)志著 NVIDIA 將正式用于計(jì)算的 GPU 產(chǎn)品線獨(dú)立出來,憑借著架構(gòu)上的優(yōu)勢,GPU 在通用計(jì)算及超級計(jì)算機(jī)領(lǐng)域,逐漸取代 CPU 成為主角?!?HU L, CHE X, ZHENG S Q, et al. A closer look at GPGPU[J]. ACM Computing Surveys, 2016, 48(4): 1-20.】

          伴隨著 GPU 技術(shù)的發(fā)展,AI算法研究也突飛猛進(jìn)。2014 年前后,香港中文大學(xué)的 Sun Yi 等人將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在人臉識別領(lǐng)域,采用20萬訓(xùn)練數(shù)據(jù),在 LFW 數(shù)據(jù)集上第一次得到超過人類水平的識別精度。2015年10月, AlphaGo 擊敗樊麾,成為第一個(gè)無需讓子即可在19路棋盤上擊敗圍棋職業(yè)棋士的電腦圍棋程序,創(chuàng)造了歷史,并于2016年1月發(fā)表在知名期刊《自然》。在 CES 2023上,奔馳宣布成為美國首家獲得 L3 自動(dòng)駕駛認(rèn)證的廠商。AI算法在越來越多的領(lǐng)域的能力上接近和超越人類,也就是說在這些領(lǐng)域AI可以幫助降低人們的負(fù)擔(dān),釋放了人類的潛力。同時(shí)也意味著商機(jī)與產(chǎn)業(yè)化的機(jī)會(huì)。


          圖片


          通用算力、專用算力,

          GPGPU與AI DSA相向而行,殊途同歸


          在2014年,世界上第一款 supercomputer on a module, Jetson TX1問世,TX1采用256個(gè)NVIDIA Maxwell 架構(gòu) CUDA cores 提供了超過1  TeraFLOPs 性能。旨在能夠?yàn)楫?dāng)時(shí)最新視覺計(jì)算應(yīng)用提供所需的性能和能效。定位為Deep Learning, Computer Vision, Graphics、GPU Computing 的嵌入式平臺。

          圖片

          圖5.DRIVE Thor is the next generation in the NVIDIA AI compute roadmap。

          來源【https://blogs.nvidia.com/blog/2022/09/20/drive-thor/】



          該系列產(chǎn)品從2018年的1T算力的 TX1 一路發(fā)展到2024年預(yù)計(jì)發(fā)售的擁有2000T算力的 THOR 平臺。值得注意的是在 XAVIER 與 ORIN 平臺上有超過一半的標(biāo)稱算力是由 DLA 提供。

          圖片

          圖6.Jetson Orin Technical Specifications

          來源【https://www.nvidia.com/en-sg/autonomous-machines/embedded-systems/jetson-orin/】

          采用 DLA 可以加速部分計(jì)算密集的算子,與采用 GPGPU 計(jì)算相比,在損失部分推理精度的前提下,采用 DLA 加速推理計(jì)算不僅能加速更快而且能耗更低。但這并不是免費(fèi)的午餐,首先要想把 GPGPU 與 DLA 兩塊算力同時(shí)利用起來軟件上就需要比較精巧的異步設(shè)計(jì)使得 CPU 負(fù)載、編解碼模塊、圖像處理模塊、GPGPU 以及 DLA 五者流水化并行處理。然而到了 THOR 這代自動(dòng)駕駛平臺的產(chǎn)品。DLA 提供的算力甚至直接被砍掉,其中原由目前還不清楚。

          但是從NVDIA的官方文檔中我們可以看到,DLA 支持了約15種主要 AI 算子的執(zhí)行,不支持的算子類型將會(huì)回退到GPGPU進(jìn)行運(yùn)算。https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#dla_layers】

          值得關(guān)注的是 THOR 平臺的 CUDA 引入了 Transformer Engine 用來加速時(shí)下大火的基于 attention 機(jī)制的 DL 算法,Transformer 正是當(dāng)下正被熱議的 ChatGPT 的網(wǎng)絡(luò)模型的重要組成部分。并且引入了對8-bit floating point (FP8) 精度的支持,這是 INT8(8-bit整形數(shù)據(jù)類型,用于加速 DNN 推理計(jì)算)的替代品能夠在同等的位寬下提供更高的精度。Nvidia 在其 Edge 平臺產(chǎn)品線上開始放棄專有的定制化大算力,逐步的在通用算力的基礎(chǔ)上來增加領(lǐng)域的定制化。這也與其發(fā)布會(huì)上反復(fù)提到的,提高開發(fā)效率和加快軟件迭代、算法迭代的目的相吻合。

          GPU 也是一種的 DSA,GPU 的發(fā)展論證了 DSA 取得的成功。DSA、GPU、AI 這是個(gè)互相成就的故事。而 Nvidia的GPGPU 硬件的成功,與其 CUDA 生態(tài)豐富的算力軟件包、易于使用的編程接口、優(yōu)秀的編譯器脫不開干系。由此我們可以得出一條結(jié)論,對于 DSA 算力硬件來說,這些都是走向商業(yè)成功的必要條件。

          從 TX1 推出開始,對標(biāo) TX1 的競品層出不窮。TX1 的算力來自于 GPGPU,而更加客制化的 ASIC,利用卷積操作的空間局部性進(jìn)行數(shù)據(jù)復(fù)用的精妙設(shè)計(jì),在達(dá)到同等甚至更高算力的同時(shí)硬件的成本更低。最普遍的設(shè)計(jì)是一個(gè)高能效比的 CPU 小核如 Arm Cortex A7/A53加固化的 2D 圖像處理(CV)模塊與固化的神經(jīng)網(wǎng)絡(luò)處理(DNN/NPU)模塊。

          由于小 CPU 的計(jì)算能力非常受限,將主要負(fù)責(zé)應(yīng)用軟件的任務(wù)調(diào)度部分,AI 應(yīng)用的前處理(非 DNN 算法模型部分)主要由2D圖像處理模塊來承接。問題在于前處理是非常碎片化的算法,除了個(gè)別的插值、顏色域轉(zhuǎn)換功能幾乎所有圖像處理軟件都會(huì)用到,其他所需功能非常的廣泛。僅 OpenCV 的核心函數(shù)、圖像處理函數(shù)就包含矩陣變換、濾波、分辨率變換、顏色空間轉(zhuǎn)換、直方圖等等幾個(gè)大類,其中每個(gè)大類中的子方法又會(huì)有若干個(gè),無法定義哪些功能需要被固化。這還不包含3D數(shù)據(jù)處理能力與特征描述子的使用。算法廠商的需求各不相同,固化的多了浪費(fèi)面積,固化的少了產(chǎn)品開發(fā)的難度將大幅提升。

          ONNX 是一種針對機(jī)器學(xué)習(xí)所設(shè)計(jì)的開放式的文件格式,用于存儲訓(xùn)練好的模型。它使得不同的人工智能框架訓(xùn)練得到的網(wǎng)絡(luò)模型可以以相同的格式進(jìn)行存儲。ONNX 的規(guī)范及代碼主要由微軟,亞馬遜,F(xiàn)acebook 和 IBM 等公司共同開發(fā)。以 NVIDIA 的 AI 軟件生態(tài)中最富盛名的 DNN 推理開發(fā)工具庫 TensortRT 為例,5.1版本支持87個(gè) ONNX 算子,到了7.1版本支持的ONNX 算子數(shù)量為108個(gè)。功能高度固化的 ASIC 無法對新增的算子計(jì)算類型進(jìn)行支持,將會(huì)越來越約束算法的迭代。而在這之上進(jìn)行 AI 產(chǎn)品開發(fā)的算法工程師們無異于是戴著鐐銬跳舞。

          Google 公司研發(fā)了張量處理單元 (TPU),TPU v1 于 2015 年投入生產(chǎn),并被谷歌內(nèi)部用于其應(yīng)用程序。TPU 是一種應(yīng)用于AI領(lǐng)域,為AI算法提供算力的 ASIC,利用了神經(jīng)網(wǎng)絡(luò)對于數(shù)值精度不敏感的特性,其思想核心是采用低精度矩陣 Systolic Array 提供巨大算力,同時(shí)提供滿足 AI 需求的最小化的運(yùn)算功能。此版本(即 TPUv1)的云服務(wù)從未對用戶開放開發(fā)使用?,F(xiàn)在TPUv2 以及后續(xù)版本被廣泛的應(yīng)用于谷歌的搜索排序、語音識別、以圖搜圖、谷歌翻譯等領(lǐng)域。

          圖片

          圖:TPUv1硬件架構(gòu)圖


          在 TPUv1 版本硬件架構(gòu)圖上,我們可以看到 Matrix Multiply 模塊提供了64K operations 每時(shí)鐘的超大算力,緊隨其后的是 Activation(激活)、Normalize/Pool(歸一化/池化)這些非常具現(xiàn)化的運(yùn)算。而到了 TPUv2,我們可以看到通用的 Vector 單元代替了v1版本中 activation pipe 中的固定功能。

          圖片

          圖:Transforming the TPUv1 datapath into the TPUv2 datapath  

          來源:【The Design Process for Google’s Training Chips: TPUv2 and TPUv3  】


          “我們已經(jīng)在我們的數(shù)據(jù)中心內(nèi)運(yùn)行 TPU 一年多了,并且發(fā)現(xiàn)它們?yōu)闄C(jī)器學(xué)習(xí)提供了一個(gè)數(shù)量級更好的每瓦優(yōu)化性能。這大致相當(dāng)于未來七年左右的快進(jìn)技術(shù)(三代摩爾定律)。谷歌的 CEO 這樣評價(jià)了 TPU?!薄?Google CEO Sundar Pichai cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html】

          在21年,David Patterson 進(jìn)行了 TPU 演進(jìn)十年的總結(jié):Google 的十大經(jīng)驗(yàn)教訓(xùn) 【Ten Lessons From Three Generations Shaped Google’s TPUv4i : Industrial Product】 其中就指出DSA既要專門優(yōu)化,也要靈活。TPUv2 引入的通用算力給 TPU 提供了更強(qiáng)大的能力,不僅僅局限于 TPUv1的模型推理功能,還能進(jìn)行模型的訓(xùn)練,這往往需要更復(fù)雜的運(yùn)算。Google 也是通過 XLA:一個(gè)用于 TPU 的高度定制優(yōu)化的機(jī)器學(xué)習(xí)編譯器,為機(jī)器學(xué)習(xí)(PyTorch、TensorFlow)與數(shù)值、科學(xué)計(jì)算(Jax、Julia、Nx)提供便捷通用的編程使用接口,通過云服務(wù)提供給用戶,為尤其此生態(tài)下的用戶帶來了良好的用戶體驗(yàn)。



          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: AI

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉