A minimal POC for 2D LBM (Lattice Boltzmann Method) simulation parallelized using the cross-architecture Programming Model DPC++ (by Intel) following the SYCL 2020 Khronos Standard.
Check/install first prerequisites and build DPC++ Toolchain following the official documentation guide.
Prepare build configuration ENV variables to use DPCPP clang compiler :
export PATH=$DPCPP_HOME/llvm/build/bin:$PATH
export LD_LIBRARY_PATH=$DPCPP_HOME/llvm/build/lib:$LD_LIBRARY_PATH
export CXX=clang++
export CC=clang
Build project for GPU or CPU :
mkdir build
cd build
cmake [-DUSE_GPU= OFF | ON] [-DENABLE_PROFILING = OFF | ON] [-DUSE_DOUBLE = OFF | ON]..
make
Run the simulation (optionally pass .ini parameters meta data file)
./src/runLBMSimulation [Path/to/parameters/file.ini]