2017-07-17 92 views
0

我最近在加快并行代码,需要一些帮助决定如何MATLAB代码转换成CUDA代码,希望购买了P100 GPU(我搬到从普通gpuarrays在MATLAB远) 。我已经用.ptx内核和MEX -files进行了实验,并且遇到了一些障碍。CUDA实施MATLAB代码

并行码具有元素指数,元素乘法,FFT和IFFT调用。它还包含复数。

.ptx是从CUDA内核还是MEX CUDA文件编译的文件更易于使用,哪些将允许我执行必要的FFT,IFFT,exp和mult调用?

+0

你有没有试过cuFFT(http://docs.nvidia.com/cuda/cufft/index.html)? – Matso

+0

我相信cuFFT内置于MATLAB的gpuArrray fft调用中。如果是这种情况,那么在这方面没有多少改进。 – Jesse

回答

2

真的很简单。您必须使用MEX,因为您需要调用NVIDIA®(英伟达™)套箍库,您只能从主机上进行调用。然而,基本上没有什么情况下你可以通过MATLAB调用FFT和IFFT来获得合理的加速,因为这些函数只是直接调用到cufft中,还有MATLAB的GPU内存池和FFT计划缓存的额外优势。所以也许你应该关注元素明智的内核。

+0

感谢您的回答。我也意识到了这个问题,并且认为我将使用你的多元内核的解决方案进行元素乘法和指数运算,并使用MATLAB调用fft和ifft。 – Jesse