NVCC cuda compiler wraper

Compile cuda kernels in Matlab, like nvcc('example.cu')
2,3K Descargas
Actualizado 6 dic 2010

Ver licencia

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');

Citar como

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

Compatibilidad con la versión de MATLAB
Se creó con R2010b
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux
Categorías
Más información sobre GPU Computing en Help Center y MATLAB Answers.

Community Treasure Hunt

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

Start Hunting!
Versión Publicado Notas de la versión
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