wiki:GPU

Signal Processing with Python and GPUs

Note: This extension is not compatible with the latest version of LSL and is not actively being developed.

Overview and Requirements

This is a collection of scripts that offload some or all of the signal processing to GPUs. The GPU scripts build off of the LSL 0.5.x framework for working with LWA data and also depends on the following python modules:

  • CUDA Toolkit
  • PyCUDA
  • PyFFT
  • h5py

No installation (e.g., python setup.py install) is required to use the software. Simply run the scripts in the GPU directory.

Obtaining

The easiest way to obtain the latest version of the pulsar tools is via subversion export/checkout:

svn checkout http://fornax.phys.unm.edu/lwa/subversion/trunk/GPU

Contents

lgp.py

LWA GPU Primitives - PyCUDA functions for signal processing on GPUs. This module is used by the scripts here for dealing with the GPU.

drxGPU.py

Script to take DRX data and create time-averaged power spectral denisty plots using a CUDA enabled GPU. This script behaves similar to the drxSpectra.py script included with LSL but also computes spectral kurtosis on-the-fly for all of the data.

drxGPUStokes.py

A variation on drxGPU.py that computes Stokes parameters rather than XX and YY spectra.

hdfGPU.py

Similar to drxGPU.py but more like hdfWaterfall.py that is avaliable in the Commissioning extention in that it saves to HDF5.

hdfGPUStokes.py

Similar to drxGPUStokes.py but more like hdfWaterfallStokes.py that is avaliable in the Commissioning extention in that it saves to HDF5.

Tested GPUs

The modules and scripts in this extension have been tested on:

  • GeForce GTX 680
    • 1,536 CUDA cores
    • 2 GB RAM
    • 256-bit memory bus
  • Tesla C2075
    • 448 CUDA cores
    • 6 GB RAM
    • 384-bit memory bus