嵌入式技术
传统数字信号处理器 (DSP) 的架构在特定的信号处理计算应用中已经显得捉襟见肘。而超长指令字 (VLIW) 和单指令/多数据 (SIMD) 架构的组合却可提供高计算性能所需的并行吞吐量,其数据通常为16、24 和 32 位字宽。这非常适合语音/音频和通信等应用中使用的算法。在前几代 DSP 算法开发中,系统和软件开发人员会在 MathWorksMATLAB® 中开发系统算法,随后再将算法移至 DSP,在转移时,会将 MATLAB 的浮点数据类型输出转换为定点类型输出。 DSP开发者通过定点数据来满足循环和准确方面计算的需求,同时使硬件的使用和功耗降至最低水平。
由于上市时间的需要,新的算法和计算利用自定义软件算法以及新产品更激进的上市时间窗口来区分产品。当前系统可能跳过从浮点到定点的转换步骤,而只保留在 DSP 上运行浮点。汽车 ADAS 和 RADAR/LiDAR 等较新应用要求在计算路径的所有部分中都具有高精度的需求。在前端 FFT 计算中,较大的点 FFT(例如 4K、8K 和更高的点 FFT)无法在定点(溢出)保持位精度。因此,为了获得最高性能则需要配合单精度或半精度浮点数据类型。
在各种汽车应用中,尤其是 ADAS、动力总成和马达控制/管理中,用于更快/更流畅的系统响应的预测建模正变得越来越普遍。预测建模使用能够基于各种输入来预测结果的统计模型。这种实现方式的好处在于DSP 处理器可以运行高度复杂的模型,并且可以响应更广范围的传感器和环境输入并更快地生成输出。机器学习算法对于匹配预测模型的状态也很有帮助,该算法可以帮助学习预期的结果并进一步改善响应时间和输出质量。预测建模最好在基于线性代数的算法中使用单精度浮点来实现,以确定计算数据的范围和准确性。同时,可以将数学计算归类为线性代数运算在 DSP 处理器上进行大量计算。
具有高性能处理的应用 - (例如每秒 10 吉比特数据速率的 5G 无线通信,以及每秒需要 200 吉比特以上数据吞吐量的汽车 ADAS、RADAR 和 LiDAR)都需要具有非常宽的向量计算能力,以及具备高度并行执行能力的 DSP。这些新的 DSP 计算驱动因素改变了传统 DSP 内核的架构和指令集架构 (ISA) 要求。DSP 需要极高水平的计算吞吐量,并需同时具有高水平的单精度和半精度浮点计算。传统 DSP 处理器重点执行定点数据类型处理,而增加的浮点单元在处理能力和功耗方面并非是最佳选择。传统的 DSP 处理器对线性代数的指令支持有限,对于矩阵转置运算, 虽然提供 SQRT 和/或 1/SQRT 支持,但对于线性代数算法的完整范围则必须对数学运算进行软件仿真。
新一代的 DSP 内核能满足浮点和线性代数数据吞吐量的计算要求。该DSP 是 DesignWare® ARC® VPX5 处理器 IP方案会在其中作为本机架构的一部分来开发浮点和线性代数向量计算,并通过向量 SIMD 和 VLIW 架构有效实现超高水平的并行处理。DesignWare ARC VPX5 处理器 IP 具有四个并行执行维度(图 1)。
图 1:在 DesignWare ARC VPX5 处理器 IP 上并行执行的 4 个维度
第 1 维度:浮点的多 SIMD 计算引擎
基本向量数据长度为 512 位,从而可以对 8 位、16 位和 32 位数据,或半精度和单精度浮点数据的数据单元进行 SIMD 计算。所有 SIMD 引擎都使用 512 位向量长度进行计算;这就确定了 ARC VPX5 处理器的计算能力上限。
对于 8 位、16 位和 32 位长度的整数数据,有两个 512 位 SIMD 计算引擎以及三个 ALU 处理单元。这为机器学习卷积运算(5x5、3x3 和 1x1)等算法提供了非常高的计算水平。
对于半精度和单精度浮点计算,有三个向量 SIMD 计算引擎,所有引擎都支持 512 位的最大向量长度。用于“常规”浮点向量运算的双 SIMD 引擎,为包括FFT的DSP函数和矩阵运算等在内的浮点向量运算提供了超高性能。
第三向量 SIMD 浮点引擎专用于线性代数数学函数。这种专用引擎允许卸载和并行计算数学函数,将会在第 4 维度部分中进一步说明。
第 2维度:借助多任务发布 VLIW 实现灵活性
在 4 次发布 VLIW 方案中执行灵活分配,使处理器能够尽可能分配最多的并行操作。VLIW 方案的开发与软件编译器的开发工作实现了密切配合,因此编译器会预先分配在原始 C 代码程序中编译的运算符。编译器与 VLIW 架构相结合,可以跨多个 SIMD 引擎并行执行操作
例如,图 2 显示了编译器如何能够结合 VLIW 分配方案,仅使用两个 VLIW 插槽即可实现跨三个浮点 SIMD 引擎的并行执行,并且实现最佳的 VLIW 插槽分配和更小的指令代码大小。因为两个向量 SIMD 浮点引擎具有零周期插入延迟,所有可以在每个周期将向量数据加载到 SIMD 引擎中。线性代数向量 SIMD 引擎的插入延迟为四个周期,因此在加载数据之后,需要额外等待三个周期,直到可以加载新的向量数据为止。编译器可以为这种不同的插入延迟预先分配 VLIW 插槽,从而在所有三个向量 SIMD 浮点引擎上提供有效的并行执行。
图 2:三个并行向量 FPU 执行的编译器分配
第 3 维度:可配置为单核、双核及四核
DesignWare ARC VPX5 处理器 IP 与多个向量 SIMD 计算引擎并行,并带有 VLIW 分配功能, 允许将单核扩展到双核和四核配置。这样可以根据需求将单核 VPX5 的计算性能提高一倍或三倍,以满足更高的计算需求。DesignWare ARC MetaWare 开发工具完全支持跨多核配置的代码编译和执行。此外,由于产品包含信号功能,所以可支持多核任务执行和同步。
对于单核、双核和四核配置,数据移动是 VPX5 产品的关键。有一个 2D 直接内存访问 (DMA) 引擎,可配置多达四个以上的通道,每个周期最多提供 512 位传输。DMA 可以在各个多核的数据存储器之间、本地集群存储器之间或在外部 AXI 总线的输入/输出之间并行移动数据。这种高性能 DMA 与 VPX5 处理器的高计算吞吐量相得益彰,使向量 SIMD 引擎可以不断访问每个内核上与本地紧密耦合的向量数据存储器中的新向量数据。
第 4 维度:线性代数计算
许多新一代算法使用依赖线性代数基本函数的数学方程式和计算来实现计算吞吐量。此类示例包括对象跟踪和识别、预测建模以及一些筛选操作。在这种新的驱动趋势之下,VPX 处理器在提供纯粹用于线性代数的专用向量 SIMD 浮点计算引擎方面独树一帜。该引擎硬件加速了线性功能,例如除法、SQRT、1/SQRT、log2(x)、2^x、正弦、余弦和反正切,并在 SIMD 向量中予以执行,从而提供了非常高的性能。
借助四维度并行处理功能,DesignWare ARC VPX5 处理器 IP 可满足高吞吐量应用对浮点和线性代数处理的需求。与具有类似架构的其他 DSP 处理器相比,该方案提供了业界领先的性能指标 - 例如,配置最高的 VPX5 每周期可提供 512 次半精度浮点运算1.5GHz 运行,相当于 768 GFLOP。此外,ARC VPX5 根据线性代数运算的使用情况,每周期可提供 16 次数学浮点计算。对于机器学习计算算法中使用的 8 位整数数据,VPX5 每周期最多则可提供 512 个 MAC。
DesignWare ARC MetaWare 开发工具现已可支持VPX5处理器,该工具提供了完整的编译器、调试和仿真平台。这使开发人员能够快速高效地将 C 代码算法编译到 VPX5 内核中的处理引擎。循环等效仿真平台让开发人员可以自由评估循环计数性能,并检查关键算法和程序的最佳性能。DesignWare ARC MetaWare 开发工具除了提供 DSP 库之外,还提供线性代数和机器学习推断 (MLI) 库。这使得开发人员可以轻松地通过 API 接口将代码移植到数据库中,并很快达到最佳性能。在MLI 算法上则提供了各种基于神经网络的计算组件,以实现高性能软件 AI 计算。
DesignWare ARC VPX5 处理器 IP 是新一代 DSP,用于满足处理密集型应用的数据计算需求。浮点、AI 和线性代数计算算法的四个并行处理维度使 DesignWare ARC VPX5 处理器能够为汽车 ADAS 传感器节点(RADAR 和 LiDAR)、5G 新无线电 (NR) 通信基带调制解调器、动力系统、引擎管理、机器人技术、马达控制和 5G 汽车通信 (5G C-V2X) 等应用提供超高性能。VPX5 凭借行业领先的 512 FLOP/周期和针对线性代数的独特 16 数学 FLOP/周期,为系统开发人员提供了性能满足新一代高性能计算算法需求的 DSP。结合具有 DSP 和数学库的 ARC MetaWare 开发工具,开发人员可以快速移植 C 代码算法并获得最佳性能,以加快产品上市时间。
作者:Synopsys ARC 处理器产品营销经理 Graham Wilson
全部0条评论
快来发表一下你的评论吧 !