You are viewing the course site for a past offering of this course. The current offering may be found here.
Lecture 24: High Performance Image Processing & Halide (30)
rutajoshi

Here's a link to Prof JRK's paper on halide, which is an interesting read if you'd like a much deeper dive into how the language works:

https://people.csail.mit.edu/jrk/halide-pldi13.pdf

julialuo

From this definition of Turing-completeness: https://en.wikipedia.org/wiki/Turing_completeness, why isn't Halide Turing-complete? The two conditions stated are that the language should have conditional branching (e.g. "if" and "goto") and that it should be able to change an arbitrary amount of memory (ignoring machine limitations). Yes it seems like Halide is a more limited language than other languages, but which condition specifically does it not satisfy?

jackcsullivan

Also what is an example of a recursive algorithm that does not have a bounded depth in the image grid setting?

tigreezy

Why is the domain scope of Halide constrained to 4D grids? Doesn't this really limit the use of the language or is it possible to make the language more versatile? I can see how it is useful for high performance image processing, but are there other applications?

Staffrishiu

In terms of the turing completeness question, I think one way to think of it is that if a language can implement every single program from a Turing complete language, then it is Turing complete. With that in mind, I think the fact that Halide only supports feed-foward pipelines and bounded depth recursion could mean that some things can't be implemented in Halide, making it not Turing complete.

RichardChen9

Apparently powerpoint is turing complete.

afang-story

@tigreezy Halide can do more than 4D grids now

You must be enrolled in the course to comment