This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

NVCCCompiler

CreateLibrary
compiles a string of CUDA code in src into a library and returns the full path to the library.
CreateLibrary
compiles a number of CUDA and C source files into a library and returns the full path to the library.
CreateExecutable[src, name, "Compiler"->NVCCCompiler]
compiles a string of CUDA code in src into an executable and returns the full path to the executable.
CreateExecutable
compiles a number of CUDA, mprep, and C source files into an executable and returns the full path to the executable.
CreateObjectFile
compiles a string of CUDA code in src into an object file and returns the full path to the object file.
CreateObjectFile
compiles a number of CUDA and C source files into object files and returns the full path to the object files.
  • The CUDALink application must be loaded using Needs.
  • A supported C compiler must be installed on the system. This can be Visual Studio 2005 or 2008 on Windows, or GNU GCC 4.1, 4.2, or 4.3 on Unix.
  • If the source is a string, the treats it as CUDA code. If the source is a list of one or more strings, then the code is treated as a list of files containing CUDA code.
  • The extension given to the output file depends on the platform for which the file is created and the options used.
  • The following options can be given:
"CleanIntermediate"Truewhether temporary files should be deleted
"CompileOptions"{}compile options passed directly to the NVCC compiler
"CompilerInstallation"Automaticlocation of the CUDA Toolkit installation
"CreateBinary"Truewhether the binary should be created
"CreateCUBIN"Falsewhether to create a .cubin file (a GPU binary) rather than a library
"CreatePTX"Falsewhether to create a .ptx file (a GPU bytecode) rather than a library
"CUDAArchitecture"AutomaticCUDA architecture to target
"Defines"{}defines passed to the NVCC preprocessor
"ExtraObjectFiles"{}extra object files to compile with
"IncludeDirectories"{}directories to include in the compilation
"Libraries"{}libraries to link against
"LibraryDirectories"{}library directories to include in the compilation
"LinkerOptions"{}linker options passed from NVCC to the C linker
"MprepOptions"""options passed to mprep
"ShellCommandFunction"Nonefunction to call with the shell commands used for the compilation
"ShellOutputFunction"Nonefunction to call with the shell output of running the compilation commands
"SystemCompileOptions"{}base compile options
"SystemIncludeDirectories"AutomaticCUDALink and Mathematica include directories to include
"SystemLibraries"AutomaticCUDALink and Mathematica libraries to link against
"SystemLibraryDirectories"AutomaticCUDALink and Mathematica library directories to include
"SystemLinkerOptions"Automaticsystem linker options passed from NVCC to the C linker
"TargetDirectory"$CCompilerDefaultDirectorythe directory in which the library file should be generated
"TargetSystemID"$SystemIDsystem to compile the library for
"UnmangleCode"Falsewhether to surround code with external "C" to avoid C++ name mangling
"WorkingDirectory"Automaticthe directory in which temporary files will be generated
"XCompileOptions"Automaticcompile options passed from NVCC to the C compiler
"XCompilerInstallation"Automaticdirectory where NVCC will find the C compiler is installed
First, load the CUDALink application:
This is a sample CUDA source file:
This compiles the code into a library:
This reads the CUDA code into a Mathematica string:
This creates a CUDA library using the string imported:
This imports the CUDA program as a string:
This compiles the CUDA program into CUDA executable byte code (PTX) file, showing the compilation command used:
This displays the output PTX byte code in Mathematica:
First, load the CUDALink application:
In[1]:=
Click for copyable input
This is a sample CUDA source file:
In[2]:=
Click for copyable input
This compiles the code into a library:
In[3]:=
Click for copyable input
Out[3]=
 
This reads the CUDA code into a Mathematica string:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
This creates a CUDA library using the string imported:
In[3]:=
Click for copyable input
Out[3]=
 
This imports the CUDA program as a string:
In[1]:=
Click for copyable input
Out[1]=
This compiles the CUDA program into CUDA executable byte code (PTX) file, showing the compilation command used:
In[2]:=
Click for copyable input
Out[2]=
This displays the output PTX byte code in Mathematica:
In[3]:=
Click for copyable input
Out[3]=