GPUs on Maple

The Maple cluster has 29 nodes with a single NVIDIA Tesla K20m GPU for general-purpose computation. They can be used to substantially speed up certain types of programs.

CUDA

To load the CUDA Development Toolkit, run:
module load cuda80/toolkit
This module will also need to be loaded inside PBS scripts for CUDA programs to run properly.

OpenCL

To compile OpenCL code, load the CUDA toolkit as described above, the use the -lOpenCL option when compiling.

Running GPU Jobs

To use a GPU on Maple, it must be requested, just like CPUs and memory. PBS has an ngpus resource for reserving GPUs. For instance, to reserve a single GPU, include -l ngpus=1 in your PBS script or on the command line when you start an interactive session of PBS (qsub -I).

Users must also submit their jobs to the gpu queue to get a node with a GPU. Submitting to the default queue with ngpus=1 will result in the job sitting in the queue indefinitely.

Multiple GPUs may be requested, but if so, multiple nodes (-l nodes=4) will also need to be requested, otherwise PBS will not be able to fulfill the request for the GPUs.