Программирование графических процессоров Лабораторная 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). Контрольная работа. В №11
Вариант задания № 11 1. Сообщение №1 0000: 08 00 1e 90 0b 20 08 00 2b e8 0b 8e 08 00 45 60 0010: 01 1a 0b 25 00 00 20 11 00 09 c0 a5 95 6a c7 45 0020: 9f d3 c0 7c 00 a1 01 06 4a 51 30 81 fb 02 01 00 0030: 04 06 61 65 73 2d 31 31 a0 81 ed 02 04 35 97 ac 0040: 55 02 01 00 02 01 00 30 81 de 30 0c 06 08 2b 06 0050: 01 02 01 01 03 00 05 00 30 0e 06 0a 2b 06 01 02 0060: 01 02 02 01 05 01 05 00 30 0e 06 0a 2b 06 01 02 0070: 01 02 02 01 08 01 05 00 30 0e 06 0a 2b
User banderas0876 : 28 марта 2021
150 руб.
Управление качеством в телекоммуникациях (ФТД 1). Контрольная работа. В №11
Плита ГР20.020324.000. Вариант №24
Плита ГР20.020324.000 . Вариант 24 Выполнить сборочный чертеж и спецификацию соединения разъемного. Детали. 1 – Основание. Материал – Сталь 20 ГОСТ 1050-88. 2 – Вставка 3 – Накладка. 4 – Пластина. Стандартные крепежные изделия. Болт М10….. ГОСТ 7805-70. Винт М8 ….. ГОСТ 1491-80. Шпилька М8 …. ГОСТ 22033-76. Гайка …. ГОСТ 5927-70. Шайба …. ГОСТ 11371-78. Шайба …. ГОСТ 6402-70. 3d модель и сборочный чертеж + спецификация (все на скриншотах показано и присутствует в архиве) выполнены в компасе
User lepris : 4 февраля 2022
170 руб.
Плита ГР20.020324.000. Вариант №24
Электрические цепи постоянного тока
Содержание 1.Электрические цепи постоянного тока 1.1. Основные понятия, определения и законы 1.2. Расчет линейных электрических цепей с использованием законов Ома и Кирхгофа 1.3. Основные методы расчета сложных электрических цепей 1.3.1. Метод контурных токов 1.3.2. Метод узловых потенциалов 1.3.3. Метод эквивалентного генератора Литература ЭЛЕКТРИЧЕСКИЕ ЦЕПИ ПОСТОЯННОГО ТОКА 1.1 Основные понятия, определения и законы Электрической цепью называют совокупность устройств и объектов, образующ
User kostak : 21 августа 2009
Танкер Крым теоретический чертеж
Чертеж сделан в компасе и автокаде
User Laguz : 26 февраля 2024
200 руб.
Танкер Крым теоретический чертеж
up Наверх