GPU 上的矢量化代码

Vectorized Code on GPU

我正在使用 OpenCL 在不同的 GPU 和 CPU 上同时执行一个程序以获得高性能结果。英特尔 OpenCL 始终显示内核未矢量化的消息,因此它只会在不同的内核上 运行 而不会 运行 使用 SIMD 指令。我的问题是,如果我重写代码以便 SIMD 指令可以利用 OpenCL 代码,它是否也会提高 GPU 性能?

是 - 但请注意,这在基于 APU/GPU 的 AMD GCN 或 Nvidia Fermi 或更高性能的 GPU 硬件上不是必需的 - 它们以很高的利用率进行标量运算。然而,CPU 和 Intel 的 GPU 可以通过 SIMD 指令大大受益,这就是矢量运算的归结所在。