GPU Usage

Run compute-intensive workloads on NVIDIA GPU accelerators (A100, V100, L40S) across ARC’s GPU-enabled clusters.

GPU computing accelerates parallel workloads by offloading compute-intensive tasks from the CPU to specialized GPU hardware. This section covers how to request GPU resources, write GPU-accelerated jobs, and optimize performance on ARC’s GPU clusters (Ptolemy, Atlas, and Morrill).

What You’ll Learn

  • Requesting GPUs — How to specify GPU resources in SLURM job scripts

  • Available Hardware — GPU types and configurations on each cluster

  • CUDA Setup — Loading CUDA modules and configuring your environment

  • Job Examples — Ready-to-use templates for common GPU workloads

  • Troubleshooting — Fixing common GPU job problems

Quick Start

Here’s a minimal GPU job script:

#!/bin/bash
#SBATCH --job-name=gpu-test
#SBATCH --nodes=1
#SBATCH --gres=gpu:1
#SBATCH --partition=<valid_gpu_partition>
#SBATCH --time=02:00:00

module purge
module load cuda
python your_gpu_script.py

Submit with: sbatch gpu_job.sh

Types of Available GPUs

GPU Type

GPUs (Per-Node/Total)

Memory

Use Case

A100-mig7

56/112

10GB

Small/Lightweight GPU-enabled jobs

A100-mig2

16/32

40GB

Medium-sized GPU-enabled jobs

A100 (full)

8/16

80GB

Full/Multi GPU jobs

Important

Multi-GPU workloads are NOT supported on MIG instances.

GPU Type

GPUs (Per-Node/Total)

Memory

Use Case

V100

2/8

32GB

Legacy CUDA code

A100-mig7

8/16

80GB

Small/Lightweight GPU-enabled jobs

A100 (full)

8/24

80GB

Full/Multi GPU jobs

L40S

4/48

48GB

Training, Inference, Graphics

Important

Multi-GPU workloads are NOT supported on MIG instances.

GPU Type

GPUs (Per-Node/Total)

Memory

Use Case

A100 (full)

8/32

80GB

Full/Multi GPU jobs