Installation
Proteus is currently distributed through its Git repository, which you can use
to build and install the library.
We recommend using the latest main
branch, which is well-tested, stable, and
includes the most recent features.
Building Proteus installs two components:
- the Proteus LLVM plugin pass (ProteusPass
), and
- the Proteus runtime library (libproteus
).
The LLVM plugin pass is necessary only if you use the Code annotation
interface and requires compiling your application with Clang, besides linking with libproteus
.
If you the DSL or C++ frontend APIs then you only need to link your code with libproteus
.
Both must be integrated into your application’s build system.
See Integration section for more details on integrating with your build system.
Building
Proteus uses cmake
for building and requires an existing LLVM installation (CI
tests cover LLVM 18/19 with CUDA 12.2 and AMD ROCm versions 6.2.1, 6.3.1, 6.4.1).
The top-level CMakeLists.txt
defines the following build options:
BUILD_SHARED
: build Proteus as a shared library (default is static).ENABLE_TESTS
: build Proteus tests.PROTEUS_ENABLE_HIP
: enable HIP support.PROTEUS_ENABLE_CUDA
: enable CUDA support.PROTEUS_ENABLE_DEBUG
: enable debug logging (for developers).PROTEUS_ENABLE_TIME_TRACING
: generate a JSON time-trace file for Proteus operations (for flame graphs visualization).
Host, CUDA and HIP support
Proteus always supports host JIT compilation.
You can additionally enable CUDA or HIP JIT compilation by setting
PROTEUS_ENABLE_CUDA
or PROTEUS_ENABLE_HIP
respectively.
A typical build looks like this:
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
We recommend enabling tests when deploying Proteus on a new machine and running them once to verify the installation:
cd build
make test
If you encounter bugs or issues, please let us know via the Github issue tracker.