рус eng
 
 Резюме
 Работа
 Публикации
 Заметки
 Образование
 Увлечения
 
Разработка приложений на CUDA
Спецкурс для магистрантов ФИТ, специализации "Компьютерное моделирование"
Lectures notes

ssh: 193.124.208.113:10022 или ssh:10.4.0.65 (из сети НГУ)
Порядок сдачи заданий
Все вопросы\ответы высылать по адресу arom[ at ]ccfit.nsu.ru. Префикс темы письма "CUDA_2011".
К отчету:
  1. Код программы и Makefile или строку компиляции на сервере cuda.ccfit.nsu.ru
  2. Отчет на полстраницы с результатом работы программы и его объяснением
Задачи (Результаты)
  1. Выделить на 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.

  2. Реализовать программу для накладывания фильтров на изображения. Возможные фильтры: размытие, выделение границ, избавление от шума. Реализовать два варианта программы, а именно: с применением разделяемой памяти и текстур. Сравнить время.

    Для работы с графическими файлами рекомендуется использовать libpng (man libpng). Примеры использования библиотеки в /usr/share/doc/libpng12-dev/examples/
    или
    функции для работы с PPM файлами из CUDA Utility Library.

    Ссылки по теме: на habrahabr, на ИНТУИТ

  3. Модифицировать предыдущую программу так, чтобы использовались все имеющиеся в распоряжение программы GPU. Программа должна определять количество доступных GPU и распределять работу по ним.
  4. При помощи метода наименьших квадратов найти окружность в изображении. Для каждой случайной выборки точек организовать их обработку на GPU. Случайные выборки организовать при помощи библиотеки CURAND.

    Входные данные: изображение размером 640x480 (например, знак ограничения скорости), количество выборок N, количество элементов в каждой выборке K.

    Выходные данные: изображение с нарисованной на нём окружностью.

    Рекомендация: предварительно к изображению можно применить фильтр Собеля выделения границ и рассматривать точки, у которых нормированное значение цвета >=0.5.

  5. Ray Tracing. Реализовать генерацию сцены, состоящей минимум из двух сфер и минимум одной плоскости. На выбор реализовать или преломление или отражение луча от сфер. На плоскости должна быть натянута текстура. Минимальный размер результирующего изображения 640х480 точек.

    Плоскость можно представить в виде 2х треугольников.


Usefull links (Полезные ссылки)