ACES: Introduction to CuPy: NumPy & SciPy for GPU

Overview

Instructor(s): Jian Tao

Time: Tuesday, November 11, 2025 — 1:30PM-4:00PM CT

Location: Online using Zoom

Prerequisite(s): Current ACCESS ID, basic Python skills

CuPy is an open-source array library for GPU-accelerated computing that provides a largely drop-in replacement for NumPy and SciPy, allowing many array programs to run on GPUs by switching imports while keeping idiomatic vectorized code.

CuPy offers NumPy/SciPy-compatible functionality plus GPU-focused features, including FFTs, linear algebra, sparse operations, random number generation, memory pools, streams, and custom kernels, enabling end-to-end acceleration on modern GPU platforms.

This class will provide an introduction to CuPy for accelerating Python array and scientific workflows.

Course Materials

Presentation slides

  • Introduction to CuPy: NumPy and SciPy for GPU (Fall 2025) PDF

Learning Objectives

Learning Objectives:

  • Learn the basic code elements of CuPy and its NumPy-compatible array API.
  • Access a GPU-enabled environment and verify CuPy installation and device selection.
  • Use CuPy interactively in Jupyter or a Python REPL.
  • Use arithmetic, comparison, and logical operators on CuPy arrays.
  • Understand and apply core CuPy dtypes and array creation/manipulation routines.
  • Work with strings and categorical-like data via vectorized array operations where applicable.
  • Use common data structures with CuPy-backed arrays, including dense arrays and sparse matrices.
  • Write and use basic functions and ufunc-style operations for vectorized GPU computation.
During class, students will log into the ACES cluster to complete exercises.