Accelerated Computing Hub, часть 1: путеводитель
Карта открытого учебного репозитория NVIDIA по программированию GPU: руководство Accelerated Python, курсы CUDA Python и CUDA C++, CUDA Tile, nvmath-python, Warp — что из этого нужно LLM-инженеру, в каком порядке проходить и как запускать на своих видеокартах.
Accelerated Computing Hub — открытый репозиторий NVIDIA с учебными материалами по вычислениям на GPU: руководства, ноутбуки с упражнениями и решениями, слайды лекций и готовые Docker-образы. Всё это можно проходить самостоятельно, бесплатно и без регистрации.
Страница — путеводитель по репозиторию (ветка main, коммит c16da25). Вводные материалы переведены полностью:
- часть 2 — GPU, CUDA и Python: основы (главы 1–3 руководства и урок «What Are GPUs»);
- часть 3 — от NumPy к CuPy и первые ядра на Numba.
Что это и для кого
Заголовок раздела «Что это и для кого»- Зачем LLM-инженеру. Почти всё время обучения и инференса LLM уходит в ядра на GPU: умножение матриц, внимание, обмен данными между картами. Этот репозиторий показывает, из чего такие ядра сделаны, — без C++ на старте: через CuPy, Numba и новый CUDA Tile.
- Ступень курса. 5.7 «GPU изнутри» и 7.1 «Инференс». Основу (части 2–3) можно читать и раньше, после NumPy.
- Уровень. Нужен уверенный Python и NumPy. Для треков по CUDA C++ и Standard Parallelism — C++.
- Железо. Нужна видеокарта NVIDIA. Ваши RTX 4080 подходят ко всем одиночным ноутбукам; треки, где в README указаны «4xL4 или 2xL4», рассчитаны на несколько GPU — у вас их четыре.
Карта репозитория
Заголовок раздела «Карта репозитория»flowchart TB H["accelerated-computing-hub"] --> UG["Accelerated_Python_User_Guide/<br/>руководство: 10 глав + multi-GPU"] H --> T["tutorials/"] T --> AP["accelerated-python/<br/>CUDA Python: CuPy, Numba, cuDF,<br/>CCCL, CUDA Tile, MPI, JAX"] T --> CPP["cuda-cpp/<br/>современный CUDA C++"] T --> SP["stdpar/<br/>параллелизм ISO C++ и Fortran"] T --> NM["nvmath-python/"] T --> WP["warp/<br/>симуляции и графика"] T --> GD["gpu-deployment/<br/>свой GPU в облаке"] H --> RS["resources/<br/>статьи и примеры кода"] H --> EV["events/<br/>код к докладам GTC"]
Accelerated Python User Guide — руководство
Заголовок раздела «Accelerated Python User Guide — руководство»| Глава | О чём | Урок курса | Важность |
|---|---|---|---|
| 1. GPU Computing Basics | CPU и GPU: сильные и слабые стороны, SM, виды GPU (перевод) | 5.7 | ★★★ |
| 2. Brief Intro to CUDA | Ядра, потоки, варпы, блоки, сетки, иерархия памяти (перевод) | 5.7 | ★★★ |
| 3. Python on the GPU | GIL, почему NumPy быстрый, CuPy как замена NumPy (перевод) | 0.3 | ★★ |
| 4. Scientific Computing with CuPy | CuPy подробно | 5.7 | ★★ |
| 5. CUDA Kernels with Numba | Свои ядра на Python: @cuda.jit, потоки и блоки (перевод) | Triton | ★★★ |
| 6. Intro to nvmath-python | Математические библиотеки CUDA-X из Python | — | ★ |
| 7–9. cuDF, cuML, cuGraph | Таблицы, классический ML и графы на GPU (RAPIDS) | 2.4 | ★ |
| 10. Developer Tools | Профилировщики и отладчики | 5.7 | ★★ |
| cuda.core, cuda.cccl.parallel | Новые «питоничные» API CUDA и параллельные алгоритмы | — | ★ |
| NVSHMEM4Py, NCCL | Обмен данными между GPU, свои коллективные операции (AlltoAllV) | 4 GPU | ★★ |
tutorials/accelerated-python — учебный курс CUDA Python
Заголовок раздела «tutorials/accelerated-python — учебный курс CUDA Python»Ноутбуки пронумерованы по темам; у каждого упражнения есть решение в папке solutions/. Из них собраны «силлабусы» —
готовые программы курсов разной длины.
| Блок | Ноутбуки | О чём | Важность |
|---|---|---|---|
| Fundamentals | 00–07 | Что такое GPU (перевод урока 00), NumPy, SVD, переход на CuPy (перевод урока 03), пространства памяти, асинхронность, cuda.core: устройства, потоки команд, память | ★★★ |
| Libraries | 20–28 | cuDF и cudf.pandas, cuML, CCCL (свои алгоритмы), nvmath-python (слияние ядер, масштабирование), pynvml (мониторинг GPU) | ★★ |
| Kernels | 40–47 | Свои ядра на Numba: копирование, гистограмма по книге, размытие по Гауссу; CUDA Tile на Python: сложение векторов, умножение матриц, транспонирование, функции активации | ★★★ |
| Distributed | 60–62 | mpi4py, Dask, уравнение теплопроводности на нескольких GPU | ★★ |
| Applications | 80–87 | Одна задача (уравнения мелкой воды) на NumPy, JAX, PyOMP, nanobind, CUB, mpi4py — и сравнение скоростей | ★ |
Готовые программы (папка notebooks/syllabi/):
- CUDA Python — CuPy, cuDF, CCCL и ядра, 8 часов: ноутбуки 01, 03, 05, 06, 20, 23, 40, 41.
- CUDA Python — CuPy, SIMT и Tile, 8 часов: основы CuPy и ядер на Numba, затем CUDA Tile (ноутбуки 44–47).
- CUDA Python — cuda.core и CCCL, 2 часа.
- CUDA Tile — отдельный курс по тайловому программированию.
- PyHPC — NumPy, CuPy и mpi4py, 4 часа и PyHPC — 2 дня (ядра, MPI, JAX, OpenMP, связка с C++).
Остальные курсы
Заголовок раздела «Остальные курсы»| Курс | О чём | Кому |
|---|---|---|
tutorials/cuda-cpp — Fundamentals of Accelerated Computing with Modern CUDA C++ | Три части: параллельные алгоритмы, асинхронность и потоки команд (Nsight, NVTX, закреплённая память), свои ядра (гистограмма, синхронизация, разделяемая память, кооперативные группы). Есть лекции на YouTube | Тем, кто знает C++ и хочет понять ядра «по-настоящему» |
tutorials/stdpar | Ускорение HPC-кода средствами стандартного C++ и Fortran | Вычислительная физика, не LLM |
tutorials/nvmath-python | Математика CUDA-X из Python: совместимость с CuPy и PyTorch, слияние ядер, stateful API, масштабирование | Для оптимизации собственных вычислений |
tutorials/warp | NVIDIA Warp — симуляции и графика на Python | Робототехника, физика |
tutorials/gpu-deployment | Как получить GPU в облаке (Brev), программное окружение, пакеты Python с CUDA, мониторинг | Если своих видеокарт нет |
Как запускать
Заголовок раздела «Как запускать»Что читать дальше
Заголовок раздела «Что читать дальше»- NVIDIA Deep Learning Institute: путеводитель — бесплатные курсы NVIDIA, в том числе «An Even Easier Introduction to CUDA» и «Fundamentals of Accelerated Computing with CUDA Python».
- Официальная документация CUDA Python: nvidia.github.io/cuda-python.
- В курсе: «Как устроена видеокарта и куда уходит время», «FlashAttention», «Пишем ядра на Triton».