Compile MEX-function for GPU computation
mexcuda option1 ... optionN filenames
mexcuda compiles and links source files
into a shared library called a MEX-file, executable from within MATLAB.
mexcuda is an extension of the MATLAB
mex function. It compiles MEX-files written using
the CUDA C++ framework with NVIDIA’s
allowing the files to define and launch GPU kernels. Only a subset of
Studio® compilers is supported for mexcuda. For details, consult the
documentation. In addition, the
function exposes the GPU MEX API to allow the MEX-file to read and write
Compile a simple MEX-function to create the
myMexFunction from a CUDA C++ source file.
An example source file is available at
Use verbose mode to display the compile and link commands and other information useful for troubleshooting.
mexcuda -v myMexFunction.cu
Compile and link multiple source files with one command.
mexcuda myMexFunction.cu otherSource1.cpp otherSource2.cpp
First compile, then link to create a function.
mexcuda -c myMexFunction.cu mexcuda myMexFunction.obj
The first line compiles to
myMexFunction.o (UNIX®), and the second
links to create the function
Compile code that uses dynamic parallelism, defining kernels that launch other kernels.
mexcuda -dynamic myMexFunction.cu
Compile a MEX-function that makes use of the
CUDA image primitives library,
npp, which is installed
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64\nppi.lib.
mexcuda '-LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64' -lnppi myMexFunction.cu
filenames— One or more file names
One or more file names, including name and file extension, specified as a character vector. If the file is not in the current folder, specify the full path to the file. File names can be any combination of:
C or C++ language source files
The first source code file listed in
the name of the binary MEX-file. To override this naming convention,
option1 ... optionN— One or more build options
One or more build options, specified as one of these values. Options can appear in any order on any platform, except where indicated.
In addition to most options available for the
mex function, these options are supported:
Dynamic parallelism: compiles MEX-files that define kernels that launch other kernels.
Generate debug information for device code. This makes
it possible to step through kernel code line by line in one of NVIDIA’s
debugging applications (NSight or cuda-gdb). To enable debugging of
host code use
options are supported, except for the following: