|
|
| |
|
Разработка приложений на CUDA
Спецкурс для магистрантов ФИТ, специализации "Компьютерное моделирование"
Lectures notes
ssh: 193.124.208.113:10022 или ssh:10.4.0.65 (из сети НГУ)
Порядок сдачи заданий
Все вопросы\ответы высылать по адресу arom[ at ]ccfit.nsu.ru.
Префикс темы письма "CUDA_2011".
К отчету:
- Код программы и Makefile или строку компиляции на сервере cuda.ccfit.nsu.ru
- Отчет на полстраницы с результатом работы программы и его объяснением
Задачи (Результаты)
- Выделить на GPU массив arr из 10^9 элементов типа float и инициализировать
его с помощью ядра следующим образом: arr[i] = sin((i%360)*Pi/180). Скопировать
массив в память центрального процессора и посчитать ошибку err =
sum_i(abs(sin((i%360)*Pi/180) - arr[i]))/10^9. Провести исследование
зависимости результата от использования функций: sin, sinf, __sin. Объяснить
результат. Проверить результат при использовании массива типа double.
- Реализовать программу для накладывания фильтров на изображения. Возможные фильтры:
размытие, выделение границ, избавление от шума. Реализовать два варианта программы,
а именно: с применением разделяемой памяти и текстур. Сравнить время.
Для работы с графическими файлами рекомендуется использовать libpng (man libpng).
Примеры использования библиотеки в /usr/share/doc/libpng12-dev/examples/
или
функции для работы с PPM файлами из CUDA Utility Library.
Ссылки по теме: на habrahabr,
на ИНТУИТ
- Модифицировать предыдущую программу так, чтобы использовались все
имеющиеся в распоряжение программы GPU. Программа должна определять количество
доступных GPU и распределять работу по ним.
-
При помощи метода наименьших квадратов найти окружность в изображении.
Для каждой случайной выборки точек организовать их обработку на GPU. Случайные выборки организовать при помощи библиотеки CURAND.
Входные данные: изображение размером 640x480 (например, знак ограничения скорости), количество выборок N, количество элементов в каждой выборке K.
Выходные данные: изображение с нарисованной на нём окружностью.
Рекомендация: предварительно к изображению можно применить фильтр Собеля выделения границ и рассматривать точки, у которых нормированное значение цвета >=0.5.
- Ray Tracing.
Реализовать генерацию сцены, состоящей минимум из двух сфер и
минимум одной плоскости. На выбор реализовать или преломление или отражение
луча от сфер. На плоскости должна быть натянута текстура. Минимальный
размер результирующего изображения 640х480 точек.
Плоскость можно представить в виде 2х треугольников.
Usefull links (Полезные ссылки)
|
|