宇智波鼬 发表于 2020-7-17 22:51:21

RISC-V与人工智能发展

本帖最后由 宇智波鼬 于 2020-8-10 17:47 编辑

最近人工智能芯片很火,华为发布了两款AI芯片—升腾910和310,阿里成立的芯片公司“平头哥”,首款AI芯片最快明年下半年面世,人工智能依然是风口。行业的另一个热点是RISC-V,65家机构发起成立了中国RISC-V产业联盟。那么,RISC-V的开源架构可以给人工智能芯片带来什么机遇呢?RISC-V的首席构架师Krste Asanovic告诉我们:“Mi-V生态系统和PolarFire可为功率受限的嵌入式系统提供深度学习解决方案。”
Mi-V RISC-V生态系统开发平台是美高森美(Microsemi)加速生态系统计划的一部分,聚集了许多参与RISC-V开发的行业领导者,为客户充分利用其功能并简化RISC-V设计。Mi-V生态系统为固件和硬件工程师提供了全面的生态系统,让第三方能够使用这个平台推动RISC-V采用和创新。
在最近SiFive举办的RISC-V中国巡回研讨会上,Krste Asanovic博士向我们讲述了人工智能的进化史以及RISC-V给人工智能芯片所带来的机遇。
一、人工智能的三波浪潮人工智能(Artificial Intelligence)始于人工神经网络。人工神经网络经历了三波浪潮:第一波是上世纪五十年代和六十年代,人类发明了感知器(模拟人类视神经控制系统的图形识别机);第二波是上世纪八十年代和九十年代,称为“反向传播”的浪潮;第三波浪潮是自2010年以来的深度神经网络。值得注意的是,所有开发出来的理念比实际最终流行都要早很多年。
在上世纪五十年代和六十年代,人们发明了单层感知器。这个感知器最早是为图像处理开发的单层感知器(例如Rosenblatt),它只是一个“线性可分分类器”,不能捕获有趣函数,例如XOR函数。到了七十和八十年代,AI逐渐从统计方法转移到符号方法。
到了1986年,有影响力的PDP书籍出版,从单层感知器发展到了多层感知器与反向支撑。人们发现两层方向支撑训练网络在实现许多艰巨任务时明显好很多,但专家们一个广泛的抱怨是结果不可解释,而且用通用计算机训练的过程太慢了,所以要赶快建立定制机器。
这样就有了定制神经计算机。大的定制神经网络计算机的努力主要发生在九十年代。在上世纪九十年代逐渐有了DSP 阵列、矢量处理器、脉动阵列(Systolic arrays),以及其他更多的仿神经方法,例如:具有EEPROM权重的模拟、位系列技术、尖峰方法、异步处理器等等。
二、专用和通用计算机之争矢量微处理器(例如:Crays)在科学计算领域非常成功,它是一种全新的编程模型。给一个标准的MIPS RISC 标量处理器增加一个矢量协处理器,并全部集成在一个芯片,可用于神经网络训练。
第一台矢量微处理器是SPERT-II/T0,它产生于1995年。其系统被9个国际网站采用,作为人工智能的研发平台整整工作了9年,2004年它在最后一次“上班”后黯然下岗。
1997年出现了TetraSpert,它是一台可快速训练的矢量微处理器,使用SPARC工作站,通过Sbus总线连接若干台(4台)SRAM T0,进行神经网络的快速训练。西门子在1992年5月推出了SYNAPSE-1,这是一台“脉动阵列-多重引擎(16b*16b)”的处理器,可实现四级程序控制(68000s+微码)。
这个时代的人工智能处理器是“用简化的矢量处理填充掩模版,添加高宽带本地存储器,并向服务器附加多个以加速神经网络训练。”九十年代的人工智能市场特点一个是很小,一个是神经网络开始“人气消退”,只有一小部分人还在坚持做这个,因为摩尔定律的微缩理论更看好通用型处理器。
1996年,Intel发布了奔腾MMX(Pentium MMX),从多能奔腾开始,英特尔就对其生产的CPU开始锁倍频了,但是MMX的CPU超外频能力特别强,而且还可以通过提高核心电压来超倍频,所以那个时候超频是一个很时髦的行动。
MIT计算机科学实验室的Krste Asanovic 发表了一篇论文“可编程神经计算方法”,文章说: “尽管迄今为止实现的多媒体扩展证实了基于定点矩阵码的通用微处理器有一个有限的提升,他们预示着商业微处理器制造商的意图是这种编码工作的很好,由于商业设计团队在新的微处理器设计中加入了多媒体内核的工作量,我们期待ANN算法的功能也能够大大增加,连续大量的投资都瞄准了高容量微处理器,以确保这些器件能使用最先进的制造工艺和更激进能够产生更高快速时钟速率的电路设计风格。在这种趋势下,势必减少了对于未来专用的神经计算机的兴趣。”

