【发布时间】:2018-06-15 05:02:23
【问题描述】:
我想问是否有人在 Matlab 上运行过一些包含 CUDA 代码的 C 代码?
我已阅读 Mathworks 网站上的文档,但我仍然无法完全理解它。我确实理解这是两种主要的方法,您可以通过使用函数parallel.gpu.CUDAKernel 构造一个对象来执行 CUDA 内核,或者从 .cu 文件中构造一个 mex 文件。使用这两种方法时,有些事情虽然我不明白。
- 使用 mex 方法,我应该先使用 Visual Studio 等其他 IDE 编译 .cu 文件,然后再在 Matlab 中编译 mex 文件吗?如果是这样,如何在 .cu 文件中没有 main() 函数的情况下编译 .cu 文件,当我尝试在 VS 中以这种方式编译它时总是会出错,或者在 .cu 中有一个 main 函数是否可以文件并将指向 GPU 数组的指针传递给主函数?
- 对于 CUDA 内核方法,应该在 VS 中编译内核,那么如何编译?
【问题讨论】:
-
使用
mexcudacommand 时,您不需要其他IDE。 .cu 文件由 Matlab 编译。但在 Windows 下,Matlab 将需要 Visual cpp 编译器。根据 Matlab 版本和 CUDA 工具包版本,需要特定版本的可视化编译器。