All Projects → StanfordAHA → Halide-to-Hardware

StanfordAHA / Halide-to-Hardware

Licence: other
No description, website, or topics provided.

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
LLVM
166 projects

Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines. The language is embedded in C++ with a functional language built on top to allow definition of variables based on x and y coordinates. Writing Halide is unique in that the output values are captured in the algorithm, while the execution speed is defined by a target-specific schedule. Halide currently targets a large number of machines including:

  • CPU architectures: X86, ARM, MIPS, Hexagon, PowerPC
  • Operating systems: Linux, Windows, Mac OS X, Android, iOS, Qualcomm QuRT
  • GPU Compute APIs: CUDA, OpenCL, OpenGL, OpenGL Compute Shaders, Apple Metal, Microsoft Direct X 12

This project extends the available targets to custom-hardware generation. The language that is used capture hardware intent is CoreIR. CoreIR's most basic features provide a way to create hardware modules (adders, multipliers, muxes) and connections (how to wire them together). Beyond this, there are analysis and transformation passes to modify the circuit.

For more detail about what Halide is, see http://halide-lang.org. To see some example code, look in the tutorials directory.

For more specific instructions on how to create CoreIR hardware targets, visit https://stanfordaha.github.io/CGRAFlowDoc/halide/intro.html

Build Status

Linux
linux build status
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].