"); //-->
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)】
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。