MATLAB Answers

Compiling CUDA files with mexcuda - why wont Matlab accept my compiler?!

30 views (last 30 days)
Im trying to compile CUDA files into mex.
Matlab ships with an example CUDA file located in matlabfolder\toolbox\distcomp\gpu\extern\src\mex, but when I try to compile it by typing:
mexcuda mexGPUExample.cu
I get:
"Error using mex
No supported compiler or SDK was found"
Im using the Microsoft Visual C++ 2015 Professional (C) compiler for both C and C++ but Ive also tried the MinGW64 Compiler and the Windows SDK 7.1 which all gives me the same error.
Im using the CUDA toolkit 8, and in Visual studio I can compile .cu files so I obviously have a supported compiler. How do I make Matlab realize that and allow me to compile .cu files?
Thanks.

  0 Comments

Sign in to comment.

Accepted Answer

Joss Knight
Joss Knight on 3 Oct 2016
Hello Petter,
CUDA 8.0 was only released last week! mexcuda doesn't yet support it, and consequently does not yet support Visual Studio 2015, which is supported by CUDA 8.0 but not CUDA 7.5.

  7 Comments

Show 4 older comments
Joss Knight
Joss Knight on 5 Oct 2016
Like I said, mexcuda does not support Visual Studio 2015 because CUDA 7.5 doesn't support it. You need to use VS 2012 or 2013. mexcuda can only support the host compilers that the CUDA compiler supports.
Engenuity
Engenuity on 16 Jan 2017
I am using VS2010 and having the same problem. I don't think an earlier version of VS is the correct fix.

Sign in to comment.

More Answers (1)

Mendi Barel
Mendi Barel on 28 Feb 2017
Edited: Mendi Barel on 28 Feb 2017
This is how to compile (mexcuda) with Visual Studio 2015 and Cuda 8.0 :
  1. Go to: "\toolbox\distcomp\gpu\extern\src\mex\win64"
  2. Copy files and rename 2013 to 2015: { "nvcc_msvcpp2013.xml" , "nvcc_msvcpp2013_dynamic.xml"}
  3. Replace inside those files "7.5" to "8.0" and "12" to "14".
  4. Done.

  2 Comments

Dang Manh Truong
Dang Manh Truong on 21 Mar 2017
Actually when I tried your solution, an error came up: It says that the file ucrt.lib was missing. I searched the internet but could not find a solution, so I had no choice but to search for the file (in Program Files), then copy it to the Matlab's working directory. Only then did it work. But thanks anyway
Soroush Mehravar
Soroush Mehravar on 4 Oct 2017
Dang, is the name of file exactly ucrt.lib? I cannot find it in the program files.Thanks!

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!