Массивно-параллельные процессы

Курс: «Массивно-параллельные процессы, архитектура и среда программирования CUDA»

Задачей этого курса является обучение разработке приложений для процессоров с массивно параллельной вычислительной архитектурой. Процессор может называться «массивно параллельным» если он способен выполнять более чем 64 арифметические операции за один цикл тактовой частоты. Сегодня процессоры NVIDIA могут быть отнесены к этому классу. Процессоры от Intel, AMD, и IBM перейдут к использованию массивно-параллельных архитектур в течение следующих нескольких лет. Эффективное программирование таких процессоров потребует детального понимания принципов параллельного программирования, а также моделей параллелизма, обмена данными и знания различных архитектурных ограничений этих процессоров. Целевая аудитория этого курса – это специалисты, которые хотели бы научиться разрабатывать приложения для таких процессоров, а также проектировать будущие реализации параллельных архитектур.

Краткая программа курса

  • Введение. Существующие многоядерные системы. GPU как массивно-параллельный процессор. CUDA «hello, world».
  • Архитектура Tesla и модель программирования CUDA.
  • Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.
  • Иерархия памяти CUDA. Разделяемая память. Реализация примитивов параллельного суммирования (reduce) и префиксной суммы (scan) на CUDA.
  • Иерархия памяти CUDA. Текстуры в CUDA. Цифровая обработка сигналов: реализация операций свертки, быстрого преобразования Фурье.
  • Нерегулярный параллелизм в цифровой обработке сигналов.
  • Особенности реализации алгоритмов трассировки лучей на CUDA.
  • Решение дифференциальных уравнений на CUDA на примере задач гидродинамики.
  • Программирование многоядерных GPU. Кластеры из GPU.
  • Вопросы оптимизации приложений на CUDA.
  • Перспективы развития массивно-параллельных систем. Направления исследования.