在OpenMP中,程序员可以向编译器提示循环的主体可以向量化。数据自动化系统C中有类似的东西吗?在转换循环体时,我们能告诉nvcc使用矢量指令吗?代码应该由线程处理器执行,线程处理器是SIMD,所以这可能是真的。
发布于 2015-04-07 13:43:55
数据自动化系统C中有类似的东西吗?在转换循环体时,我们能告诉nvcc使用矢量指令吗?
CUDA不是一个翻译引擎,其方式与OpenMP语用导致代码翻译的方式不同。
在大多数情况下,CUDA GPU没有矢量指令(除了SIMD本质和相应的PTX SIMD视频指令)。通常,GPU上的“向量化”是通过SIMT机构实现的。
CUDA GPU线程处理器不是SIMD。它是一个单线程的单数据处理器.SIMD/SIMT是通过将相邻线程聚合成翘曲来实现的。
您可能希望查看一个CUDA白皮书,例如费米白纸 (例如,第7页),它概述了GPU线程的执行情况。
发布于 2015-04-13 22:50:35
CUDA不是一个翻译引擎,但是OpenACC是,它是像图形卡这样的加速器的OpenMP,这将真正回答你的问题:https://developer.nvidia.com/openacc
https://stackoverflow.com/questions/29491775
复制相似问题