Skip to content

asokone/dwarf_bench

 
 

Repository files navigation

dwarf_bench

“Dwarf bench” is a collection of patterns that attempt to capture performance characteristics of analytical queries. The idea is to extend the taxonomy of computational patterns defined in the article “The Landscape of Parallel Computing Research” published in 2006 to data analytics in heterogeneous environments. Implementing basic structures and algorithms once for multiple devices strives to find a balance between performance and specific capabilities usage, and implementation effort. We chose platform-agnostic tools to express our language of patterns (OpenCL, SYCL).

Build

  1. Requirements (see below): boost1.61, oclhelpers, opencl 1.2 (tested with nvidia 11.3, intel gfx & intel opencl cpu runtimes)
  2. Get latest release of opencl helpers from https://github.com/kurapov-peter/oclhelpers/releases
  3. Put the lib into your CMAKE_PREFIX_PATH or set oclhelpers_DIR env var
  4. Install CUDA
  5. Install CPU runtime (You'll only need the runtime: sudo apt install intel-oneapi-runtime-opencl)
  6. Install Intel gfx drivers
  7. In order to run dpcpp tests with cpu, gpu and cuda follow these steps:
  8. mkdir build && cd build && CXX=clang++ oclhelpers_DIR=/path/to/helpers cmake -DENABLE_DPCPP=ON .. && make -jnproc

Docker

  • docker build . --network host -t dwarfs-dev
  • docker run --network host --privileged -it --name spicy -v /path/to/dwarf_bench:/dwarf_bench dwarfs-dev:latest bash
  • mkdir build && cd build
  • CXX=dpcpp cmake /dwarf_bench/ -DENABLE_DPCPP=on -DENABLE_TESTS=on
  • cmake --build . --parallel 4
  • cd tests && ctest

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 78.7%
  • Jupyter Notebook 13.3%
  • CMake 5.0%
  • Shell 1.4%
  • Other 1.6%