toyBrot

Jehferson Mello

Jehferson Mello

Wellington, Wellington

1 0
  • 0 Collaborators

toyBrot is a raymarching fractal generator that is used both as a simple benchmarking tool and a study tool for parallelisation. The code is is implemented with over 10 different technologies, including Intel TBB, ISPC and SYCL (with support for oneAPI) ...learn more

Project status: Under Development

oneAPI

Intel Technologies
oneAPI, DPC++, Other

Code Samples [1]Links [1]

Overview / Usage

toyBrot is mainly a study tool, though it can also be used as a benchmark.

The same code base is implemented with different technologies with the goal of comparing not only performance but ease of coding, setup and learning.

On the works is support for automated benchmarking and reporting of results for different implementations

Methodology / Approach

The core of the program is a simple raymarching algorithm. The gist of the program is written in C++ but the "operational bits" then get rewritten using these different technologies. I make sure to follow best practices for each of these as best I can but refrain from going down specific optimisation rabbit holes. The goal is for the code to be simple and clear, in order to provide a good overview of the basics involved in the technology in question, but still a fair assessment of its perfomance for any given hardware

Technologies Used

Common bits of the application are written in C++. As optional dependencies, the software may be built with SDL, for graphical display and libPNG in order to export the generated image ( very useful for verification that data hasn't been corrupted )

At time of writing, current implementations include:
C++ std::threads
C++ std::launch
OpenMP
Intel TBB
Intel ISPC
nVidia CUDA (with support for both NVCC and CLANG as the compiler)
AMD HIP
OpenCL
SYCL (with support for oneAPI and hipSYCL)
Vulkan
OpenGL (using both compute and fragment shaders)
And implementations using C++ and OpenGL that export to Web Assembly though Emscripten

Repository

https://gitlab.com/VileLasagna/toyBrot

Comments (0)