AnyDSL / runtime

AnyDSL Runtime Library

Home Page:https://anydsl.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnyDSL Runtime Library

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
    • CUDA: code emitted by cuda or nvvm
    • OpenCL: code emitted by opencl
    • HSA: code emitted by amdgpu

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.

About

AnyDSL Runtime Library

https://anydsl.github.io

License:GNU Lesser General Public License v3.0


Languages

Language:C++ 82.7%Language:CMake 14.1%Language:C 1.9%Language:Python 1.3%