宇智波鼬 发表于 2020-7-17 22:51:45

本帖最后由 宇智波鼬 于 2020-8-10 17:50 编辑

三、图像处理器(GPU)GPU和CPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
图像处理器是在90年代中后期出现的,GPU的主要功能是产生3D图像,包括高端的浮点单元,提供工作站—像PC的图形,配置图形管道等,但在初期它并不能真正的进行编程。
进入21世纪以后,特别是2001年到2005年之间,随着时间的推移图像处理器加入了更多的可编程性能。例如,用来写小程序的新语言Cg在每个格点或每个像素进行,也在Windows DirectX变体上进行。出现了大量并行的(每框约上百万的格点或像素)但是非常严格的编程模型,某些用户注意到它也可以做通用计算,将输入输出数据映射到图像,计算格点和像素阴影。这些难以置信的编程模型,必须使用图像管道模型进行通用计算。
通用图像处理器(GP-GPU)的里程碑是2006年英伟达发布的GeForce 8800GPU,它可以支持一个新的可编程语言:CUDA,这是一个“统一计算设备架构”。接着,行业更广泛地推动了一个有同样想法的中立供应商版本OpenCL,其想法是,利用GPU的计算性能和存储器带宽来加速某些内核通用计算性能。这样就产生了附加处理器模型:主机CPU将数据并行内核发布到GPU执行,时间久了,就演变成为了速度最快的执行神经网络训练的标准方式。
此时GPU已经不再局限于3D图形处理了,GPU通用计算技术发展引起业界的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。
GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。
所以与CPU擅长逻辑控制和通用类型数据运算不同,GPU擅长的是大规模并发计算(Concurrent computing),这也正是人工智能等所需要的。所以GPU除了图像处理,也越来越多的参与到计算当中来。四、定制AI芯片的广泛努力在图像处理器GPU逐渐演变为通用计算处理器的时候,许多定制芯片厂商也在努力开发定制AI芯片。例如Google推出的TPU(张量处理器)、TPUv2、TPUv3等云计算系列芯片,也有人称之为AI协同处理器。TPU的性能比现代CPU和GPU高15-30倍,每瓦性能提高30-80倍。
AI 加速器设计的原型是边缘推理(Inference at edge),它最关切的因素是成本、性能和功耗,需要高压缩的模块来减少系统成本和功耗,以及成本性能绩效。
云端推理最关切的是(交互)延迟、吞吐量和成本,响应用户要求的快速性和可预见力,因为有许许多多的用户,因此降低每个用户的成本是关键。
云端训练关切的是性能。价值是得出的数据模型,要为高的成本/功耗辩解。单次训练可达数周,优化技能人才开发稀缺资源。这个更像传统的HPC,而不像传统的云,追求极限的工艺,最先进的工艺节点,互连、冷却技术等等。
总的来说,云AI加速器的共性包括,专用矩阵引擎、压缩的定点/浮点格式、多片片上暂存存储器、先进节点中的全掩模板、最高带宽的外部DRAM、最高带宽的串行链路等。
摩尔定律死了,阿姆达尔定律活着,而且是活蹦乱跳地活着。本篇完
页: [1]
查看完整版本: RISC-V与人工智能发展