RISC-V架構下 DSA - AI算力的更多可能性(2)
DSA成功帶來的啟示
通過以上的成功案例我們可以發現,GPGPU、TPU 的迭代的共同點是通過越來越高度的架構定制帶來了越來越澎湃的專用算力。同時保留或者新增通用的算力。通過高度優化的編譯器和豐富的軟件棧,讓用戶能夠輕松的將硬件算力充分地利用起來。那么通用算力、編譯器、軟件棧這些顯然都在 CPU 平臺是最豐富最成熟的,而對于 CPU 來說 “ Domain-specific architecture design is all you need ”。
RISC-V DSA能否把AI算力做好
GPU 的發展,滿足了大型 DNN 網絡的內存帶寬和計算能力的需求。由于計算能力的提高和可用數據量的增加,DNN 已經演變成更寬、更深的架構。DNN 中的層數可以達到數萬層,參數達數十億,研究人員很難在硬件資源(例如,內存、帶寬和功耗)有限的便攜式設備中部署 DNN。迫切需要在資源受限的邊緣設備(例如,手機、嵌入式設備、智能可穿戴設備、機器人、無人機等)中有效部署 DNN 的方法。于是AI科學家們又開展 AI 模型小型化的研究,也就是用最少的參數量,最少的計算量去達到想要的模型精度。于是shufflenet、mobilenet、網絡架構搜索 (NAS) 算法等輕量級神經網絡結構開始被推出。能夠在很少的參數量上去達到與大參數量模型接近的精度。同時神經網絡的參數剪枝、參數量化、緊湊網絡、知識蒸餾、低秩分解、參數共享、混合方式等等壓縮技術與計算加速技術開始成為研究的熱門。
圖 3. Top-1 ImageNet-1k 精度與計算復雜度的球形圖。
每個球的大小對應于模型的復雜性。(轉載自參考文獻 [ Bianco, S.; Cadene, R.; Celona, L.; Napoletano, T. Benchmark Analysis of Representative Deep Neural Network Architectures. IEEE Access. 2018, 6, 64270–67277.])。
圖4. 模型大小與精度比較。
EfficientNet-B0 是AutoML MNAS開發的基線網絡,而 Efficient-B1 到 B7 是基線網絡擴展得到的。特別的,EfficientNet-B7 達到了最新的 84.4% top-1 / 97.1% top-5 精度,同時比現有最好的 CNN 小 8.4 倍。
同時 AI 科學家們也發現提升模型參數量帶來模型精度提升的效應在減弱,如圖4所示在圖像分類的任務上,模型的精度隨著參數量的提升是越來越接近85% Top-1準確率的這個平臺。也就是說在成熟的視覺領域我們得到一定 AI 能力的算力需求是趨于收斂的。那么給定任務給定模型給定圖像處理的幀率我們就可以得到我們的算力需求。完成指定領域的任務,最終的算力需求是可以被定義并且趨同。
這一切都意味著 AI 不再是超級算力、超級計算機上獨享的能力。AI 將會在任何地方,這同時也對我們的通用處理器發起了挑戰。
DSA 可以有效、高效的去完成領域任務,然而 C++ 編程、CPU 上的經驗可能就無法被利用上了。在 David Patterson 的十大經驗教訓里也提到 DSA 的軟件棧目前不及 CPU,尤其在編譯器領域還不夠成熟。那么如果 DSA 能夠利用 CPU 的軟件棧豐富且成熟的優勢豈不是如虎添翼?
例如 CUDA 以提供了多種常用編程語言的支持加以關鍵字拓展的方式去進行并行軟件編程,加之本身卓越的通用計算能力。使得其開發生態越來越壯大。有實力的客戶甚至放棄使用 TensoRT 通過自身的 GPGPU 技術積累開發出了適合自己業務需求的更高效的軟件,比 NVIDIA 提供的 TensoRT 性能提高了一倍。【滴滴自研NVIDIA GPU匯編器:https://on-demand.gputechconf.com/gtc-cn/2019/pdf/CN9667/presentation.pdf】
那么我們何不在CPU上將AI算力提供出來,這條路是不是可行的呢?
如上圖所示,在過去CPU上的浮點能力由于SIMD拓展的提出,
在頻率提升很緩慢的時代依舊得到了巨大的提升。
并隨著SIMD數據并行寬度的提升有一個線性的增長。
近年來 Intel x86 CPU 處理器上的 SIMD 由64bit 的 MMX(Multi Media eXtension,多媒體擴展指令集)增長到了512bit 的數學拓展 AVX512 與 AI 拓展 VNNI。使得在四核 Core i7-1185G7 @ 3.00GHz 的處理器上可以獲取 3Tops 的算力。提供了 AI 所謂的 MAC 能力,加之本身的通用 SIMD 計算能力是可以有效 COVER 如智能機器人、智能視頻、語音終端設備等 AI 場景。但此等 SOC 做 AI 終端過于奢侈,且定位還是通用而不是 AI DSA。
Intel 最新的 AMX 矩陣拓展架構、Arm 架構下的 SME 矩陣拓展架構以及IBM 的 AMM 指令集更是將 CPU 能提供的 AI 算力又提升了一個臺階。在架構代號為 Sapphire Rapids 的 server 級處理器上可以通過 AMX 獲得每時鐘周期1024個 mac 是 VNNI 拓展提供的算力的8倍(128個 mac 每時鐘周期)。
【https://edc.intel.com/content/www/tw/zh/products/performance/benchmarks/architecture-day-2021/】
CPU 上完全可以長出使能 AI 應用大算力,正如過去長出了適合多媒體處理的算力。【https://en.wikipedia.org/wiki/MMX_(instruction_set)】
為什么是RISC-V
如果要對CPU架構進行領域定制,需要獲取對應的架構級授權(Architectural License)。區別于 IP Core 的授權,架構級授權特指指令集(ISA)授權,允許客戶自行定制優化。
關于 CPU 業界兩大陣營 x86 與 ARM 的架構授權的情況是什么樣的呢?x86的專利主要掌握在英特爾和 AMD 這兩家公司手中,到目前為止國內沒有任何一家廠商擁有 x86 的架構級授權,海光信息與兆芯采用的是 x86 架構 IP 內核授權模式。海思、飛騰均已經獲得 ARMv8 架構的永久授權。盡管 ARM 此前表態 ARMv9 架構不受美國出口管理條例 (EAR) 約束,華為海思等國內 CPU 產商依然可獲授權,但是 ARMv9 不再提供永久授權,采用 ARM 架構仍有長期隱患。而且即使在擁有 ARM 架構級授權的情況下做出指令集定制與改動,也必須經由 ARM 參與支持修改才可以,否則將觸發違約條款。
RISC-V 因其相對精簡的指令集架構(ISA)以及開源寬松的 BSD 協議使得Fabless 可以基于 RISC-V 架構進行任意的架構拓展與定制。相信 RISC-V DSA 可以利用其經典的 CPU 的編程模型與相對低成本獲取的 AI 算力,加之標準 RISC-V Vector 拓展提供的通用算力。能夠給 AI 嵌入式場景下 1-10T算力需求范圍的 AI 產業應用帶來全新的商業化硬件方案。
參考資料:
《Intel cancels Tejas, moves to dual-core designs》, 【https://www.eetimes.com/Intel-cancels-Tejas-moves-to-dual-core-designs/】
《The Free Lunch Is Over》,
【http://www.gotw.ca/publications/concurrency-ddj.htm】
《ImageNet Classification with Deep Convolutional Neural Networks》,Alex Krizhevsky,Ilya Sutskever,Geoffrey E。
【 HU L, CHE X, ZHENG S Q, et al. A closer look at GPGPU[J]. ACM Computing Surveys, 2016, 48(4): 1-20.】
《DRIVE Thor is the next generation in the NVIDIA AI compute roadmap》
【https://blogs.nvidia.com/blog/2022/09/20/drive-thor/】
Jetson Orin Technical Specifications,
https://www.nvidia.com/en-sg/autonomous-machines/embedded-systems/jetson-orin/】
DLA支持的層和限制,【https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#dla_layers】
ONNX-Tensorrt,
https://github.com/onnx/onnx-tensorrt/blob/7.1/operators.md】
《Google CEO Sundar Pichai》, 【cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html】
MnasNet: Towards Automating the Design of Mobile Machine Learning Models
– Google AI Blog (googleblog.com)
滴滴自研 NVIDIA GPU 匯編器:
https://on-demand.gputechconf.com/gtc-cn/2019/pdf/CN9667/presentation.pdf】
intel性能指標參數,
https://edc.intel.com/content/www/tw/zh/products/performance/benchmarks/architecture-day-2021/】
MMX介紹,
https://en.wikipedia.org/wiki/MMX_(instruction_set)】
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。