我最近购买了P100 GPU,希望加速并行代码,并需要一些帮助来决定如何将MATLAB代码转换为CUDA代码(我已经远离普通的 gpuarrays
< / strong>在MATLAB中)。我已尝试使用 .ptx
内核和 MEX
文件,并且遇到了两个障碍。
并行代码具有元素取幂,元素乘法以及FFT和IFFT调用。它还包含复数。
从CUDA内核或MEX CUDA文件编译的.ptx
文件是否更容易使用,哪些允许我执行必要的FFT,IFFT,exp和多次调用?
答案 0 :(得分:1)
真的很简单。您必须使用MEX,因为您想要调用NVIDIA cufft库,您只能从主机执行此操作。但是,基本上没有任何情况下你可以通过MATLAB调用FFT和IFFT获得合理的加速,因为这些函数只是直接调用cufft,还有MATLAB的GPU内存池和FFT计划缓存的附加优势。所以也许你应该专注于元素方面的内核。