Программирование графических процессоров Лабораторная 3

Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon kernel.cu
material.view.file_icon Lab3.exe
material.view.file_icon Документ Microsoft Word.docx

Необходимые программы

Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Выполнение лабораторной работы поможет получить навыки требующиеся для выполнения третьего задания контрольной работы.
Задание
1. Прочитайте главы теоретического материала под названиями "Pinned memory" и "Потоки (streams) в CUDA". Ответьте на контрольные вопросы в конце глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе).
2. Примените потоки для алгоритмов реализованные в лабораторной работе №1.
3. Определите оптимальное количество потоков для матрицы размером 2500x2500 элементов и вектора размером 2500 элементов.
Методические указания
Для выполнения лабораторной работы требуется модифицировать код, выполняемый на хосте таким образом, чтобы данные передавались на устройство частями асинхронно, после этого выполнялось функция-ядро над переданной частью, после завершения вычислений часть ответа асинхронно должна копироваться на хост.
На хосте создайте и проинициализируйте матрицу и вектор, которые будут умножаться. Затем выделите память на хосте под результирующий вектор и проинициализируйте его нулями. Выделите память под матрицу и вектора на устройстве, создайте нужное количество потоков (начните с двух потоков).
Теперь нужно определиться какие части данных передавать в каждый поток. Разделение нужно произвести таким образом, чтобы результатом работы функции-ядра была часть конечного результата, не требующая дальнейшей обработки. В таком случае имеет смысл в каждом потоке передавать на устройство часть строк матрицы, а вектор передать сразу полностью, потому что для вычислений, каждой нитью используется одна строка из матрицы и вектор. Результатом работы нити будет один элемент результирующего вектора.
Для того чтобы определить размер порции данных нужно количество строк матрицы поделить на количество потоков, и результат умножить на длину строки. После этого полностью скопируйте значения вектора на устройство. И для каждого потока асинхронно скопируйте часть данных на устройство, используя функцию cudaMemcpyAsync, запустите вычисления над порцией данных, асинхронно скопируйте результат на хост. В конце синхронизируйте все потоки вызовом функции cudaDeviceSynchronize() – эта функция будет ожидать завершения всех запущенных потоков.
Проведите исследование зависимости времени работы алгоритма от количества потоков. Начните с двух потоков и увеличивайте их количество до тех пор, пока время, затраченное на вычисления, не перестанет уменьшаться. Замеры времени следует проводить, включая асинхронные пересылки данных.

Дополнительная информация

