Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

CS322. Программирование ускорителей параллельных вычислений

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Магистратура
  5. Разработка мобильных приложений и компьютерных игр
  6. CUDA
  7. Многоуровневая память видеокарты
  8. Задания 3 и 4. Работа с разделяемой памятью

Задания 3 и 4. Работа с разделяемой памятью

Требуемые условия завершения
Срок сдачи: понедельник, 11 ноября 2024, 23:55

В данном задании требуется представить 2 варианта программы для видеокарты: 1) максимально простой и короткий; и 2) быстрый, использующий разделяемую память. 

Запрограммируйте генерацию случайных входных данных для алгоритма и автоматическую проверку корректности работы программы.

Выполните теоретическую оценку производительности обоих вариантов алгоритма. Укажите в отчете, насколько теоретическая оценка отличается от практической.

Рекомендуемый план выполнения задания: сделать максимально простую и короткую программу; выполнить ее теоретическую оценку производительности и понять из-за чего она не так быстро работает, как должна и зачем здесь может пригодится разделяемая память; запрограммировать более сложный вариант с разделяемой памятью и выполнить его теоретическую оценку производительности.

Варианты:

1. Вычислите матрицу Грама для системы длинных векторов-изображений.
2. Посчитайте скалярное произведение всех соответствующих строк двух матриц, хранящихся в памяти по строкам.
3. Для заданной высокой и узкой (50000x1024) матрицы целых чисел int реализуйте проверку того, что ее строки симметричны относительно средней вертикальной линии. Матрица хранится в памяти по строкам. Функция должна возвращать вектор True/False, содержащий для каждой строки результат проверки на симметрию.
4. Реализуйте подсчет количества нулей в каждой строке высокой матрицы A таких, что в матрице B того же размера в соответствующей позиции также стоит 0. Матрицы хранятся по строками.
5. Для заданной текстовой строки длины M и текста из N строк одной той же длины M реализуйте функцию расчета количества строк в тексте, совпадающих с заданной. Текст на 95% состоит из пробелов, N - несколько сотен тысяч, M - несколько сотен.
6. Реализуйте умножение длинной матрицы (128 строк, 200 тыс столбцов), хранящейся по столбцам, на длинный вектор
7. Для двух высоких матриц A и B, хранящихся по строкам, реализуйте умножение максимума из них на короткий вектор v: sum(max(A_ij, B_ij)*v_j, j=1..n)
8. Реализуйте пакетное возведение в квадрат массива небольших матриц, хранящихся в памяти друг за другом (размерами от 2 до 10). Сделайте так, чтобы один параллельный поток полностью вычислял ровно одну матрицу результата.
9. Для каждой пары элементов двух больших массивов структур x и y типа: struct{ char m1; float p1; ... char m16; float p16;} вычислите результат сложения: x.m1*x.p1*y.m1*y.p1+...+x.m16*x.p16*y.m16*y.p16
10. Реализуйте сравнение строк в двух текстах. Оба текста состоят из одинакового большого числа строк. Все строки имеют одинаковую длину. Программа должна возвращать набор номеров строк, где обнаружены совпадающие символы (в соответствующих позициях) и количество совпадений в каждой строке.
11. Реализуйте сортировку большого числа маленьких массивов одинаковой длины. Массивы хранятся в памяти друг за другом.
12. На очень высоком и узком черно-белом рисунке изображен выпуклый объект.  Требуется посчитать ширину объекта для каждого значения высоты y. Изображение хранится в памяти по строкам.
13. Создайте детектор вертикальных границ на изображении (в градациях серого). Функция должна для каждой строки считать количество точек, в которых производная цвета по горизонтали больше заданного значения. Все изображения хранятся в памяти по строкам.
14. Заданы две высокие узкие матрицы A и B, хранящиеся в памяти по строкам. Известно, что некоторые строки матрицы B получены из соответствующих строк A циклической перестановкой столбцов. Реализуйте быструю функцию проверки, которая для каждой строки отвечает на вопрос, является ли заданное число shift циклическим сдвигом, с которым можно получить эту строку B из соответствующей строки A.
15. Задано большое количество маленьких наборов точек одинакового размера (хранятся в памяти один набор после другого). Выясните, на какой из наборов больше похож заданный.
16. Реализуйте быстрый расчет решения дифференциального уравнения dy/dx = sin((x+y)/a), y(0)=y0, x=0..1 методом Эйлера для заданного большого массива значений параметра a. Результат запишите в матрицу, каждая строка которой соответствует одному значению параметра a. Матрица хранится в памяти по строкам.
17. Граф задан матрицей инцидентности, хранящейся в памяти по столбцам-ребрам графа. Требуется построить по матрице список ребер.
18. Для каждой строки изображения оценить количество пикселей заданного цвета с учетом допуска. Изображения хранится в памяти по строчкам.
19. Реализуйте расчет количества транспозиций рядом стоящих коэффициентов матрицы в строке, т.е. для каждой строки i количества таких j, что Ai,j > Ai,j+1. Матрица хранится в памяти по строкам (кол-во столбцов - около 1000).
20. Реализуйте пакетный расчет максиминного элемента в большом количестве маленьких матриц (размерами от 2 до 10). В каждой матрице нужно вычислить max_i min_j a_ij. Матрицы хранятся в памяти друг за другом.
21. Реализуйте пакетный расчет матриц Грама для большого количества систем векторов маленького размера (количество векторов и размерность вектора равны n = 2..10). Системы векторов и матрицы Грама хранятся в памяти друг за другом.

◄ Презентация 7. Банки разделяемой памяти
Презентация 8. CUDA-библиотеки ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

            • МО (маг ФИИТ)

            • НИС_3

            • КПР

            • НИС_1

            • AndroidSec

            • НСМП

            • GD

            • VRAR

            • CS432

            • Game Physics

            • ЯП

            • CUDA

              • Введение

              • Многоуровневая память видеокарты

                • ФайлПример программы с CUDA unified memory

                • ГиперссылкаПараметры вашей видеокарты

                • ФайлПрезентация 4. Типы памяти

                • ФайлПрезентация 5. Доступ к глобальной памяти

                • ФайлПрезентация 6. Пример работы с разделяемым кэшем

                • ФайлПрезентация 7. Банки разделяемой памяти

                • ЗаданиеЗадания 3 и 4. Работа с разделяемой памятью

              • CUDA-библиотеки

              • Программирование тензорных ядер

              • OpenACC

              • OpenCL

          • ТОИ маг

          • Modern computer technology

          • Математика и её приложения в науке и инженерии

          • MUDP

          • ОНС-Н

          • RL

          • ИИ_НС

          • КрПр

          • КЗ

          • АДС

          • РПП

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
CUDA
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика