ОБЩАЯ ТРУДОЕМКОСТЬ ДИСЦИПЛИНЫ
Объем дисциплины в зачетных единицах (всего) 3
Объем дисциплины по видам учебной работы (в часах)
Вид учебной работы
|
Количество часов (форма обучения очная )
|
Всего по плану
|
В т.ч. по семестрам
|
7
|
1
|
2
|
6
|
Контактная работа обучающихся с преподавателем в соответствии с УП
|
54
|
54
|
Аудиторные занятия:
|
36
|
36
|
лекции
|
18
|
18
|
Семинары и практические занятия
|
-
|
-
|
лабораторные работы, практикумы
|
36
|
36
|
Самостоятельная работа
|
54
|
54
|
Форма текущего контроля знаний и контроля
самостоятельной работы: тестирование, контр. работа, коллоквиум, реферат и др.(не менее 2 видов)
|
Устный опрос.
Тестирование
|
Устный опрос. Тестирование
|
Курсовая работа
|
-
|
-
|
Виды промежуточной аттестации (экзамен, зачет)
|
зачет
|
зачет
|
Всего часов по дисциплине
|
108
|
108
|
Содержание дисциплины (модуля.) Распределение часов по темам и видам учебной работы:
Форма обучения очная
Название разделов и тем
|
Всего
|
Виды учебных занятий
|
Форма текущ его контро ля
знаний
|
Аудиторные занятия
|
в т.ч. заняти
я в интера ктивн ой
форме
|
Само стоят ельна я работ а
|
лекци и
|
практичес кие
занятия, семинары
|
Лаборатор ные работы, практику мы
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
Раздел 1 Эволюция графических ускорителей
|
|
Тема 1.1.
|
2
|
2
|
|
|
|
1
|
Устны й опрос
|
Тема 1.2.
|
6
|
2
|
|
2
|
|
3
|
Тестир ование
|
Тема 1.3.
|
6
|
2
|
|
2
|
2
|
3
|
Устны й опрос
|
Раздел 2. Программная модель CUDA
|
|
Тема 2.1.
|
8
|
2
|
|
2
|
|
4
|
Устны й опрос
|
Тема 2.2.
|
6
|
2
|
|
2
|
2
|
3
|
Устны й опрос
|
Раздел 3. Высокоуровневые технологии разработки
|
|
Тема 3.1.
|
2
|
2
|
|
|
|
1
|
Тестир ование
|
Тема 3.2.
|
2
|
2
|
|
|
|
1
|
Тестир ование
|
Тема 3.3.
|
2
|
2
|
|
|
2
|
1
|
Устны й опрос
|
Итого
|
108
|
18
|
|
36
|
18
|
54
|
|
СОДЕРЖАНИЕ ДИСЦИЛИНЫ (МОДУЛЯ) Раздел 1 Эволюция графических ускорителей
Тема 1. Графический конвейер. Архитектура GPU-устройства. Эволюция графических ускорителей. Появление и эволюция графического конвейера. Текстуры, шейдеры. Шейдерные процессоры. Общие черты внутреннего устройства графических ускорителей разных производителей.
Тема 2. Иерархия памяти GPU. Константная, глобальная, текстурная, разделяемая память. Виды памяти в GPU устройствах. Константная, глобальная, текстурная, разделяемая память. Расположение на графическом чипе, кеширование, ограничения доступа. Обмен данными между GPU и CPU. Общее виртуальное адресное пространство.
Тема 3. Общие принципы построеня программ для GPU. Модель программмирования в общей памяти. SIMD (SIMT) модель программы. Классификация Флинна. Место GPU в классификации Флинна. Отличия модели SIMT от классической SIMD-архитектуры.
Раздел 2. Программная модель CUDA
Тема 1. Программная модель CUDA. Взаимодействие CPU->GPU->CPU. Взаимодействие CUDA и C/C++. Расширение языка C/C++. Встроенные типы данных, дополнительные языковые конструкции. CUDA-библиотека времени исполнения. Атомарные операции.
Тема 2. Некоторые алгоритмы обработки массивов. Параллельная редукция. Префиксная сумма. Установка и настройка программного обеспечения CUDA под ОС семейств Windows и Linux. Расширение языка C/C++. Встроенные типы данных, дополнительные языковые конструкции. CUDA-библиотека времени исполнения. Атомарные операции. Компиляция CUDA-программ.
Раздел 3. Высокоуровневые технологии разработки
Тема 1. Некоторые численные алгоритмы.
Программная реализация алгоритма параллельного суммирование элементов одномерного массива на GPU. Сравнение производительности CPU и GPU- реализаций.
Тема 2. Прикладные математические библиотеки: CUBLAS, CUSPARSE, CUFFT, CURAND.
Программная реализация на GPU алгоритмов: - транспонирования матрицы - вычисления числа "пи" при помощи составных квадратурных формул - вычисления числа "пи" методом Монте-Карло. Тема 3. Высокоуровневые технологии разработки. Введение в Thrust. Реализация вычисления числа "пи" составными квадратурными формулами при помощи Thrust. Сравнение производительности.
Введение в шаблоны C++. Функтор, итератор. Их реализация на C++. ZIP-итератор. Общая идеогогия Thrust. Примеры использования. Взаимодействие Thrust и CUDA Plain C.
ТЕМЫ ПРАКТИЧЕСКИХ И СЕМИНАРСКИХ ЗАНЯТИЙ
Данный вид работы не предусмотрен УП
ЛАБОРАТОРНЫЕ РАБОТЫ, ПРАКТИКУМЫ
Лабораторная работа 1: Общие черты внутреннего устройства графических ускорителей разных производителей.
Лабораторная работа 2: Виды памяти в GPU устройствах. Константная, глобальная, текстурная, разделяемая память. Расположение на графическом чипе, кеширование, ограничения доступа. Обмен данными между GPU и CPU. Общее виртуальное адресное пространство.
Лабораторная работа 3: Классификация Флинна. Место GPU в классификации
Флинна. Отличия модели SIMT от классической SIMD-архитектуры.
Лабораторная работа 4: Программная модель CUDA. Взаимодействие CPU-
>GPU->CPU. Взаимодействие CUDA и C/C++. Расширение языка C/C++. Встроенные типы данных, дополнительные языковые конструкции. CUDA- библиотека времени исполнения. Атомарные операции.
Лабораторная работа 5: Программная реализация алгоритма параллельного суммирование элементов одномерного массива на GPU
Лабораторная работа 6: Введение в шаблоны C++. Функтор, итератор. Их реализация на C++. ZIP-итератор.
ТЕМАТИКА КУРСОВЫХ, КОНТРОЛЬНЫХ РАБОТ, РЕФЕРАТОВ
Выполнение курсовых работ и контрольных не предусмотрено учебным планом.
ПЕРЕЧЕНЬ ВОПРОСОВ К ЗАЧЕТУ
Индекс
компетенции
|
№
|
|
ПК-1
|
1
|
Эволюция GPU. Современный графический конвейер.
|
ПК-3
|
2
|
Архитектура графического ускорителя nVidia. Шейдер. Шейдерный процессор. Управление потоком инструкций и
данных.
|
ПК-3, ПК-7
|
3
|
Виды памяти GPU. Константная, глобальная, текстурная,
разделяемая память. Расположение на графическом чипе, кеширование, ограничения доступа.
|
ПК-3, ПК-7
|
4
|
Программная модель CUDA. Расширение языка C/C++. Встроенные типы данных, дополнительные языковые
конструкции.
|
ПК-3, ПК-7
|
5
|
Программная модель CUDA. Расширение языка C/C++. CUDA-библиотека времени исполнения. Атомарные
операции.
|
ПК-3, ПК-7
|
6
|
Предназначение и структура библиотек CUBLAS,
CUSPARSE, CURAND.
|
ПК-3, ПК-7
|
7
|
Библиотека Thrust. Идеология. Детали реализации
вычислительных алгоритмов с использованием Thrust.
|
|
|
Функтор, итератор, zip-итератор.
|
ПК-3, ПК-2
|
8
|
Опишите структуру графического процессора G80.
|
ПК-3, ПК-7
|
9
|
Каковы основные вычислительные возможности нитевых
ядер?
|
ПК-3, ПК-7
|
10
|
Опишите структуру потокового мультипроцессора.
|
ПК-2
|
11
|
Как должны быть организованы вычисления в процессоре
G80?
|
ПК-2, ПК-7
|
12
|
В чем состоят принципы организации и функционирования
массива взаимодействующих нитей?
|
ПК-2, ПК-7
|
13
|
В соответствии с техникой массива взаимодействующих
нитей распишите один из известных вам алгоритмов численного интегрирования.
|
Достарыңызбен бөлісу: |