mxGPUArray.h file not found

Hello everyone,
I am running Maverick MAC OS X 64bits and Matlab 2013a/CUDA Toolkit 5.5 and GeForce650M card. I am sure that the CUDA installation was successful by trying several CUDA-C examples included in the toolkit installation.
Now I'm trying to perform mex compilation by following the procedure in http://www.mathworks.com.au/help/distcomp/run-mex-functions-containing-cuda-code.html#btrgje7.
And this command failed with an error:
>> mex mexGPUExample.cu
mexGPUExample.cu:10:10: fatal error: 'gpu/mxGPUArray.h' file not found
#include "gpu/mxGPUArray.h"
^
1 error generated.
mex: compile of ' "mexGPUExample.cu"' failed.
Error using mex (line 206)
Unable to complete successfully.
Where can I find the mxGPUArray.h file? Why is it not on my search path?

4 Comments

Did you follow the instructions to set up the gpu mex options file? The instructions are right above the text pointed to by your first link.
Also, please try
>> mex -v mexGPUExample.cu
and post the resulting text - this will print out verbose text which will help us see why the compiler isn't finding that header file.
Note that if you don't have a mexopts.bat or mex_CUDA_maci64.xml file in the same directory as your .cu file, this will be the source of the problem.
Thank you so much! Just to provide more information. I compiled a few CUDA C files just to be sure that nvcc is properly installed and was successful. I also follow the instruction in the links very closely.
I tried the new mex -v option and saw this:
>> setenv('MW_NVCC_PATH','/usr/local/CUDA/bin/nvcc')
>> mex mexGPUExample.cu
mexGPUExample.cu:10:10: fatal error: 'gpu/mxGPUArray.h' file not found
#include "gpu/mxGPUArray.h"
^
1 error generated.
mex: compile of ' "mexGPUExample.cu"' failed.
Error using mex (line 206)
Unable to complete successfully.
>> mex -v mexGPUExample.cu
**************************************************************************
Warning: Neither -compatibleArrayDims nor -largeArrayDims is selected.
Using -compatibleArrayDims. In the future, MATLAB will require
the use of -largeArrayDims and remove the -compatibleArrayDims
option. For more information, see:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
**************************************************************************
-> mexopts.sh sourced from directory (DIR = .)
FILE = /Users/erictran/Dropbox/PhD/Codes/Paper_01/CUDA/mexopts.sh
----------------------------------------------------------------
-> MATLAB = /Applications/MATLAB_R2013a.app
-> CC = xcrun -sdk macosx10.8 clang
-> CC flags:
CFLAGS = -fno-common -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -fexceptions
CDEBUGFLAGS = -g
COPTIMFLAGS = -O2 -DNDEBUG
CLIBS = -L/Applications/MATLAB_R2013a.app/bin/maci64 -lmx -lmex -lmat -lstdc++
arguments = -DMX_COMPAT_32
-> CXX = xcrun -sdk macosx10.8 clang++
-> CXX flags:
CXXFLAGS = -fno-common -fexceptions -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8
CXXDEBUGFLAGS = -g
CXXOPTIMFLAGS = -O2 -DNDEBUG
CXXLIBS = -L/Applications/MATLAB_R2013a.app/bin/maci64 -lmx -lmex -lmat -lstdc++
arguments = -DMX_COMPAT_32
-> FC = gfortran
-> FC flags:
FFLAGS = -fexceptions -m64 -fbackslash
FDEBUGFLAGS = -g
FOPTIMFLAGS = -O
FLIBS = -L/Applications/MATLAB_R2013a.app/bin/maci64 -lmx -lmex -lmat -L -lgfortran -L -lgfortranbegin
arguments = -DMX_COMPAT_32
-> LD = xcrun -sdk macosx10.8 clang
-> Link flags:
LDFLAGS = -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -bundle -Wl,-exported_symbols_list,/Applications/MATLAB_R2013a.app/extern/lib/maci64/mexFunction.map
LDDEBUGFLAGS = -g
LDOPTIMFLAGS = -O
LDEXTENSION = .mexmaci64
arguments =
-> LDCXX =
-> Link flags:
LDCXXFLAGS =
LDCXXDEBUGFLAGS =
LDCXXOPTIMFLAGS =
LDCXXEXTENSION =
arguments =
----------------------------------------------------------------
-> xcrun -sdk macosx10.8 clang++ -c -I/Applications/MATLAB_R2013a.app/extern/include -I/Applications/MATLAB_R2013a.app/simulink/include -DMATLAB_MEX_FILE -fno-common -fexceptions -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.8 -DMX_COMPAT_32 -O2 -DNDEBUG "mexGPUExample.cu"
mexGPUExample.cu:10:10: fatal error: 'gpu/mxGPUArray.h' file
not found
#include "gpu/mxGPUArray.h"
^
1 error generated.
mex: compile of ' "mexGPUExample.cu"' failed.
Error using mex (line 206)
Unable to complete successfully.
Priyanka Bharadwaj
Priyanka Bharadwaj on 30 Oct 2019
Edited: Priyanka Bharadwaj on 30 Oct 2019
Was this issue resolved. I have the similar error. Please let me the way around for this.
/matconvnet-1.0-beta24/matlab/src/bits/datamex.hpp:19:28: fatal error: gpu/mxGPUArray.h: No such file or directory
#include "gpu/mxGPUArray.h"
However I found that file under /usr/local/MATLAB/R2019b/toolbox/parallel/gpu/extern/include/gpu
Can you please let me know how to redirect to the right path while compiling?

Sign in to comment.

Answers (0)

Asked:

on 7 Jan 2014

Edited:

on 30 Oct 2019

Community Treasure Hunt

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

Start Hunting!