archives

Halide: a language for image processing and computational photography

Apparently this has not come up.

Halide (principle: Jonathan Ragan-Kelley). http://halide-lang.org/:

Halide is a programming language designed to make it easier to write high-performance image processing code on modern machines.

The core concept is apparently to split programs into two parts. One part of the program specifies the algorithm, which relates inputs to outputs. The other part of the program specifies the schedule, specifying which parts of the output should be computed when and where.

In lieu of a distinct surface syntax, Halide programs are apparently built by programmatically assembling ASTs:

Its front end is embedded in C++. Compiler targets include x86/SSE, ARM v7/NEON, CUDA, Native Client, and OpenCL.

You build a Halide program by writing C++ code using objects of type Halide::Var, Halide::Expr, and Halide::Func, and then calling Halide::Func::compile_to_file to generate an object file and header (good for deploying large routines), or calling Halide::Func::realize to JIT-compile and run the pipeline immediately (good for testing small routines).

Additionally, Dan Tull has a demo of "Live Coding Halide" for which there is a video here:

https://youtu.be/...