зачет
Программирование графических процессоров. Лабораторная 3
1. Прочитайте главы теоретического материала под названиями "Pinnedmemory" и "Потоки (streams) в CUDA". Ответьте на контрольные вопросы в конце глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе). 2. Примените потоки для алгоритмов реализованные в лабораторной работе №1. 3. Определите оптимальное количество потоков для матрицы размером 2500x2500 элементов и вектора размером 2500 элементов.
User Алёна25 : 1 июля 2026
150 руб.
Программирование графических процессоров. Лабораторные 1-3
1. Прочитайте главы теоретического материала под названиями "Отличия GPU от CPU", "Первая программа на CUDAC", "Алгоритм сложения двух векторов на GPU", "События, обработка ошибок и получение информации об устройстве", "Глобальная, локальная и константная память". Ответьте на контрольные вопросы и выполните контрольные задания, предложенные в конце этих глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе). 2. Реализуйте параллельный алгоритм умножения AxV, где A
User Алёна25 : 1 июля 2026
300 руб.
Программирование графических процессоров. Лабораторная работа №3
Тема: Работа с потоками CUDA Задание 1. Прочитайте главы теоретического материала под названиями "Pinned memory" и "Потоки (streams) в CUDA". Ответьте на контрольные вопросы в конце глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе). 2. Примените потоки для алгоритмов реализованные в лабораторной работе №1. 3. Определите оптимальное количество потоков для матрицы размером 2500x2500 элементов и вектора размером 2500 элементов.
User pleze : 20 марта 2022
300 руб.
Программирование графических процессоров. Лабораторная работа №3. Вариант общий
Лабораторная работа №3 по курсу «Программирование графических процессоров» на тему «Работа с потоками CUDA» Выполнение лабораторной работы поможет получить навыки требующиеся для выполнения третьего задания контрольной работы. Задание 1. Прочитайте главы теоретического материала под названиями "Pinned memory" и "Потоки (streams) в CUDA". Ответьте на контрольные вопросы в конце глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе). 2. Примените потоки для алгори
User Damovoy : 25 апреля 2021
500 руб.
Лабораторные работы №1-3 по курсу «Программирование графических процессоров»
Лабораторная работа №1 по курсу «Программирование графических процессоров» на тему «Работа с глобальной памятью» Задание 1. Прочитайте главы теоретического материала под названиями "Отличия GPU от CPU", "Первая программа на CUDAC", "Алгоритм сложения двух векторов на GPU", "События, обработка ошибок и получение информации об устройстве", "Глобальная, локальная и константная память". Ответьте на контрольные вопросы и выполните контрольные за-дания, предложенные в конце этих глав (ответы на кон
User Леший : 23 апреля 2022
777 руб.
Лабораторные работы №№1-3 по дисциплине: Программирование графических процессоров
Лабораторная работа 1 Задание 1. Прочитайте главы теоретического материала под названиями "Отличия GPU от CPU", "Первая программа на CUDAC", "Алгоритм сложения двух векторов на GPU", "События, обработка ошибок и получение ин-формации об устройстве", "Глобальная, локальная и константная память". Ответьте на контрольные вопросы и выполните контрольные задания, предложенные в конце этих глав (ответы на контрольные вопросы не нужно включать в отчёт по лабораторной работе). 2. Реализуйте параллельны
User IT-STUDHELP : 3 декабря 2021
900 руб.
promo
Лабораторная работа 3 Программирование графических процессоров Все варианты 2023 год
2023 год СибГУТИ Сибирский государственный университет телекоммуникаций и информатики Милешко Антон Владимирович Тема: Лабораторная работа 3 Программирование графических процессоров Все варианты 2023 год Задания Лабораторная работа №3 по курсу «Программирование графических процессоров» на тему «Работа с потоками CUDA» Выполнение лабораторной работы поможет получить навыки требующиеся для выполнения третьего задания контрольной работы. Задание 1. Прочитайте главы теоретического материала под на
User SibSUTTI : 1 сентября 2023
198 руб.
promo
Лабораторные работы №1-3 по дисциплине: Программирование графических процессоров. Вариант общий
Лабораторная работа №1 «Работа с глобальной памятью» Задание лабораторной работы 1. Прочитайте главы теоретического материала под названиями "Отличия GPU от CPU", "Первая программа на CUDAC", "Алгоритм сложения двух векторов на GPU", "События, обработка ошибок и получение информации об устройстве", "Глобальная, локальная и константная память". Ответьте на контрольные вопросы и выполните контрольные задания, предложенные в конце этих глав (ответы на контрольные вопросы не нужно включать в отчёт
User Roma967 : 20 июля 2024
900 руб.
promo
Практическая работа №1, №2, №3, №4, №5, №6 Возрастная анатомия, физиология и гигиена. ОСЭК. Алешина Олеся Викторовна
Практическая работа №1 Задание 1.Заполненная таблица систем органов № Система органов Органы, из которых она состоит Функции Задание 2. Расположение органов и их систем Задание 3. Установите соответствие между органом и системой органов. Заполните таблицу, вставив соответствующую букву в таблицу: Практическая работа №2 Задание 1. Рассмотрите рисунок «Скелет человека» и назовите все кости, которые обозначены цифрами: Задание 2. Заполните таблицу «Строение позвоночного столба»: Назван
User Саша78 : 18 января 2026
100 руб.
Практическая работа №1, №2, №3, №4, №5, №6 Возрастная анатомия, физиология и гигиена. ОСЭК. Алешина Олеся Викторовна
Контрольная работа по предмету: Английский язык. 2-й семестр
I. Перепишите и письменно переведите на русский язык следующие предложения. Помните, что объектный и субъектный инфинитивные обороты соответствуют придаточным предложениям. l. Some liquids are known to conduct current without any changes to themselves. 2.Samples of semiconductors with improved properties are reported, to be obtained, on a new installation. 3.Scientific discoveries to be practically applied in industry and agriculture are paid special attention to. II. Перепишите и письменно пер
User Landscape : 29 января 2014
30 руб.
Теплотехника РГАУ-МСХА 2018 Задача 5 Вариант 09
Электрошина сечением 100×10 мм² и удельным сопротивлением ρ, установленная на ребро, охлаждается свободным потоком воздуха, температура которого tж. При установившейся электрической нагрузке температура электрошины не должна превышать 70 ºС. Вычислить коэффициент теплоотдачи α, величину теплового потока, теряемую в окружающую среду, если длина электрошины l, и допустимую силу тока. Ответить на вопросы: 1. Дайте определение свободной конвекции. 2. Что такое определяющие и определяемые числ
User Z24 : 26 января 2026
200 руб.
Теплотехника РГАУ-МСХА 2018 Задача 5 Вариант 09
Контрольная работа по дисциплине: Технология разработки программного обеспечения. Вариант №6
Содержание 1. Задание к контрольной работе 2 2. Формирование требований 2 3. Проектирование 3 4. Реализация 4 4.1 Программирование 4 4.2 Документирование 9 Заключение 13 1. Задание к контрольной работе В рамках данной контрольной работы предлагается осуществить формирование требований, проектирование, реализацию и тестирование программы. Вариант 6. Конвертор для преобразования бинарных файлов в шестнадцатиричные дампы и обратно. В минимальном виде конвертор – это утилита, которой в качестве пар
User Учеба "Под ключ" : 20 ноября 2016
1000 руб.
up Наверх