Kernels for heterogeneous architectures written in Alpaka (An Abstraction Library for Parallel Kernel Acceleration) for SOFIE (System for Optimised Fast Inference code Emit).
This repository does not depend on SOFIE, but these kernels will eventually go into SOFIE.
Submission for CS-433: Machine Learning; hopefully, will not stay just as a random course project, but will become a part of the actual ML code written at CERN.
Alpaka(1.2.0): for heterogenous kernels; present as a git submodule inexternal/Boost(libboost-all-devon Debian): for Alpakacmakeandmake: for building and testing the project
Clone the repository with all the submodules (dependencies):
git clone https://github.com/Saransh-cpp/SOFIE-ALPAKA --recursive
To build all kernels and tests in bin/:
make all
To run all kernel tests (and build if not built before):
make test
To build all the kernels and tests in build/
cmake -S. -Bbuild
cmake --build build
where the following flags can be configured by the user:
CUDA_BASE(default: "/usr/local/cuda-13.1"): CUDA base pathTBB_BASE(default: "/usr"): TBB base pathALPAKA_BASE(default: "external/alpaka"): Alpaka base pathCUDA_ARCH(default: "sm_75"): CUDA architectureCMAKE_CUDA_COMPILER(default: "/usr/local/cuda-13.1/bin/nvcc"): Cuda compiler path
To run SOFIE integration tests:
cd tests/sofie_integration
cmake -S. -Bbuild
cmake --build build
with the same configurable flags listed in the section above.