Последнее обновление: 20 сентября 2010 в 20:53

2010/2011 — Осенний семестр

Технология NVidia CUDA

Семестровый курс по выбору.

Разделы: Программирование.

Кафедра молекулярной физики (ФМБФ).

Проходит: по субботам в 17.05, первое занятие (организационное) 11 сентября. Аудитория: 117 ГК, семинары — 408 ЛК.

Лектор: Казённов А. М., доц. Яворский В. А.

В 2010 г. есть интенсивный курс, который проходит ежедневно (кроме четверга и воскресенья), 18.30, 408 ЛК.

Данный курс предназначен для студентов 1 — 6 курсов МФТИ, желающих научиться использовать перспективную технологию программирования на видеокартах NVidia CUDA для решения научных задач, требующих значительных вычислений.

В 2010 г. есть интенсивный курс, который проходит ежедневно (кроме четверга и воскресенья), 18.30, 408 ЛК.

Сайт курса: hpc.mipt.ru.

В 2010/2011 учебном году в бакалавриате данный курс можно засчитать как технический курс по выбору.

Программа курса: http://info.mipt.ru/web_lections/kazennov.html.

Лекция 1. Введение в курс

История развития вычислительных систем. Основная терминология курса. Типы параллелизма. Обоснование необходимости использования распределенных систем. Критерии применимости параллельных вычислений. Примеры применения параллельных вычислений. Различные типы параллельных систем. Классическая и гибридная схема. Кластеры и суперкомпьютеры на гибридной схеме.

Семинар 1. Внутреннее устройство компьютера

Системный блок изнутри. Платы расширения. Слоты и порты. Принципиальные различия между GPU и CPU с точки зрения железа. Скорости доступа для различных слотов.

Лекция 2. Архитектура CPU и GPU

Сравнение классической архитектуры Intel и AMD. Принципиальное отличие классической и CUDA архитектуры GPU. Необходимые шаги к единой архитектуре вычислительных устройств. Сравнительные характеристики чипов G80, G92, G200, G300 NVIDIA.

Лекция 3. Аппаратная реализация единой архитектуры

Объединённая архитектура графических процессоров. Основные составные элементы аппаратной реализации GPU. Преимущества унифицированной архитектуры. Составные части аппаратной реализации: TPC, SM, SP. Буфер инструкций SM. Регистровый файл SM. Конвейеры исполнения команд. Ветвление внутри варпа.

Лекция 4. Программная модель CUDA

Основные модификаторы языка C. Введение в особенности программирования под GPU. Понятия треда, варпа, блока и грида. Программный стек CUDA. Описание пользовательского интерфейса разработчика, основные компоненты. Команды работы с памятью. Пример вызова CUDA.

Семинар 2.Первая программа на CUDA

Необходимые приложения для написания программы. Установка программного обеспечения. Использование Putty и WinSCP для доступа к серверу. Написание «Hello World».

Лекция 5. Модель памяти GPU

Глобальная, константная, текстурная, локальная, разделяемая и регистровая память. Особенности использования каждого типа памяти. Размещение различных данных в различной памяти. Сравнения производительности глобальной и текстурной памяти на задачах произвольного чтения. Характерные размеры каждой памяти на примере чипа G200. Когерентное общение с глобальной памятью.

Семинар 3. Глобальная и разделяемая память

Написание программы перемножения матриц с использованием глобальной памяти. Оптимизация написанной программы с использованием разделяемой памяти. Способы избегания конфликта банков в разделяемой памяти. Постановка 1й и 2й задачи на дом.

Лекция 6. Оптимизация основных алгоритмов

Scan, Reduce, Histogram, Bitonic sort.

Семинар 4. Текстурная память

Использование текстурной памяти. Способы размещения данных в текстурной памяти. Использование аппаратной интерполяции.

Постановка 3й задачи на дом.

Семинар 5. Проверка домашних заданий

Проверка домашних заданий. Сдача зачета.

Список литературы

Архитектура и программирование массивно параллельных процессоров: http://www.nvidia.ru/object/cuda_state_university_courses_ru.html.
GPU Gems 1, 2, 3 edited Hubert Nquyen from NVIDIA.
Курс лекций по CUDA (МГУ): http://groups.google.ru/group/cudacsmsusu?hl=ru&pli=1.
Боресков А.В., Харламов А.В. Основы работы с технологией CUDA. — Изд-во: ДМК Пресс, 2010, 232 стр.

Что развивает курс (данные для «Вектора»)

Информация о развиваемых компетенциях занесена в систему для работы «Вектора». Поскольку занесение информации производится редакторами проекта, а не авторами курсов, информация может быть неполной или даже частично неверной. Если Вы нашли ошибку, напишите нам об этом. См. также подробнее о системе «Вектор» и полный список компетенций.


Система Orphus © 2010–2014, mipt-courses.ru. Email: editor@mipt-courses.ru.