Skip to content

BrandonSchmitt/TVL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Template Vector Library (TVL)

The Template Vector Library (TVL) offers hardware-oblivious SIMD programming. The Technische Universität Dresden originally developed the TVL using C++-templates and their work is still ongoing (see their GitHub repository).

As C++-templates hinder optimization at compile time, this TVL project tries to move from a template-driven design to a domain-specific language (DSL). It uses LLVM's subproject MLIR (Multi-Level Intermediate Representation) to build the compiler and reuse common compiler infrastructure.

TVL MLIR Operations

For the various operations TVL offers in MLIR have a look at the appropriate GitHub Wiki Page.

Building

This setup assumes that you have built LLVM and MLIR in $BUILD_DIR and installed them to $PREFIX (for further information see the MLIR Getting Started documentation).

Prepare the cmake enviroment

mkdir build && cd build
cmake -G Ninja .. -DMLIR_DIR=$PREFIX/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$BUILD_DIR/bin/llvm-lit

To build the compiler, run

cmake --build . --target tvlc

To build and launch the tests, run

cmake --build . --target check-tvl

To build the documentation from the TableGen description of the dialect operations, run

cmake --build . --target mlir-doc

Note: Make sure to pass -DLLVM_INSTALL_UTILS=ON when building LLVM with CMake in order to install FileCheck to the chosen installation prefix.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published