Previous | Next --- Slide 38 of 63
Back to Lecture Thumbnails
xiyan

How does the Halide compiler work? Does it compile it C++ code running different mechanisms (pthreads/AVX) based on machines?

csmith23

It seems like Halide mostly just converts the supplied scheduling into code for the target machine, which seems like it'd be useful in cases beyond image processing. Is Halide ever used for other domains?

juliob

Piggying off of Xiyan's question - how exactly does the compiler make the best decisions given the target machine? How does it know which version of the vector intrinsics to use - and how does it compile to the target in the most efficient way possible (or are tools like Halide just slow to compile given all these requirements?)

laimagineCS149

Can the programmer mix Halide code with other programming languages (e.g. C code) in cases where there's some business logic (use C), a computation-intensive section (use Halide), and finally some other business logic (use C)? Or does the programmer have to access what Halide outputs via files on disks?

hamood

This slide gives a lot of clarity to the overall presentation. It makes a lot of sense for Halide to limit itself to just providing a simpler, higher level abstraction for programmers to make their own parallelism decisions rather than trying to make decisions for the programmer. Given this, I imagine that expanding Halide to other languages must be in the future plans because every language could benefit from having this higher level abstraction and mechanisms of the target machines don't really change.

potato

In this, the programmer both needs to know the abstraction and the high-level scheduling implementation, but Halide takes care of the low-level, actual scheduling

sidhikab

Halide multithreading, or Halide's parallelization across cores, uses dynamic assignment. Iterations of the loop are thrown into a thread pool and cores take them as they finish.

joshcho

What are some older examples of something like Halide? Perhaps something really innovative, where a DSL really changed a field.

Please log in to leave a comment.