Свържете се с нас

Съдържание и теми, включени в курса

Изчисления с GPU и архитектура на CUDA

  • Разлики в архитектурата между CPU и GPU
  • Модел на стрийминг мултипроцесора (streaming multiprocessor) на NVIDIA GPU
  • Общ преглед на модела за програмиране на CUDA
  • Хетерогенни изчисления и парадигмата хост-устройство

Настройване на средата за разработка на CUDA

  • Инсталиране на CUDA Toolkit 13.x
  • Компиляторът NVCC и работният процес при изграждане (build workflow)
  • Проверка на средата с инструменти за заявки към устройството (device queries)
  • Интегриране в IDE и инструменти за разработка

Написване и стартиране на CUDA ядра (kernels)

  • Синтаксис и модификатори на функционалността на ядрото
  • Конфигурация на изпълнението и стартиране
  • Събиране на вектори и базови шаблони за паралелизирани данни
  • Макроси за проверка на грешки в CUDA

Йерархия на нишките в CUDA и модел на изпълнение

  • Организиране на решетка (grid), блок (block) и нишка (thread)
  • Индексиране на нишки и изчисляване на глобалния идентификатор
  • Изпълнение на warp и модел SIMT (Single Instruction, Multiple Threads)
  • Заетост (occupancy) и използване на ресурсите

Архитектура на паметта в GPU и управление

  • Типове памет: глобална, споделяема (shared), константна, регистри
  • Заделяне и освобождаване на памет на устройството
  • Прехвърляния от хоста към устройството и от устройството към хоста
  • Споделяема памет за съвместна работа в рамките на блок

Унифицирана памет и миграция на данни

  • Модел на унифицирана памет и управлявани заделяния (managed allocations)
  • Миграция на страници и страниране по поискване (on-demand paging)
  • Асинхронно предварително зареждане с cudaMemPrefetchAsync
  • Подсказки за съвети относно достъпа до паметта

Системно профилиране с Nsight Systems

  • Анализ на времевата линия в Nsight Systems
  • Идентифициране на точките за синхронизиране между CPU и GPU
  • Визуализация на изпълнението на ядрото и прехвърлянията на паметта
  • Интерпретиране на данните за производителността на ниво система

Оптимизиране на ядра с Nsight Compute

  • Интерактивно профилиране на ядра в Nsight Compute
  • Анализ на пропускателната способност и честотата (bandwidth) на паметта
  • Използване на изчислителните ресурси и статистика на състоянието на warp
  • Ръководен анализ и правила за оптимизиране

Паралелни потоци (concurrent streams) и асинхронни операции

  • Потоци на CUDA и стандартният поток (default stream)
  • Припокриване на изпълнението на ядрата с прехвърлянето на данни
  • Синхронизиране на потоци и събития в CUDA
  • Шаблони за проектиране на тръбопроводи с множество потоци (multi-stream)

Обработка на грешки и инструменти за дебъгване

  • Кодове за грешки на API на CUDA и стратегии за възстановяване
  • compute-sanitizer за проверка на достъпа до паметта
  • cuda-gdb за дебъгване на ядра
  • Уверения (assertions) и откриване на грешки със синхронно изпълнение

Работен процес за оптимизиране, базиран на профилиране

  • Итеративна методология за профилиране
  • Идентифициране и приоритизиране на възлите за бавно изпълнение (bottlenecks)
  • Тестване за регресия на производителността
  • Документиране на решенията за оптимизиране

Проект за крайно-до-край (end-to-end) приложение, ускорено от изчисления с GPU

  • Проектиране на пълно решение, ускорено от GPU
  • Интегриране на профилирането през цялото развитие
  • Бенчмарк на производителността и докладване
  • Въпроси за разполагане (deployment) в производствена среда

Изисквания

  • Базова компетентност в програмирането на C/C++, включваща типове променливи, цикли, условни оператори, функции и манипулации с масиви
  • Запознаване с компилирането и изпълнението на програми от командния ред
  • Не е необходимо предишно познанство с програмирането за GPU или CUDA

Аудитория

  • Разработчици и инженери в софтуерната индустрия, които търсят начини да ускорят C/C++ приложения с помощта на GPU
  • Научни изследователи и специалисти по HPC (High Performance Computing), които преминават от еднородни CPU системи към хетерогенни изчисления
  • Технически ръководители, оценяващи ускорението с GPU за производствени натоварвания
 8 Часа

Брой участници


Цена за участник

Предстоящи Курсове

Свързани Kатегории