CUDA, весна 2010
Материал из eSyr's wiki.
(Различия между версиями)
212.192.253.132 (Обсуждение)
(Новая: =CUDA= Лекции (в основном) читал Алексей Викторович Боресков (steps3d@narod.ru), также был Александр Харламов. ==...)
К следующему изменению →
Версия 09:26, 14 ноября 2010
Содержание |
CUDA
Лекции (в основном) читал Алексей Викторович Боресков (steps3d@narod.ru), также был Александр Харламов.
Программа курса
- Лекция 1.Введение. 16 февраля 2010 г., ауд. 685 2-й учебный корпус, 16.20
- Существующие многоядерные системы.
- GPU как массивно-параллельный процессор.
- CUDA "hello, world".
- Архитектура Tesla & Fermi и модель программирования CUDA.
- Лекция 2. Иерархия памяти CUDA. Глобальная и разделяемая память и ее использование. 2 марта 2010 г.
- Глобальная память.
- Работа с глобальной памятью.
- Коалесинг.
- Параллельные решения задач умножения матриц и решения СЛАУ.
- Задание #1.
- Лекция 3. Иерархия памяти CUDA. Глобальная и разделяемая память и ее использование (часть 2).9 марта 2010 г.
- Разделяемая память.
- Конфликты банков
- Реализация примитивов параллельного суммирования (reduce), префиксной суммы (scan) и построение гистограмм на CUDA.
- Лекция 4. Иерархия памяти CUDA.
- Текстуры в CUDA (cudaArray).
- Использование текстурных ссылок при работе с cudaArray, и pitch linear.
- Цифровая обработка сигналов.
- Простые фильтры (размытие, обнаружение границ, математическая морфология).
- Реализация операций свертки, быстрого преобразования Фурье, дискретного косинусного преобразования.
- Подавление шума, масштабирование сигнала.
- Задание #2.
- Лекция 5. Обработка видео.
- Использование PDE в обработке видео.
- Оптический поток.
- Лекция 6. Трассировка лучей.
- Синтез изображения..
- Пересечения луча с треугольником.
- Построение пространственного индекса.
- Трассировка дерева и решение уравнения освещения.
- Задание #3.
- Лекция 7. Решение PDE.
- Использование CUDA для решения уравнения теплопереноса.
- Использование CUDA для гидродинамики.
- Использование CUDA для моделирования циклотрона.
- Задачи математической физики
- Лекция 8. CUDA C, CUDA Driver API & OpenCL. OpenMP & MPI.
- Использование ptx и JIT
- Введение в OpenCL
- Программирование multi-GPU систем.
- Взаимодействие CUDA и OpenMP / MPI.
- Использование потоков команд.
- Задание #4.
- Лекция 9. Нейронные сети.
- Использование нейронных сетей при обработке физических данных.
- Использование нейронных сетей в обработке изображений.
- Лекция 10 Вопросы оптимизации CUDA
- Использование PTX
- Понятие занятости мультипроцессора
- CUDA Visual Profiler
- Nexus
- Задание #5.
- Лекция 11. Перспективы развития массивно-параллельных систем.
- Направления исследования.
- Показ студенческих работ.
Программа курса 2009
- 24 февраля: Введение. Существующие многоядерные системы. GPU как массивно-параллельный процессор. CUDA "hello, world"
- 3 марта: Архитектура Tesla и модель программирования CUDA.
- 10 марта: Иерархия памяти CUDA. Глобальная память. Параллельные решения задач умножения матриц и решения СЛАУ.
- 17 марта: Иерархия памяти CUDA. Разделяемая память. Реализация примитивов параллельного суммирования (reduce) и префиксной суммы (scan) на CUDA.
- 24 марта: Иерархия памяти CUDA. Текстуры в CUDA. Цифровая обработка сигналов: реализация операций свертки, быстрого преобразования Фурье.
- 31 марта: Нерегулярный параллелизм в цифровой обработке сигналов.
- 7 апреля: Особенности реализации алгоритмов трассировки лучей на CUDA.
- 14 апреля: Решение дифференциальных уравнений на CUDA на примере задач гидродинамики.
- 21 апреля: Программирование многоядерных GPU. Кластеры из GPU.
- 28 апреля: Вопросы оптимизации приложений на CUDA.
- 12 мая: Перспективы развития массивно-параллельных систем. Направления исследования.