Skip to content

Green color

Login Form



Home Products

GPUmat

GPUmat allows standard MATLAB code to run on GPUs. The execution is transparent to the user as shown in the following example:

A = GPUsingle(rand(100)); % A is on GPU memory
B = GPUdouble(rand(100)); % B is on GPU memory
C = A+B; % executed on GPU.
D = fft(C); % executed on GPU

Executed on GPU
A = single(rand(100)); % A is on CPU memory
B = double(rand(100)); % B is on CPU memory
C = A+B; % executed on CPU.
D = fft(C); % executed on CPU
Executed on CPU

Please note the difference between the original code and the modified code in the above example. Every MATLAB variable has been converted to the GPUsingle class ("A = rand(100)" becomes "A = GPUsingle(rand(100))"). From here the code remains as the original one, i.e. after a specific declaration any instruction follows the classic MATLAB syntax but any operation on GPUsingle, like A + B in the example, is executed on the GPU.

Benefits and key features:

  • GPU computational power can be easily accessed from MATLAB without any GPU knowledge.
  • MATLAB code is directly executed on the GPU. The execution is transparent to the user.
  • GPUmat speeds up MATLAB functions by using the GPU multi-processor architecture.
  • Existing MATLAB code can be ported and executed on GPUs with few modifications.
  • GPU resources are accessed using MATLAB scripting language. The rapid code prototyping capability of the scripting language is combined with the fast code execution on the GPU.
  • The most important MATLAB functions are currently implemented. GPUmat can be used as a Source development Kit to create missing functions and to extend the library functionality.
  • Supports real/complex, single/double precision data types.

Perfomance


This section shows the performance results of the element-by-element multiplication (A.*B) in MATLAB as a function  of the number of elements. The hardware used for the tests is a PC Dual Core Intel 6600 at 2.4GHZ with a GPU NVIDIA 8800GTX (128 stream processors).

 

 

Technology

GPUmat uses a technology developed by NVIDIA called CUDA SDK which allows programming the GPU for general purpose applications.The GPUmat core is based on CUDA libraries, such as CUFFT and CUBLAS, and many other functions developed and optimized by the GP-you Group for the GPU architecture.

System requirements

GPUmat was tested under Windows and Linux with MATLAB ver. R2007a o newer installed. CUDA toolkit and a CUDA compatible device should be installed on the system. Follow the instructions on NVIDIA's CUDA website to download and install the toolkit and check the NVIDIA CUDA-Enabled products for a list of CUDA compatible devices.

License

GPUmat is distributed as a Freeware. Please register before downloading GPUmat. Find a copy of the license here.

Additional projects on SOURCEFORGE

The following open source projects are available on SOURCEFORGE (please check the links for more details):

GPUmat User Modules

matCUDA