繁体   English   中英

在Matlab2014a中用MEX编译CUDA的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM