2011 年推出的英特尔®高级矢量扩展指令集(英特尔®AVX),大大提高了公司每代处理器的矢量处理效率,从而使得这些单元变成了更受欢迎的信号和图像处理平台。 最近英特尔 AVX 2.0 被引入到 Haswell 微架构以获得更佳性能,包括:

  • 在四核第四代智能英特尔®酷睿™2.4 GHz 处理器下,带有积和熔加计算(FMA)指令、双峰值浮点吞吐量 307 GFLOPS(每秒十亿次浮点运算)
  • 将大多数整数指令扩展到 256 位以获得两倍以上的峰值整数吞吐量
  • 定点运算吞吐量加倍
  • 新矢量聚集、移位和交叉变换函数实现了更多矢量化和更高效的负载和存储,从而改进了定点和浮点算法。

Haswell 微架构的改进也有助于提高信号和图像处理应用中的性能。这些变化包括:

  • 使存储器流水线在每一循环执行两个负载和存储操作
  • L1 高速缓存的带宽加倍,达到每循环 96 个字节(64 字节读取加上 32 字节写入)
  • L2 高速缓存的带宽倍增到每循环 64 字节

这些升级,加上内部末级缓存,每秒 320 GB 环形总线和 DDR3 双通道内存(峰值内存带宽= 25 GB /s,频率为 1,600 MHz),确保了处理器能不断地得到"供给",达到最大性能。

应用
英特尔 AVX 2.0 最适于计算密集型应用程序,以及那些在向量化循环里需要大量时间并满足以下条件的应用程序:

  • 迭代计数≥向量宽度(即  ≥8 个整数,8 个浮点,或 4 个双精度数)
  • 整数运算和位操作(即视频和图像处理)
  • 利用 FMA(即线性代数)的浮点操作
  • 非连续的内存访问(即那些使用新的收集指令和变换指令的)

以英特尔 AVX 2.0 处理性能作为基准
N. A. 软件公司(NAS)开发和授权雷达算法和低层 DSP 库,其中包括 VSIPL(向量、信号和图像处理库)——这些能够支持多线程,并通常被用于大型多核和共享内存系统,并使用可扩展性能解决大型问题。

公司引进了优化的英特尔 AVX 2.0 VSIPL用于解决复杂的矢量乘法运算、正弦/余弦和双曲复数 FFT。 这个库是独立代码,不依赖于第三方软件,这使得程序库能够利用英特尔 AVX 2.0 指令集对任何操作系统进行重新编译。

NAS 最近使用 VSIPL 作为基准检测英特尔 AVX 2.0。结果表明英特尔 AVX 2.0 相比英特尔 AVX的初始版本,函数加速两倍(见下文)。

 

下图提供了上一表格中第一个项目的详细信息,1D FFT 采用了双曲复数数据:

 

NAS 技术总监David Murray写道,"采用全新的英特尔 AVX 2.0 指令集会有显著加速。 这些加速来自 FMA 指令。"在单独的、更大范围的 DSP 研究中,他指出了与英特尔 AVX 2.0 相比,英特尔 AVX 774 DSP 操作的平均速度在增加。"你看到使用整数数据或短整型数据的操作性能有了很大提高,是因为英特尔 AVX 2.0 指令集包含更广范的 8 路 SIMD [单指令多数据,即在多个数据集上的相同操作]向量运算。浮点操作的性能也有一个大的提高,因为英特尔 AVX 2.0 指令集包含有 8 路 SIMD 积和熔加指令。虽然双精度数据的一些性能加速是由于我们的算法的改进,但整数和浮点加速却要归因于英特尔 AVX 2.0 指令集。"Murray说到。

NAS 也使用公司的 SARMTI(合成孔径雷达和移动目标指示)先进雷达处理算法进行英特尔 AVX 2.0 基准检验。 SARMTI 直接从合成孔径雷达图象中提取慢速和快速移动物体的高分辨率数据,不再需要一个单独的移动目标(多普勒)雷达。 此时英特尔 AVX 2.0表现出显著的速度提升,相比较英特尔 AVX,速度由 1.26 倍提升至 1.52 倍。对类似的基准研究,Murray报告里写道,"与 Ivy Bridge 相比,我们的 SARMTI 在 Haswell 上的应用速度加快了1.33 倍~1.42 倍。"

"我们可以提供所有产品的英特尔 AVX 2.0 版本,"Murray总结到。 "我们做出这项投资是因为软硬件方案更快了。 但是,我们仍然提供英特尔 AVX[和其他传统技术],如果客户有需求。 客户改变硬件选择的过程是缓慢的,和硬件相关的项目也需要多年才能实现。"

了解更多

此博客中的解决方案

相关主题

N A 软件是英特尔®智能系统联盟的附属成员。

Rick DeMeis
流动记者(英特尔订约人),英特尔智能系统联盟
在Twitter上关注我: @rickdemeis