Skip to content

Runtime Configuration

Proteus exposes a number of possible runtime configuration options, accessible through environment variables.

Environment Variable Possible Values Description
PROTEUS_USE_STORED_CACHE 0 or 1 (default: 1) Enable the persistent storage cache
PROTEUS_SPECIALIZE_LAUNCH_BOUNDS 0 or 1 (default: 1) Set or not launch bouds on JIT kernels
PROTEUS_SPECIALIZE_ARGS 0 or 1 (default: 1) Specialize JIT functions for input arguments
PROTEUS_SPECIALIZE_DIMS 0 or 1 (default: 1) Specialize JIT kernels for launch dimensions
PROTEUS_CODEGEN "rtc", "serial", "parallel", "thinlto" (default: "rtc") Use HIP RTC, serial, parallel, or thinlto code generation
PROTEUS_DISABLE 0 or 1 (default: 0) Disable Proteus (no JIT compilation)
PROTEUS_DUMP_LLVM_IR 0 or 1 (default: 0) Dump the LLVM IR of JIT modules in the directory .proteus-dump
PROTEUS_RELINK_GLOBALS_BY_COPY 0 or 1 (default: 0) Relink device global variables at kernel launch (instead of ELF patching)
PROTEUS_KERNEL_CLONE "link-clone-prune", "link-clone-light", "cross-clone" (default: "link-clone-light") Cloning method for JIT module creation, default is generally the fastest
PROTEUS_ASYNC_COMPILATION 0 or 1 (default: 0) Enable asynchronous compilation
PROTEUS_ASYNC_COMPILATION 0 or 1 (default: 0) Enable asynchronous compilation
PROTEUS_ASYNC_THREADS >=1 (default: 1) Set number of threads for asynchronous compilation
PROTEUS_ASYNC_TEST_BLOCKING 0 or 1 (default: 0) Make asynchronous compilation blocking for testing