Трассировка лучей на видеокарте

Задания

  1. Напишите программу, которая трассирует лучи на видеокарте. Основной цикл программы (функция ray_tracing_gpu) должен быть реализован на видеокарте с помощью OpenCL. Для генерации псевдослучайных чисел можно использовать процессор. Также должны быть соблюдены условия ниже.
  2. Измерьте время работы кода на видеокарте и на процессоре и постройте таблицу или график зависимости времени работы основного цикла от размера изображения.

Условия

Исходный код

module load gpc-2021
git clone https://course.igankevich.com/gpu-programming/ray-tracing.git
cd ray-tracing
make
cd build
./ray-tracing
           Time step        No. of steps         OpenMP time
                   1                  60              360520
                   2                  60              342980
                   3                  60              356434
                 ...                 ...                 ...
                  58                  60              344582
                  59                  60              349910
                  60                  60              354713
Total time: 21s
Movie time: 1s
./ray-tracing gpu
GPU version is not implemented!

Пример вывода

Файл out.ppm
Файл out.ppm
Файл out.ogv