架构级设计包括计算引擎设计和存储系统设计。设计专用 DNN 硬件的挑战包括设计一个灵活的体系结构,然后找到配置该体系结构的最佳方法,以便为不同的 DNN 层获得最佳的硬件性能和能效。找到最佳配置的机会取决于硬件的灵活性,但较高的灵活性通常意味着需要增加额外的硬件而降低效率。
因此,通常需要经过反复的精炼过程才能得到最佳的架构设计。这是一个找到最佳映射的过程,包含确认 MAC 操作在时间(即同一 PE 上的串行顺序)和空间上(即跨许多并行 PE 的顺序)的执行顺序;如何在不同级别的存储层次结构上分区(Tiling)和移动数据,以按照该执行顺序进行计算。对于给定的 DNN 层,通常存在大量可能的映射方案。因此,找到所需指标的最佳映射方案非常关键。
把数据流用图表示的架构设计
一些新的架构把数据流用图(Graph)来表示,如 Graphcore 的智能处理单元(Intelligent Processing Unit,IPU)就是非常创新的,这种架构优化了网络内部的运行成本,已用于云端数据中心的服务器中。几年前刚创立的 Wave Computing 的数据流处理芯片也是采用数据流图进行高速处理,但 2020 年 4 月,这家在 AI 芯片领域备受关注的独角兽公司却走上了破产倒闭之路。下面以 Graphcore 的 IPU 为例,介绍其设计架构。
Graphcore 是一家英国 AI 初创公司。这家公司认为,CPU 的专长是标量,GPU 的专长是矢量,而用于智能计算的图架构是 AI 专用芯片的最佳选择。该公司专门开发了一个处理器来处理这种图架构,并将其称为智能处理单元(IPU)。
IPU 芯片有一些独特的功能。例如:这家公司认为训练和推理无须分开,而应该同时支持(见图 3.12);采用同构多核架构,超过 1000 个独立的处理器;支持 all-to-all 的核间无拥塞(Non-Blocking)通信,采用 20 世纪 80 年代提出的整体同步并行计算(Bulk Synchronous Parallel,BSP)模型,该模型是用在并行硬件和软件之间的一种桥接模型,成为冯·诺依曼串行模型的一种替代。BSP 把操作分为 3 个时间段来进行:计算、同步屏蔽及通信阶段(见图 3.13 和
(本章节未完结,点击下一页翻页继续阅读)