К курсам
AI021 Professional

Руководство по программированию CUDA

Официальный, всесторонний ресурс для разработчиков, чтобы узнать модель программирования CUDA и как писать высокопроизводительный код, выполняющийся на графических процессорах NVIDIA. В этом руководстве рассматриваются архитектура платформы, интерфейс программирования, продвинутые функции аппаратного обеспечения и технические характеристики.

5.0
30.0h
1762 учеников
1 лайки
Искусственный интеллект
Начать обучение

Обзор курса

📚 Краткое содержание

Официальный, всесторонний ресурс для разработчиков, посвящённый изучению модели программирования CUDA и написанию высокопроизводительного кода, выполняющегося на графических процессорах NVIDIA. В этом руководстве рассматриваются архитектура платформы, интерфейс программирования, продвинутые аппаратные возможности и технические характеристики.

Освойте искусство параллельных вычислений с отраслевым стандартом — руководством по NVIDIA CUDA.

Автор: Корпорация NVIDIA

Благодарности: Авторские права © 2007–2024 Корпорация NVIDIA и её дочерние структуры. Все права защищены.

🎯 Цели обучения

  1. Определить роли хоста (ЦП) и устройства (ГПУ) в гетерогенной системе.
  2. Объяснить модель программирования SIMT и иерархическую организацию потоков, блоков и сеток.
  3. Различать код PTX (Parallel Thread Execution) и двоичный код (cubins), объяснить, как компиляция «по требованию» (JIT) обеспечивает совместимость.
  4. Создавать и компилировать ядра CUDA: писать функции global, настраивать выполнение с помощью тройного знака «>>>, и управлять рабочим процессом компиляции NVCC.
  5. Оптимизировать память и перемещение данных: различать модели унифицированной, явной и сопоставленной памяти, использовать фиксированную в памяти память хоста для эффективных передач.
  6. Управлять параллельным выполнением: использовать потоки CUDA, события и кооперативные группы для управления асинхронными задачами и синхронизации операций ЦП-ГПУ.
  7. Выполнять сложные арифметические действия с указателями и определять архитектурные узкие места (фон Неймана против Архимеда).
  8. Реализовывать продвинутые шаблоны выполнения CUDA, включая программно зависимые запуски ядер и гетерогенные пакетные передачи памяти.
  9. Использовать аппаратно-зависимые особенности, такие как области видимости потоков, асинхронные прокси и конвейеры, для максимизации конкуренции.
  10. Настроить и наладить производительность унифицированной памяти с использованием предварительной загрузки, подсказок использования и управления размером страницы.

Уроки