Uploaded by boris.burtseff

GVS№4

advertisement
Федеральное государственное автономное
образовательное учреждение
высшего образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Институт космических и информационных технологий
Кафедра вычислительной техники
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ
Практическая работа
Профилирование программы на GPU
Преподаватель
_____________
подпись, дата
Студент ____________________
номер группы, зачетной книжки
Бурцев Б. Е.
подпись, дата
Студент ____________________
номер группы, зачетной книжки
инициалы, фамилия
Устинов П. А.
подпись, дата
Студент ____________________
номер группы, зачетной книжки
инициалы, фамилия
инициалы, фамилия
Зозулин А. Е
подпись, дата
Красноярск 2020
инициалы, фамилия
Цель работы:
Освоить программное обеспечение NVIDIA Visual Profiler. Научиться
выполнять профилирование приложений, исполняющихся на GPU Nvidia.
Провести сравнительный анализ показателей эффективности ядер CUDA
приложения.
Ход работы:
Рисунок 1 – Временная диаграмма выполнения программы
2
Рисунок 2 – Характеристики GPU, на котором исполняется программа
На рис. 1 изображены функции выделения памяти
cudaMalloc,
копирования памяти MemCpy, расчетов Compute функций без использования
разделения памяти matrixMulGPU и с использованием разделения памяти
matrixMulGPU_shm, использование потоков Streams для переноса информации с
видеокарты и на нее.
3
Таблица 1 – Описание функций, работающих с памятью
Объем использованной
Пропускная
Функция
памяти
способность
MemCpy (HtoD)
524,288 kB
10,183 GB/s
MemCpy (DtoH)
524,288 kB
12,273 GB/s
Таблица 2 – Характеристики функций расчета
Значение для
Характеристика
matrixMulGPU
Объем
22
регистров на блок
Объем разделяемой памяти
0B
на блок
Эффективность загрузки
56,2%
Эффективность памяти
100%
Эффективность
n/a
разделяемых ресурсов
Запрошенный объем
0B
разделяемой памяти
Рисунок 3 – с разделяемой памятью
4
Время
выполнения
51,488 μs
42,72 μs
Значение для
matrixMulGPU_shm
28
2 KiB
100%
100%
42,3%
16 KiB
Рисунок 4 – без разделяемой памяти
Рисунок 5 – Слева без разделяемой памятью, а справа с разделяемой памятью
Вывод: Функция с разделяемой памятью работает быстрее из-за того, что
пропускная способность не сокращается из-за многократных обращений в
память, как это продемонстрированно в функции без разделяемой памяти.
5
Download