本帖最后由 宇智波鼬 于 2020-8-10 17:33 编辑
三、图像处理器(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 执行,时间久了,就演变成为了速度最快的执行神经网络训练的标准方式。
图三、CPU 和 GPU 的架构示意
(图片来自 nVidia CUDA 文档。其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元)
此时 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、最高带宽的串行链路等。
假设以上条件全部成立,AI 能够成功吗?Krste Asanovic 博士给出了三点预测:第一、算法变化很快但模式经久;第二、摩尔定律死了但阿姆达尔定律(Amdahl’s Law)还活着;第三、软件最重要,但你永远无法完成它。阿姆达尔定律表明,即使到了多核时代,并发程序的开发或者说提升程序的并发度仍然具有十分重要的意义。
阿姆达尔定律是一个计算机科学界的经验法则,可用于指导 CPU 的可扩展设计。阿姆达尔定律指出,CPU 的发展有两个方向,更快的 CPU 或者更多的核。目前看来发展的重心偏向了 CPU 的核数。但有时我们会发现虽然拥有更多的核,当我们同时运行几个程序时,只有少数几个线程处于工作中,其它的并未做什么工作,实践当中,并行运行多个线程往往并不能显著提升性能,程序往往并不能有效的利用多核,在多核处理器中加速比是衡量并行程序性能的一个重要参数。
AI 的算法在流片和布局中一直在改变,按照伯克利的观点:“Dwarfs 侏儒”是任何计算问题的最基本因素。Krste Asanovic 博士说,“我不知道 AI 算法的未来是什么样子,但是他们将使用这些模式,设计永远是这些模式的灵活组合。”
摩尔定律死了,阿姆达尔定律活着,而且是活蹦乱跳地活着。
图四、谷歌推出的 TPUv2(上)和 TPUv3(下)pod(来源:网络)
五、应用于 AI 加速器的 RISC-V
软件被定义为通过优化算法训练的神经网络构架以解决特定的任务。今天,神经网络是用来学习解决问题的实际工具,其中涉及通过大数据集进行分类学习。
做研发的人有深切的体会,“在流片前永远结束不了软件工作,在流片前不太可能完成 1%的软件工作,倾向于只编码了内核(1%)还剩 99%,但你要记着阿姆达尔定律!”Krste Asanovic 博士强调,“如果系统很难编程,那么就不会有软件了;如果你没有软件,你就不会有一个加速器!”
RISC-V 是免费且开放的 ISA,通过开放标准协作推动实现处理器创新的全新时代。RISC-V 也可成为定制加速器的设计基础。
应用一个简单的基础 ISA 对所有核可以大大简化软件。例如,在你需要一个高性能 Unix 兼容核去运行操作系统时,建立一个超标量体系结构 OoO 核;在你微代码调度需要 VLIW 的时候,按顺序构建超标体系结构;在你需要低精度 SIMD 的地方,使用标准矢量扩展;在你想需要利用 2D 优化的地方(例如:多路脉动阵列、卷积),使用 2D 扩展(正在进行中);在你需要中断 / 响应 I/O 管理核的地方,建立嵌入式核;以及相同的存储器模块,同步基元,编程工具流程(C- 结构包),查错,跟踪……等等。
RISC-V 可定制化核有许多丰富的选择,包括被连接到相干高宽带结构的核和即将到来的矢量扩展、客户自定义指令扩展、依附在相干构造上的 AI 加速器等。
一个好消息是开源的 Nvidia NVDLA 在其 SiFive 流行芯片上已经得到演示,SiFive Design Sharer 提供了简洁全面的 ASIC 设计服务,以及提供应用于高宽带存储系统的 HBM2 IP 和应用于柔性芯片连接的 Interlaken IP 等众多人工智能 RISC-V IP 核。
本篇完
|