我读了几个关于这个主题的问题(SIMD模式),但是对于事情是如何工作的,我还是稍作了澄清/确认。
Why use SIMD if we have GPGPU?
SIMD intrinsics - are they usable on gpus?
以下几点是正确的,如果我用SIMD-8模式编译代码? 1)这意味着8个不同工作项的指令被并行执行。
2)是否意味着所有工作项只执行相同的指令?
3)如果每个wrok项代码都包含vload16加载,则只包含float16操作和vstore16操作。SIMD-8模式仍能工作.我的意思是说,GPU是否真的对所有8个工作项执行相同的指令(vload16 16/ float16 / vstore16)?
我应该如何理解这个概念?
发布于 2015-08-02 19:21:06
在过去,许多OpenCL供应商需要使用向量类型才能使用SIMD。现在,OpenCL供应商正在将工作项打包到SIMD中,因此不需要使用向量类型。可以通过查询:CL_DEVICE_PREFERRED_VECTOR_WIDTH_<CHAR, SHORT, INT, LONG, FLOAT, DOUBLE>
来检查是否使用向量类型。
在Intel上,如果使用向量类型,则向量器首先对它们进行标度,然后再对其进行矢量化,以利用宽指令集。在其他平台上,这可能也是类似的。
https://stackoverflow.com/questions/31753304
复制相似问题