The runtime for the AnyDSL framework and its two frontends artic and impala.
The runtime provides the following components:
- CMake logic to build programs using artic or impala
- include files for basic runtime abstractions and math functions
- runtime library implementation to schedule and execute AnyDSL programs on different platforms
- Host (CPU): standard platform for code
- TBB / C++11 threads: code emitted by
parallel
- LLVM w/ RV support: code emitted by
vectorize
- TBB / C++11 threads: code emitted by
- CUDA: code emitted by
cuda
ornvvm
- OpenCL: code emitted by
opencl
- HSA: code emitted by
amdgpu
- Host (CPU): standard platform for code
CMake automatically search for available components on the current system.
To prevent CMake from building a particular runtime component, disable it using CMake's CMAKE_DISABLE_FIND_PACKAGE_<PackageName>
variable.
For example, pass -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=TRUE
to cmake to disable the OpenCL runtime component.
Although not required, feel free to specify Artic_DIR
or Impala_DIR
for your convenience to later automatically find the correct paths when building AnyDSL programs using the anydsl_runtime_wrap()
function.
To enable JIT support, please pass -DRUNTIME_JIT=ON
to cmake.
This will require atleast one of artic or impala as dependencies and thereby locate LLVM as well as thorin too.