NVCC cuda compiler wraper

Compile cuda kernels in Matlab, like nvcc('example.cu')

Al momento, stai seguendo questo contributo

This function NVCC is a wraper for the NVIDIA Cuda compiler NVCC.exe
in combination with a Visual Studio compiler. After this Cuda
files can be compiled into kernels

If you call the code the first time, or with "nvcc -config":
1) It will try to locate the "The NVIDIA GPU Computing Toolkit", which
can be downloaded from www.nvidia.com/object/cuda_get.html
Typical Location :
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\bin
2) It will try to locate the visual studio compiler
Typical Location :
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\
3) It creates a file nvccbat.bat with the compiler information.

After this configuration procedure, you can compile files with:

nvcc(filename);

or

nvcc(options,filename)

filename : A string with the filename, for example 'example.cu'
options : NVCC Compiler options for example,
nvcc(option1, option2, option3,filename)

For help on NVCC config options type, "nvcc --help"

Note!
If the NVCC fails to locate the compiler you can try to
write your own "nvccbat.bat" file in a text-editor, for example:
echo off
set PATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\;PATH
set PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\bin;PATH
call vcvars32.bat
nvcc 1 2 3 4 5 6 7 8 9

1 Example, Configuration
Locate Cuda and VS compiler
nvcc -config

Show the NVCC compiler options
nvcc --help

Test some input options
nvcc --dryrun -ptx example.cu

2 Example,

Locate Cuda and VS compiler
nvcc -config
Compile the code
nvcc('example.cu');
It the same as :
nvcc -ptx example.cu

Make the kernel
Kernel = parallel.gpu.CUDAKernel('example.ptx', 'example.cu');

We want to execute this kernel 100 times
Kernel.ThreadBlockSize=100;

We make an array with 100 random files
Data=rand(100, 1, 'single');
DataCuda= gpuArray(Data);

We will add the value 1
OneCuda = parallel.gpu.GPUArray.ones(1,1);

Execute the kernel
DataOneCuda = feval(Kernel, DataCuda, OneCuda);

Get the data back
DataOne=gather(DataOneCuda);

Show the result
figure, hold on;
plot(Data,'b');
plot(DataOne,'r');

Cita come

Dirk-Jan Kroon (2026). NVCC cuda compiler wraper (https://it.mathworks.com/matlabcentral/fileexchange/29611-nvcc-cuda-compiler-wraper), MATLAB Central File Exchange. Recuperato .

Informazioni generali

Compatibilità della release di MATLAB

  • Compatibile con qualsiasi release

Compatibilità della piattaforma

  • Windows
  • macOS
  • Linux
Versione Pubblicato Note della release Action
1.1.0.0

Now allows NVCC.EXE extra configuration options. And will store the main .bat file with the configuration always in the same folder.

1.0.0.0