础滨驱动的设计应用
对于人工智能 (AI) 应用(例如,自动驾驶汽车的行人检测或数码相机的图像质量增强),经过训练的神经网络在性能、效率和算法灵活性方面已优于可编程的数字信号处理器 (DSP)。这并不意味着 AI 处理中不需要 DSP。事实上恰恰相反。对于许多应用的 AI 子系统来说,神经网络加速器和矢量 DSP 配合使用是绝佳组合。
重要的是,要分别考虑神经网络处理技术(例如卷积神经网络 (CNN) 或转换器)和运行这些模型所需的硬件。有许多方法可以实现这些模型。任何可以执行乘法运算并移动大量数据的处理器最终都可以执行这些计算密集型模型。借助先进的量化技术,经过训练的神经网络的 32 位浮点输出在经过训练后可以在 8 位整数控制器或处理器上运行,而且精度几乎没有降低。
这意味着可以在 CPU、GPU、DSP 甚至无足轻重的微控制器上处理 CNN 推理,而且可以获得同样出色的准确度。如果实时性能(以帧/秒为单位,其中,帧是未压缩的图像)很重要,则务必更谨慎地选择要用于处理 AI 推理的处理器。也就是说,您需要在下一个图像帧可用之"前,在有限的时间内处理图像帧。高水平的性能在许多实时应用中至关重要;想象一下这样的情况:一辆汽车以 70 英里/小时的速度冲向行人,需要迅速决定是否要刹车。多摄像头配置、高分辨率、最低延迟,这些因素都促使需要尽量提高计算效率,以帮助做出生死攸关的决定。
图 1:AI 应用涵盖从几 GOPS 到数千 TOPS 的各种性能要求。
每秒十亿次运算 (GOPS) 和每秒万亿次运算 (TOPS) 常用于简洁地表示处理 AI 模型的计算性能,1 TOPS 等于 1000 GOPS。TOPS 充其量是一阶指标,可提供相对理想的处理器性能。对于 AI 处理,通常会比较 TOPS 来进行 INT8 计算(20 INT16 TOPS 需要比 20 INT8 TOPS 更多的内存和更频繁的数据移动)。从图 1 中可以看出,不同的 AI 应用有各种各样的性能要求。
TOPS 的计算方式为:一个周期内可以完成的运算次数(一次乘积累加视为两次运算)乘以最大频率。这是很好的首次性能估算,因为大部分计算由对矩阵乘法的需求驱动,而矩阵乘法需要乘积累加运算。具有 DSP 扩展的 CPU 可以每个时钟周期执行一次乘积累加 (MAC) 并以 2 GHz 的速度运行,其运算能力为:2 GHz x 2 次运算(乘积、累加)x 1 MAC/周期 = 4 GOPS 或 0.004 TOPS。表 1 显示了预期内的相对性能。神经处理单元 (NPU) 显然是获得最高计算结果的最佳选择。
处理器类型 |
MAC 次数/周期 |
最大频率 |
理想的 TOPS |
具有 DSP 扩展的 CPU |
1 |
2 GHz |
2 GOPS |
矢量 DSP |
512 |
1.2 GHz |
1.2 TOPS |
狈笔鲍(低端) |
4,096 |
1.3 GHz |
10.6 TOPS |
狈笔鲍(高端) |
96,304 |
1.3 GHz |
255.6 TOPS |
表 1 – 各种处理器的大致性能范围
GPU(在上表中没有列出)也可以提供高水平的性能,但功耗和面积成本要高得多,这对实时应用来说是难以接受的。事实上,上表中所列的每种处理器都需要不同级别的功率和面积才能达到所需的运算能力。对于实时应用,功耗(有时更准确地称为热冲击)和面积(与成本和可制造性直接相关)几乎与性能同样重要。NPU 经过设计和优化,是执行神经网络算法时性能、功耗和面积效率最高的处理器。
并非每个 AI 应用都需要 NPU 提供的最高级别的神经网络性能。参考图 1,如果您的系统已配备具有 DSP 扩展的微控制器/CPU 或者配备矢量 DSP,那么,在其他典型处理任务之"间见缝插针地执行运算能力要求较低的神经网络任务可能完全没问题。如果您同时需要 AI 性能(小于 1 TOPS)和 CPU 或 DSP 的非 AI 处理能力,那么它们将是应用的理想选择。当运算能力要求高于 1 TOPS 时,NPU 在实时应用中的 AI 性能效率、功耗效率和面积效率毋庸置疑。
NPU 的业内最佳效率来自每个周期可以完成的大量乘积,以及一些专用于其他神经网络运算(例如激活函数)的硬件。NPU 面临的挑战是如何实现最大硬件加速,从而最大限度地提高神经网络效率,同时保持一定程度的可编程性。当然,全硬件神经网络 ASIC 将比可编程 NPU 更高效。然而,随着对 AI 的学术研究不断加快,并带来了新技术、新模型和激活函数,保持一定程度的可编程性至关重要,因为生产 AI SoC 需要历时多年。
NPU 是专用的神经处理器引擎,而 CPU 或 DSP 可以将执行 AI 作为额外任务。由于 NPU 仅执行 AI,因此,对于高于 1 TOPS 的 AI 要求,建议将矢量 DSP 和 NPU 结合使用。这样可以提供最高性能和额外的可编程性。例如,在自动驾驶汽车中,当 NPU 寻找行人或识别街道标志或使用神经网络进行雷达或 LiDAR 处理,系统还需要矢量 DSP 来为 NPU 进行额外筛选、雷达或 LiDAR 处理以及预处理和后处理。
图 2:矢量 DSP 和神经网络性能的不同组合。
图 2 显示了在 AI 应用中结合使用 NPU 和矢量 DSP 的各种可能性。在图中所示的三种情况下,高分辨率图像帧都位于 DDR 内存中,等待在下一个帧到达之"前得到处理。在第一种配置中(左侧),矢量 DSP 本身可用于 DSP 处理和一部分 AI 处理——这属于运算能力低于 1 TOPS 的用例:大型 DSP,小型 AI。这种用例的一个具体示例是为永磁同步电机 (PMSM) 执行无传感器磁场定向控制 (FOC) 的矢量 DSP。基于 DSP 的电机控制通过 AI 处理实现扩展,AI 处理的作用是执行位置监控,并将相关信息反馈到控制回路。AI 模型的采样率和计算复杂性使其能够与矢量 DSP 的 AI 功能相适应。
在第二种配置中(中间),AI SoC 需要很高的矢量 DSP 性能和 AI 性能:大型 AI,大型 DSP。当矢量 DSP 处理高度依赖 DSP 的任务时,需要用 NPU 为 AI 密集型任务提供的神经网络加速作为补充。这种配置的其中一个用例是数码相机。矢量 DSP 可以对 NPU 执行视觉处理以及预处理和后处理支持,而 NPU 则专用于对高分辨率图像进行 CNN 或转换器处理(对象检测、语义分割、超分辨率等)。这些用例需要紧密集成的矢量 DSP 和 NPU 解决方案,而且可进行扩展以适应性能目标。
在第三个配置中(右侧),所有的处理都集中在神经网络上,只有 NPU 支持需要 DSP 处理:小型 DSP,大型 AI。需要 NPU 来处理神经网络,这些神经网络通常可以在 NPU 中完全执行。ResNet-50、MobileNet v2 等标准神经网络模型或图形可以完全在 Synopsys 的 ARC? NPU 中运行。有一些更复杂的神经网络模型需要矢量 DSP 的支持来执行浮点运算。例如,Mask-RCNN 的 ROI 池化和 ROI 对齐,或 Deeplab v3 使用的非整数比例因子。即使 AI SoC 不需要任何额外的 DSP 处理,纳入一定程度的矢量 DSP 性能来支持 NPU 还是有好处的,可以更好地适应未来的发展。
虽然市场上有多种矢量 DSP 和 NPU 供选择,但对于第二种和第三种配置,最好选择包含紧密集成处理器的 AI 解决方案。一些神经网络加速器将矢量 DSP 嵌入到神经网络解决方案中,这样限制了矢量 DSP 用于外部编程。Synopsys 的 ARC EV7x 视觉处理器是异构处理器,将矢量 DSP 与可选的神经网络引擎紧密耦合。为了提高客户的灵活性和可编程性,ARC EV7x 系列正在发展成为 ARC VPX 矢量 DSP 系列和 ARC NPX NPU 系列。VPX 和 NPX 是紧密耦合的 AI 解决方案。图 3 显示了这两种处理器的粗略框图及其互连方式。
图 3:Synopsys ARC VPX5 和 ARC NPX6 的紧密耦合型组合
包括深度技术文章、白皮书、视频、即将举行的网络研讨会、产物公告等等。
ARC VPX DSP IP 在基于超长指令字 (VLIW)/单指令多数据 (SIMD) 架构的并行 DSP 处理方面表现出色,并针对嵌入式工作负载的功耗、性能和面积 (PPA) 要求进行了优化。可将 VPX 系列配置为支持浮点和多种整数格式(包括用于 AI 推理的 INT8 运算)。VPX 系列在 128 位(VPX2、VPX2FS)、256 位(VPX3、VPX3FS)和 512 位(VPX5、VPX5FS)矢量字上运行,因此可提供多种性能,而且可以从单核扩展到四核。这样可以每个周期提供 16 个 INT8 MAC 至 512 个 INT8 MAC(在四核 VPX5 上使用双 MAC 配置)。
ARC NPX NPU IP 专用于 NN 处理,还针对实时应用的 PPA 要求进行了优化。该系列从每个周期 4096 个 MAC 的版本扩展到每个周期 96000 个 MAC 的版本,然后可以扩展到多个实例。NXP6 系列在单个 SoC 上的 AI 性能可从 1 TOPS 扩展到 1000 TOPS。它还针对 CNN 的最新神经网络模型和新兴的转换器模型类别进行了优化。
如图 3 所示,VPX 和 NPX 系列紧密集成。ARCsync 是额外的 RTL,可在处理器之"间提供中断控制。数据通过外部 NOC 或 AXI 总线传递,这类总线通常已在 SoC 系统中存在。虽然两个处理器可以完全独立运行,但 VPX5 能够根据需要访问 NPX6 的 L2 内存。
通用软件开发工具链 ARC MetaWare MX 也支持 VPX5 和 NPX6 的紧密集成,该工具链支持 NXP 和 VPX 的任意组合。SoC 架构师可以使用这些可扩展处理器系列选择 DSP 性能和 AI 性能的正确组合,以最大限度地提高性能并减少面积开销。对于高度依赖 AI 的工作负载,“大型 AI,小型 DSP”配置的经验法则是,每 8000 或 16000 个 MAC 为 NPX 配备一个 VPX5(具体取决于模型和工作负载)。对于 NPX6-64K 配置,建议至少使用四个 VPX5 内核。
诚然,对于特定任务(例如行人对象检测),神经网络处理已经取代了 DSP 处理,但矢量 DSP 的 SIMD 功能与 DSP 支持功能和 AI 支持功能相结合,可使其成为 AI 系统的重要组成部分。随着嵌入式应用对 AI 处理的需求持续增长,要实现灵活设计,建议的最佳做法是结合使用 NPU 和矢量 DSP,前者用于 AI 处理,后者用于 NPU 支持和 DSP 处理,这样有助于为快速发展的 AI 提供具有前瞻性的 AI SoC。
深度技术文章、白皮书、视频、网络研讨会、产物公告等等。