General Purpose Graphics Processing Unit (GPGPU) computing suppport.

This folder contains functions which employ massively parallel computing
hardware, typically modern GPU’s, to accelerate computing tasks in the
context of stimulus presentation. The compute hardware is controlled via
computing api’s like NVidia CUDA or the cross-platform, cross-vendor api

The current initial implementation as of April 2013 only supports CUDA
compute capable NVidia GPUs in combination with the free and open-source
GPUmat toolkit for 64-Bit Matlab. Support for GNU/Octave and other GPU
and compute toolkits, e.g., OpenCL based systems, will follow in later
releases. Currently only 64-Bit Matlab is supported. While it would be
possible to also provide 32-Bit support, we don’t expect much demand for
it, so will not deliver 32-Bit support for the time being.


  1. A NVidia GPU with CUDA compute capabilities. This is any OpenGL3/4
    capable GPU, starting with the GeForce-8000 series or later.

  2. The freely downloadable CUDA SDK Version 5.0 or later from NVidia:

  3. The free and open-source GPUmat toolbox for Matlab from SourceForge:

  4. A 64-Bit version of Matlab for Linux or Windows. macOS is not
    supported because Apple ripped out support for NVidia gpus from their
    recent operating systems, because why not, right?

Demos can be found in the Psychtoolbox/PsychDemos/GPGPUDemos folder.

This folder contains support functions for GPU computing:

GPUTypeFromToGL - Helper function to transfer data efficiently
between CUDA/GPUmat data types and

memcpyCudaOpenGL.cpp - Source code for the memcpyCudaOpenGL mex files.
makememcpyCudaOpenGL.m - Build script to build mex files against Matlab
and CUDA 5.0 SDK.
memcpyCudaOpenGL.mex* - Mex files for 64-Bit Matlab.

Path   Retrieve current version from GitHub | View changelog