Напишите программу, которая трассирует лучи на видеокарте.
Основной цикл программы (функция ray_tracing_gpu)
должен быть реализован на видеокарте с помощью
OpenCL. Для генерации псевдослучайных чисел можно использовать процессор.
Также должны быть соблюдены условия ниже.
Измерьте время работы кода на видеокарте и на процессоре и постройте таблицу
или график зависимости времени работы основного цикла от размера
изображения.
Условия
Картинка OpenCL похожа на картинку OpenMP.
Время работы OpenCL (колонка "OpenCL time") меньше по сравнению со временем работы на OpenMP (колонка "OpenMP time").
Исходный код написан на C/C++.
Код собирается с максимальной оптимизацией (флаги компилятора -O3 -march=native).
Исходный код
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 time160360520260342980360356434
... ... ...
586034458259603499106060354713
Total time: 21s
Movie time: 1s
./ray-tracing gpu
GPU version is not implemented!