[英]Problems compiling CUDA with MEX in Matlab2014a
我正在尝试使用Matlab2014a中的MEX编译CUDA程序,但无法使其工作。 我安装了最新的CUDA工具箱(6.5)和驱动程序(340.62)并且示例正常工作,所以我猜它已正确安装。
我还安装了MS Visual Studio 2012 Professional和Matlab 2014a。
我遵循Matlab帮助中的“GPU计算 - >示例和如何 - >运行包含CUDA代码的MEX函数”中的确切描述。 我的CUDA文件以.cu结尾(所以我试图编译Matlab的标准示例mexGPUExample.cu,但我得到与其他.cu文件相同的错误),mex_CUDA_win64.xml在同一个文件夹中,环境变量MW_NVCC_PATH被设置正确地在用户变量中,并且确保我在Matlab中也称为“setenv('MW_NVCC_PATH,...)”。
如果我尝试编译一个CUDA示例
mex -largeArrayDims mexGPUExample.cu
我收到以下错误:
cl : Command line warning D9024 : unrecognized source file type 'mexGPUExample.cu', object file assumed
cl : Command line warning D9027 : source file 'mexGPUExample.cu' ignored
cl : Command line warning D9021 : no action performed
D:\PROGRAMS\MATLAB~1\BIN\MEX.PL: Error: Compile of 'mexGPUExample.cu' failed.
Unable to complete successfully.
我还尝试使用正确设置编译器
mex -setup
并选择了MS Visual Studio编译器。
代码本身有效,因为我在其他系统上测试过。
我不知道我做错了什么。 任何帮助表示赞赏。
Matlab仅在R2014a上支持CUDA 5.5,因此默认情况下你的CUDA 6.5无法在Matlab下编译mex文件。 Matlab R2014a现在支持VS 2012,但如果您的Matlab是64位,则需要验证您是否具有VS 64位编译器。 您可以使用.cpp源文件编译一个普通的.mex文件(在matlabroot / extern文件夹下有很多这些文件),看看Matlab是否适合您的VS.
请注意,Matlab在支持VS / gcc和Cuda等最新编译器方面存在滞后。 在使用最新的编译器之前,最好通过Matlab检查编译器要求。
还要检查您的Cuda套件和图形驱动程序是否已正确安装并与VS无缝协作。 您可以在VS环境下编译和运行一些.cu文件。
如果您已完成上述所有操作并更改为正确版本的编译器,请按照matheworks网站上的说明编译mexGPUExample文件。 如果我的内存是正确的,您需要设置环境变量并将XML文件复制到.mex文件路径。 然后它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.