NVCC cuda compiler wraper
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');
引用格式
Dirk-Jan Kroon (2024). NVCC cuda compiler wraper (https://www.mathworks.com/matlabcentral/fileexchange/29611-nvcc-cuda-compiler-wraper), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!