Code Monkey home page Code Monkey logo

vc-intrinsics's Introduction

VC Intrinsics

Introduction

VC Intrinsics project contains a set of new intrinsics on top of core LLVM IR instructions that represent SIMD semantics of a program targeting GPU. This set is now used by

frontend compilers and

License

VC Intrinsics are distributed under the MIT license.

You may obtain a copy of the License at:

https://opensource.org/licenses/MIT

Dependencies

Source code

Tools

To build libraries:

To build documentation:

Building

VC Intrinsics can be built in two major modes: in-tree and external. All major LLVM versions starting from LLVM 8 are supported.

LLVM ToT can be used too, but there is no guarantee that it will always work (because of sudden breaking changes in LLVM C++ API). However, maintainers are trying to fix such issues as fast as possible.

In-tree build

For in-tree build VC Intrinsics can be considered as an external LLVM project. Put VC Intrinsics source directory inside llvm/projects directory or add -DLLVM_EXTERNAL_PROJECTS="vc-intrinsics" -DLLVM_EXTERNAL_VC_INTRINSICS_SOURCE_DIR=<vc-intrinsics> to cmake command arguments when configuring LLVM.

External build

To configure VC Intrinsics with prebuilt LLVM run cmake as follows:

$ cmake -DLLVM_DIR=<llvm install>/lib/cmake/llvm <vc-intrinsics>

Documentation

VC Intrinsics documentation is inside docs subdirectory and can be built using Sphinx. To build html version do the following:

$ cd docs
$ make -f Makefile.sphinx html

This will extract comments from main intrinsics description and generate readable html output in _build/html subdirectory.

Testing

VC Intrinsics repository contains lit tests that are enabled when -DVC_INTR_ENABLE_LIT_TESTS=ON is passed to cmake command. Lit tests use LLVM plugins and currently are supported only with dynamic LLVM (when LLVM is configured with -DLLVM_LINK_LLVM_DYLIB=ON). In external build path to lit utility should be specified as follows: -DLLVM_EXTERNAL_LIT=<lit>. Full example with external build:

$ cmake -DLLVM_DIR=<llvm install>/lib/cmake/llvm -DVC_INTR_ENABLE_LIT_TESTS=ON -DLLVM_EXTERNAL_LIT=<lit> <vc-intrinsics>

Target check-vc-intrinsics will run lit tests.

How to provide feedback

Please submit an issue using native github.com interface: https://github.com/intel/vc-intrinsics/issues.

How to contribute

Create a pull request on github.com with your patch. A maintainer will contact you if there are questions or concerns.

vc-intrinsics's People

Contributors

aus-intel avatar nikitarudenkointel avatar aparshin-intel avatar dmitrybushev avatar zuban32 avatar azabazno avatar vchernon-intel avatar idmitryy avatar kyansito avatar lukaszgotszaldintel avatar zahiraam avatar dmitryryintel avatar denisbakhvalov avatar bargatin-intel avatar itetyush-intel avatar intel-kzhavoro avatar zhaomaosu avatar saininav avatar skachkov-intel avatar sergey-semenov avatar ssidelni avatar ytarasov-intel avatar amulikhointel avatar gvsharap avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.