图 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 浮点引擎上提供有效的并行执行。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查