新闻  |   论坛  |   博客  |   在线研讨会
RISC-V架构下 DSA - AI算力的更多可能性(1)
AI科技大本营 | 2023-03-19 10:30:52    阅读:416   发布文章

责编 | 王子彧

出品 |进迭时空SpacemiT

AI 应用出现在我们日常的生产生活当中,赋能各行各业的劲头势不可挡。近些年,AI 算力芯片领域群雄逐鹿,通过对芯片、算力与 AI 三者发展迭代过程的理解,我们发现高能效比的算力、通用的软件栈以及高度优化的编译器,是我们的 AI 算力产品迈向成功的必要条件。

进迭时空作为计算芯片企业,对 RISC-V 架构 CPU 进行高度定制,不断挖掘其在计算中的潜力,在 RISC-V 生态强大的软件栈与 CPU 领域成熟的编译器的基础上对 RISC-V DSA 进行联合优化并提供软硬一体的计算解决方案,给 AI 领域带来高效、易用的算力。


图片


GPGPU 作为 HPC 领域(通用算力)的

DSA 打开了 AI 的大门



在上世纪80年代到90年代之间,随着科技的发展,CPU 的性能每隔 18 到 20 个月左右就能翻倍。这就是英特尔(Intel)创始人之一戈登·摩尔提出的摩尔定律(Moore's law)的主要内容。这意味着每隔18个月左右,同一款软件在新发售的 CPU 处理器上的运行速度可以直接翻倍。

转折点大概在2004年5月份, 当时 Intel 取消了其新一代的单核处理器开发工作转头主攻双核处理器设计。在同年稍晚一些,Herb Sutter 写了著名的《The Free Lunch Is Over(不再有免费午餐)》,文章主要表达除非软件的开发进行了多核多线程的设计,否则将无法像过去一样每隔一年多时间即可获取一倍的加速效果。如下图所示,CPU 处理器的单核计算性能开始趋近于一个平台区间,依靠增加晶体管密度来提升计算性能已趋于乏力,不断缩小的芯片尺寸总会遇到其物理极限。这意味着获得更高的性能提升需要新的方法。

图片

上图为42年间的微处理器趋势数据

在摩尔定律的加倍效应已经放缓的后摩尔时代,持续提升处理器性能的一种重要的技术理念就是 Domain-Specific Architectures(DSA),即采用可编程的专用集成电路(ASICs)去加速特定的高强度的处理器负载,比如加速图形渲染、加速 AI 神经网络的前向推理计算、提高巨量网络数据的吞吐等。

架构的定义包含指令集架构与微架构。指令集架构是软件与硬件进行对话的接口,如果说一条指令是一个单词,那么指令集(ISA)就是词典,而软件程序就像是一本使用特定词典中的词汇编写出来的一本书。

图片


图片


架构设计


通过对架构进行面向特定领域的设计,缩小应用范围,获得更高的性能,或者更好的能效比,保持可编程的灵活性,这就是 DSA 的理念。

  • 面向领域的架构设计可以以较低的成本获取较高的算力,以满足算力需求。

  • 指令集架构的可编程性带来了相对通用的算力,为下一代算法的应用和覆盖更广泛的领域提供了无限的可能。


DSA 的概念由 2017 年图灵奖得主 Henessy 和 Patterson 提出,并进行了题为《创新体系结构将迎来新的黄金时代》的演说。我们生活中最为熟悉的DSA 可能就是显卡(Graphics Processing Unit即GPU),游戏影音娱乐都离不开它。

1999年,NVIDIA 公司在发布其标志性产品 GeForce 256时,首次提出了 GPU 的概念。其实就是 DSA for 3D Graphics,目的是为了加速计算 3D 虚拟世界的渲染,降低 CPU 的负载。GPU 技术的发展也促进了显卡杀手级游戏引擎的激进发展,时至今日游戏画面的逼真程度堪比真人版电影。

时间来到2006年,NVIDIA 发布了 GeForce 8800 GTX(核心代号G80),与 G80 一同发布的还有著名的 CUDA(compute unified device architecture)并提供了驱动程序和 C 语言扩展 。

CUDA 发展到今日,区别于开放计算语言 (OpenCL 跨平台并行编程的独立开放标准) ,开发人员可以使用流行的语言(C、C++、Fortran、Python、MATLAB 等)编写 CUDA 程序,并使用几个基本的关键字即可将并行性添加到他们的代码中,而不仅仅是局限于使用 C 语言。理论上 OpenCL 的运行时编译能够带来较高的执行效率,但是实际上由于 CUDA 是由同一家开发执行其功能的硬件的公司开发,所以后者能更好地匹配 GPU 的计算特性,从而提供更好的性能。

由于 CUDA 便捷的编程模型与优秀的编译器,硬件资源可以较为容易的被充分利用,使得 GPU 上的通用计算能力被充分开发,拓展了 GPU 的应用领域。如下图所示 G80 核心能够提供比同时期的以 CPU 为中心的高性能处理器相当甚至更高的计算能力。再加上便于编程利用的这一特点开始逐渐被高性能计算(High-Performance Computing HPC)社区注意到,并加入到 CUDA 的生态当中开展研究。NVIDIA 公司也提供了 cuBLAS、cuRAND、cuSPARSE、cuSolver、cuFFT、NPP 等一众实用高效的计算库,进一步扩充了 NVIDIA 的算力生态。

图片

2012年多伦多大学的 Alex Krizhevsky 发表了一种新的深度神经网络(DNN 亦或深度卷积神经网络 CNN 本文中一律以 DNN 指代)模型 AlexNet,该模型在 ImageNet 图像比赛中取得了有史以来最好的成绩。15.3%的 top-5 错误率与此同时第二名的错误率高达26.2%。这一结果震惊了世界,从此AI竞赛开始拉开帷幕。该网络模型拥有60 million 的单精度浮点参数量,存储到磁盘上要占用 240MB 的空间。作者表示在显存和算力依然不够的影响下这是他在两块GTX 580 3GB GPU 上能做到的极限了,如果能够有更快的 GPU 按照经验,他可以得到更好的分类结果。【ImageNet Classification with Deep Convolutional Neural Networks】

从那时起, 几乎所有的AI研究员都开始使用 GPU 去进行算法领域的探索与突破。同时 GPU 的架构设计也倾向于提供越来越多的3D能力以外的通用算力,这种设计理念被称为 General-Purpose GPU(GPGPU)。

2011年 TESLA GPU 计算卡发布,标志着 NVIDIA 将正式用于计算的 GPU 产品线独立出来,凭借着架构上的优势,GPU 在通用计算及超级计算机领域,逐渐取代 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 技术的发展,AI算法研究也突飞猛进。2014 年前后,香港中文大学的 Sun Yi 等人将卷积神经网络应用在人脸识别领域,采用20万训练数据,在 LFW 数据集上第一次得到超过人类水平的识别精度。2015年10月, AlphaGo 击败樊麾,成为第一个无需让子即可在19路棋盘上击败围棋职业棋士的电脑围棋程序,创造了历史,并于2016年1月发表在知名期刊《自然》。在 CES 2023上,奔驰宣布成为美国首家获得 L3 自动驾驶认证的厂商。AI算法在越来越多的领域的能力上接近和超越人类,也就是说在这些领域AI可以帮助降低人们的负担,释放了人类的潜力。同时也意味着商机与产业化的机会。


图片


通用算力、专用算力,

GPGPU与AI DSA相向而行,殊途同归


在2014年,世界上第一款 supercomputer on a module, Jetson TX1问世,TX1采用256个NVIDIA Maxwell 架构 CUDA cores 提供了超过1  TeraFLOPs 性能。旨在能够为当时最新视觉计算应用提供所需的性能和能效。定位为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/】



该系列产品从2018年的1T算力的 TX1 一路发展到2024年预计发售的拥有2000T算力的 THOR 平台。值得注意的是在 XAVIER 与 ORIN 平台上有超过一半的标称算力是由 DLA 提供。

图片

图6.Jetson Orin Technical Specifications

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

采用 DLA 可以加速部分计算密集的算子,与采用 GPGPU 计算相比,在损失部分推理精度的前提下,采用 DLA 加速推理计算不仅能加速更快而且能耗更低。但这并不是免费的午餐,首先要想把 GPGPU 与 DLA 两块算力同时利用起来软件上就需要比较精巧的异步设计使得 CPU 负载、编解码模块、图像处理模块、GPGPU 以及 DLA 五者流水化并行处理。然而到了 THOR 这代自动驾驶平台的产品。DLA 提供的算力甚至直接被砍掉,其中原由目前还不清楚。

但是从NVDIA的官方文档中我们可以看到,DLA 支持了约15种主要 AI 算子的执行,不支持的算子类型将会回退到GPGPU进行运算。https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#dla_layers】

值得关注的是 THOR 平台的 CUDA 引入了 Transformer Engine 用来加速时下大火的基于 attention 机制的 DL 算法,Transformer 正是当下正被热议的 ChatGPT 的网络模型的重要组成部分。并且引入了对8-bit floating point (FP8) 精度的支持,这是 INT8(8-bit整形数据类型,用于加速 DNN 推理计算)的替代品能够在同等的位宽下提供更高的精度。Nvidia 在其 Edge 平台产品线上开始放弃专有的定制化大算力,逐步的在通用算力的基础上来增加领域的定制化。这也与其发布会上反复提到的,提高开发效率和加快软件迭代、算法迭代的目的相吻合。

GPU 也是一种的 DSA,GPU 的发展论证了 DSA 取得的成功。DSA、GPU、AI 这是个互相成就的故事。而 Nvidia的GPGPU 硬件的成功,与其 CUDA 生态丰富的算力软件包、易于使用的编程接口、优秀的编译器脱不开干系。由此我们可以得出一条结论,对于 DSA 算力硬件来说,这些都是走向商业成功的必要条件。

从 TX1 推出开始,对标 TX1 的竞品层出不穷。TX1 的算力来自于 GPGPU,而更加客制化的 ASIC,利用卷积操作的空间局部性进行数据复用的精妙设计,在达到同等甚至更高算力的同时硬件的成本更低。最普遍的设计是一个高能效比的 CPU 小核如 Arm Cortex A7/A53加固化的 2D 图像处理(CV)模块与固化的神经网络处理(DNN/NPU)模块。

由于小 CPU 的计算能力非常受限,将主要负责应用软件的任务调度部分,AI 应用的前处理(非 DNN 算法模型部分)主要由2D图像处理模块来承接。问题在于前处理是非常碎片化的算法,除了个别的插值、颜色域转换功能几乎所有图像处理软件都会用到,其他所需功能非常的广泛。仅 OpenCV 的核心函数、图像处理函数就包含矩阵变换、滤波、分辨率变换、颜色空间转换、直方图等等几个大类,其中每个大类中的子方法又会有若干个,无法定义哪些功能需要被固化。这还不包含3D数据处理能力与特征描述子的使用。算法厂商的需求各不相同,固化的多了浪费面积,固化的少了产品开发的难度将大幅提升。

ONNX 是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架训练得到的网络模型可以以相同的格式进行存储。ONNX 的规范及代码主要由微软,亚马逊,Facebook 和 IBM 等公司共同开发。以 NVIDIA 的 AI 软件生态中最富盛名的 DNN 推理开发工具库 TensortRT 为例,5.1版本支持87个 ONNX 算子,到了7.1版本支持的ONNX 算子数量为108个。功能高度固化的 ASIC 无法对新增的算子计算类型进行支持,将会越来越约束算法的迭代。而在这之上进行 AI 产品开发的算法工程师们无异于是戴着镣铐跳舞。

Google 公司研发了张量处理单元 (TPU),TPU v1 于 2015 年投入生产,并被谷歌内部用于其应用程序。TPU 是一种应用于AI领域,为AI算法提供算力的 ASIC,利用了神经网络对于数值精度不敏感的特性,其思想核心是采用低精度矩阵 Systolic Array 提供巨大算力,同时提供满足 AI 需求的最小化的运算功能。此版本(即 TPUv1)的云服务从未对用户开放开发使用。现在TPUv2 以及后续版本被广泛的应用于谷歌的搜索排序、语音识别、以图搜图、谷歌翻译等领域。

图片

图:TPUv1硬件架构图


在 TPUv1 版本硬件架构图上,我们可以看到 Matrix Multiply 模块提供了64K operations 每时钟的超大算力,紧随其后的是 Activation(激活)、Normalize/Pool(归一化/池化)这些非常具现化的运算。而到了 TPUv2,我们可以看到通用的 Vector 单元代替了v1版本中 activation pipe 中的固定功能。

图片

图:Transforming the TPUv1 datapath into the TPUv2 datapath  

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


“我们已经在我们的数据中心内运行 TPU 一年多了,并且发现它们为机器学习提供了一个数量级更好的每瓦优化性能。这大致相当于未来七年左右的快进技术(三代摩尔定律)。谷歌的 CEO 这样评价了 TPU。”【 Google CEO Sundar Pichai cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html】

在21年,David Patterson 进行了 TPU 演进十年的总结:Google 的十大经验教训 【Ten Lessons From Three Generations Shaped Google’s TPUv4i : Industrial Product】 其中就指出DSA既要专门优化,也要灵活。TPUv2 引入的通用算力给 TPU 提供了更强大的能力,不仅仅局限于 TPUv1的模型推理功能,还能进行模型的训练,这往往需要更复杂的运算。Google 也是通过 XLA:一个用于 TPU 的高度定制优化的机器学习编译器,为机器学习(PyTorch、TensorFlow)与数值、科学计算(Jax、Julia、Nx)提供便捷通用的编程使用接口,通过云服务提供给用户,为尤其此生态下的用户带来了良好的用户体验。



*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客