Современные приложения для высокопроизводительных вычислений (HPC) и глубокого обучения требуют вычислительной мощности GPU-кластера. Чтобы написать такие приложения CUDA®, которые смогут эффективно утилизировать кластер графических процессоров, требуется определенный набор навыков. В этом практикуме вы узнаете, какие инструменты необходимы для разработки приложений CUDA на C++ и последующего эффективного развертывания их в кластерах GPU NVIDIA. 

Вам предстоит работать над кодом нескольких приложений CUDA на C ++ в облачной среде с ускорением на графических процессорах NVIDIA. Прежде чем перейти к основной теме этого курса — NVSHMEM™ — вы познакомитесь с различными методами программирования для систем с несколькими GPU, включая совместимый с CUDA программный интерфейс MPI (Message Passing Interface).

NVSHMEM — это интерфейс для параллельного программирования, основанный на OpenSHMEM. Он обеспечивает эффективный и масштабируемый обмен данными между GPU-кластерами. NVSHMEM создает глобальное адресное пространство с общей памятью нескольких графических процессоров, к которому можно получить доступ с помощью мелкомодульных инициируемых GPU операций, инициируемых GPU операций и операций CUDA потокового уровня. Асинхронный способ передачи данных, инициируемый графическим процессором, позволяет устранить затраты ресурсов на синхронизацию между CPU и GPU. Он также позволяет ядру выполнять длительные задачи, включая передачу данных и вычисления. Это уменьшает затрату ресурсов, которая может ограничивать производительность приложения при сильном масштабировании. NVSHMEM использовался в суперкомпьютере Ок-Риджской национальной лаборатории Summit, суперкомпьютере Ливерморской национальной лаборатории им. Лоуренса Sierra и NVIDIA DGX™ A100.

 

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

На этом практикуме вам предстоит:
  • Узнать, как написать приложения CUDA на C++ для запуска на нескольких графических процессорах
  • Использовать различные паттерны коммуникации multi-GPU и узнать о компромиссных подходах
  • Написать переносимый масштабируемый код CUDA методом SPMD, используя CUDA-совместимые MPI и NVSHMEM
  • Улучшить код SPMD для нескольких GPU с помощью симметричной модели памяти NVSHMEM и передачи данных, инициированной графическим процессором
  • Попрактиковаться с распространенными парадигмами программирования multi-GPU, например методами декомпозиции области и halo exchange

Скачать описание практикума (PDF, 79,5 KБ)

Краткое описание практикума

Введение
(15 мин)
  • Познакомьтесь с инструктором.
  • Создайте аккаунт на courses.nvidia.com/join.
Основные принципы multi-GPU программирования
(120 мин)

Изучите методы программирования приложений CUDA на C ++ для нескольких графических процессоров, используя программу для вычисления аппроксимации числа Пи методом Монте-Карло в CUDA на C ++.

  • Используйте CUDA для утилизации нескольких графических процессоров.
  • Узнайте, как использовать пиринговый обмен данными.
  • Напишите код методом SPMD, используя CUDA-совместимые MPI.
Перерыв (60 мин)
Введение в NVSHMEM
(120 мин)

Узнайте, как писать код с помощью NVSHMEM, и изучите подробнее процессы симметричной обработки.

  • Используйте NVSHMEM, чтобы написать код методом SPMD для мультипроцессорных систем.
  • Утилизируйте симметричную память, чтобы GPU могли получить доступ к общим данным всех графических процессоров.
  • Выполните передачу данных, инициированную графическим процессором.
Перерыв (15 мин)
Halo Exchange с NVSHMEM
(120 мин)

Попрактикуйтесь с методами декомпозиции области и halo exchange с помощью NVSHMEM и начните выполнять финальное тестирование.

  • Напишите реализацию NVSHMEM программы для решения уравнения Лапласа методом Якоби.
  • Выполните рефакторинг программы решения волновых функций (1D) с помощью NVSHMEM.
  • Завершите тестирование и получите сертификат.
Подведение итогов
(15 мин)
  • Узнайте о компромиссных подходах для приложений на GPU-кластерах.
  • Еще раз ознакомьтесь с основными выводами и ответьте на вопросы.
  • Сбор обратной связи.
Что дальше?
(15 мин)

Продолжите обучение с другими практикумами от DLI:

 

Информация о практикуме

Продолжительность: 8 часов

Цена: $500 за участие в открытых практикумах. Чтобы уточнить стоимость корпоративных практикумов, свяжитесь с нами.

Необходимые требования:

  • опыт написания приложений CUDA на C/C++ на среднем уровне
Предлагаемые материалы для подготовки к участию в тренинге:
Инструменты, библиотеки и фреймворки: CUDA, MPI, NVSHMEM
 
Метод контроля:
  • написание кода, в том числе на основе навыков, полученных во время практикума: Студентам необходимо провести рефакторинг программы решения волновых функций (1D), предназначенной для одного графического процессора, для последующего разворачивания ее на GPU-кластере с NVSHMEM.

Сертификат: после успешного завершения тестирования участники получат сертификат NVIDIA DLI для подтверждения своей квалификации и дальнейшего карьерного роста.

Аппаратные требования: ПК или ноутбук с поддержкой последней версии Chrome или Firefox. Каждому участнику будет предоставлен доступ к полностью настроенной облачной рабочей станции с ускорением на GPU.

Языки: английский

ПРЕДСТОЯЩИЕ ПРАКТИКУМЫ

Предстоящие практикумы

Россия

чт., 18 ноября 2021 г.
18:00–2:00 (МСК)

Если ваша компания заинтересована в развитии навыков в работе с ИИ, анализом данных и ускоренными вычислениями, начните комплексное обучение с помощью решений от NVIDIA DLI.

У вас возникли вопросы?