Installation
Currently, Proteus is distributed using its git repo to build and install it. We recommend using the latest main branch version, which is well tested and robust while including the most recent features.
Proteus builds and installs two components: the Proteus LLVM plugin pass (ProteusPass) and the Proteus runtime library (libproteus). The user must integrate both of them in their application build system. We provide information on how to integrate Proteus with your application in the Integration section.
Building
The project uses cmake
for building and depends on an LLVM installation (CI
tests cover LLVM 17, 18 and AMD ROCm versions 5.7.1, 6.2.1). The top-level
CMakeLists.txt
has the following (binary) build options:
BUILD_SHARED
: builds Proteus as a shared library (default is static).ENABLE_TESTS
: builds Proteus tests.PROTEUS_ENABLE_HIP
: enables HIP support.PROTEUS_ENABLE_CUDA
: enable CUDA support.PROTEUS_ENABLE_DEBUG
: logs debugging information (for developers).PROTEUS_ENABLE_TIME_TRACING
: stores a time trace file in JSON format for Proteus operations using flame graphs.
Host, CUDA and HIP support
Proteus supports host JIT compilation in all cases.
On top of that, it supports either CUDA or HIP JIT compilation, setting
PROTEUS_ENABLE_CUDA
or PROTEUS_ENABLE_HIP
respectively.
A typical build process is:
git clone https://github.com/Olympus-HPC/proteus.git
cd proteus
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<install-path> <other options> ..
make -j install
Testing
It is advised to enable tests when deploying Proteus on a machine for the first time and run them:
cd build
make test
We are keen to help with bugs or any other issues in our repo's issues page!