Code covered by the BSD License  

Highlights from
NVCC cuda compiler wraper

4.5 | 4 ratings Rate this file 11 Downloads (last 30 days) File Size: 3.55 KB File ID: #29611
image thumbnail

NVCC cuda compiler wraper


Dirk-Jan Kroon


02 Dec 2010 (Updated )

Compile cuda kernels in Matlab, like nvcc('')

| Watch this File

File Information

 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
 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:



  filename : A string with the filename, for example ''
  options : NVCC Compiler options for example,
               nvcc(option1, option2, option3,filename)
  For help on NVCC config options type, "nvcc --help"

  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

  2 Example,

     Locate Cuda and VS compiler
    nvcc -config
     Compile the code
     It the same as :
     nvcc -ptx

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

     We want to execute this kernel 100 times

     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
     Show the result
    figure, hold on;

Required Products Parallel Computing Toolbox
MATLAB release MATLAB 7.11 (R2010b)
Other requirements Windows NVIDIA GPU Computing Toolkit Visual Studio or Visual Studio Express
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
22 Feb 2012 Gunnar Läthén

Gunnar Läthén

A minor possible improvement: I needed to pass several defines (-D) to the compiler, but currently the bat file only supports 9 arguments. You can replace the %1 %2 ... with a single %* to support more arguments (at least in Windows 7).

Comment only
22 Feb 2012 Gunnar Läthén

Gunnar Läthén

30 Jul 2011 Michael Knap

Michael Knap

Good work, however it seems to be platform specific. I am working on a similar implementation for linux.

03 Dec 2010 Leon Su

Leon Su

03 Dec 2010 John Melonakos

John Melonakos

Nice and helpful post. For those of you using Jacket, you'll recognize this concept as GLAUNCH, documentation here:


06 Dec 2010

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

Contact us