SciPy 2025

The Accelerated Python Developer's Toolbox
07-07, 08:00–12:00 (US/Pacific), Room 316

As general purpose GPU programming has risen in popularity, many Python programmers have expressed a need to use this technology in their libraries and applications. They soon realize that the GPU landscape is vast and sometimes difficult to traverse for Python users.

In this talk, I will demystify the CUDA-enabled Accelerated Python landscape, focusing on the advantages and disadvantages of popular libraries, the common performance issues encountered, and the best practices to getting the most out of your GPU. Topics include CuPy, numba, nvmath-python, cuDF, and cuML.

This talk is beginner-friendly, but even the most seasoned programmer will gain insight into the Python GPU computing landscape.


For every Python developer who has integrated CUDA into their codebase, there is probably another that has thrown up their hands and exclaimed, “CUDA is hard!”. In this talk, I hope to dispel this misconception and demystify the Python CUDA landscape. Many advances have been made since the introduction of CUDA and with a little guidance, you will find that using CUDA is easier than it’s ever been before.

Learn how to pick which library is suited best for your use case, as well as understand when and if you need to compose your own CUDA kernels without resorting to using C++.

In this tutorial we will cover:
- What is a GPU and why is it different to a CPU?
- An overview of the CUDA development model.
- Numba: A high performance compiler for Python.
- Writing your first GPU code in Python.
- Managing memory.
- Working with NumPy-style arrays on the GPU.
- Working with low-level math libraries.
- Working with Pandas dataframes on the GPU.
- Performing some scikit-learn style machine learning on the GPU.

This tutorial will introduce how to translate Pythonic ways of thinking into CUDA. No Python developer should be left behind as the adoption of massively parallel GPUs spreads through the software ecosystem.


Prerequisites

Beginner-friendly, but knowledge of the PyData ecosystem will be very helpful.

Dr. Katrina Riehl is a Principal Technical Product Manager at NVIDIA supporting CUDA and Python educational initiatives. For over two decades, Katrina has worked extensively in the fields of scientific computing, machine learning, data science, and visualization. Most notably, she has helped lead data science initiatives at the University of Texas Austin Applied Research Laboratory, Anaconda, Apple, Expedia Group, Cloudflare, and Snowflake.

She is an active volunteer in the Python open-source scientific software community, serving as a NumFOCUS Board member 2018-2024 and President 2021-2024. She continues to serve the NumFOCUS community on the NumFOCUS Advisory Council.