我想问一下是否有人在Matlab上运行过包含CUDA代码的C代码?
我已经阅读了Mathworks网站上的文档,但我仍然无法完全理解。我知道有两种主要的方法可以做到这一点,一种是通过构建一个带有函数parallel.gpu.CUDAKernel
的对象来执行CUDA内核,另一种是通过将.cu文件转换为mex文件。但是,在使用这两种方法时,我还有一些不明白的事情。
- 使用mex方法,我需要像Visual Studio这样的其他IDE来首先编译.cu文件,然后在Matlab中编译mex文件吗?如果是这样,我该如何在VS中编译没有main()函数的.cu文件?当我尝试以这种方式编译它时,总是会出错,或者在.cu文件中有一个main函数并将指向GPU数组的指针传递给主函数是否可以?
- 对于CUDA内核方法,应该在VS中编译内核,那么怎么做呢?
mexcuda
命令时,您不需要另一个IDE。.cu文件由Matlab编译。但在Windows下,Matlab将需要Visual cpp编译器。根据Matlab版本和CUDA工具包版本,它需要特定版本的Visual编译器。 - Amos Egel