Enables users to access high performance computing with minimal modification to their existing programs.

By providing bindings between Interactive Data Language (IDL) and large function libraries, GPULib can accelerate new applications or be incorporated into existing applications with minimal effort. No knowledge of GPU programming or memory management is required.

GPULib is built on top of NVIDIA's Compute Unified Device Architecture (CUDA) platform. CUDA is supported by a wide range of NVIDIA products, including GeForce, Quadro, and Tesla cards.

Note: GPULib supports only IDL 8.4 and CUDA 6.5. 


  • Basic vector operations
  • BLAS operations
  • Random number generator
  • Support for CUDA 6.5
  • Optimized scalar/array operations
  • Common IDL routines, including:
    • WHERE
  • Complex data support for:
    • GPUATAN2 for complex and double complex
  • Special functions like LGAMMA
  • Accelerated special purpose image processing operations, including Radon transform
  • Array indexing and efficient subarray operations
  • Makes use of IDL's new capability of overloaded operators for simple notation
  • Use of streams to hide memory transfer times
  • Memory transfer/allocation
  • Defaults to CPU when CUDA -enabled hardware not present
  • Extensible: Users can extend library for their own needs
    • 1D, 2D, and 3D FFTs
    • Batched FFTs
    • MAGMA linear algebra routines
      • GPU accelerated LAPACK library
    • Ability to load and execute pre-compiled custom kernels
    • Load and execute custom CUDA code

Read the GPULib Brochure and Datasheet.


  • Speed up IDL code easily
  • Utilize your existing CUDA-enabled GPUs
  • Easy installation on Windows, Mac OS X, and Linux
  • Fully documented API with examples


Above, deconvolution of Hubble Space Telescope
image using FFTs performed using GPULib

Performance Results

Speed increases due to GPULib.

Hardware NVIDIA® Tesla® C2070 vc. Intel Xeon® CPU X5650 (2.67 GHz).

(All 12 Xeon cores were use in performance test.)

Algorithm or Demo Speedup
FFT (250x250 to 10000x10000) 10-60x
decon_hubble_demo (FFT based deconvolution) 7.7x
LGamma demo (1e6 element arrays) 22.8x
FDTD demo  25x
Levenberg-Marquardt fitting algorithm 6.25x
levenberg-marquardt fitting

Levenberg-Marquardt Fitting Algorithm Improvement

Levenberg-Marquardt fitting (bottom) is used to retrieve the value for saturated pixels (top) by fitting a sum of Gaussian functions to the original data. GPU evaluation of the fitting function improves the performance of the fitting algorithm by a factor of 6.25 times.


GPULib Improvement of Hubble Space Telescope Deconvolution Image

Deconvolution of a Hubble Space Telescope image (left) and the same image after GPULib is used to sharpen the quality (right). On a system with an NVIDIA Tesla C2070 and Intel® Xeon® CPU X5650 at 2.67GHz, GPULib computed the deconvolution in 0.317 seconds vs. 2.15 seconds for the standard IDL array.

fdtd cpu gpu

FDTD CPU and GPU Comparison

A comparison of the progress of a finite-difference time-domain (FDTD) simulation on CPU (left) and GPU (right) after the same amount of time visually demonstrates the GPU speed-up. The simulation launches an electromagnetic pulse with finite extent on the left and propagates it through the domain.

cpu vs gpu fdtd

CPU vs. GPU Finite-Difference Time-Domain (FDTD) Simulation

This simulation launches an electromagnetic pulse with finite extent on the left and propagates it through the domain. The upper results are given by GPULib, a library for accelerating IDL using NVIDIA graphical processing units (GPU), while the lower results are provided by IDL on the CPU.

GPULib Sales

Tech-X sells GPULib individual and quantity-discounted annual licenses from our Tech-X Online Store hosted by FastSpring. FastSpring is the leading secure ecommerce retailer for online software sales.

For GPULib high-volume Enterprise and Developer redistribution license pricing, contact us for a quote.


Buy GPULib Online

techx online store logo


GPULib 1.8.0 Documentation



GPULib 1.6.2 Documentation



Installation Directions

Directions for installing GPULib are available in the README.txt file inside the distribution.

Ready to evaluate VSim|USim|PSim for free?




Go To Top