2 ms·
Obligatory link to Halide, a language that is all about making hand-written scheduling easier: http://halide-lang.org/ http://halide-lang.org/
by vanderZwan 8y ago
Obligatory link to Halide, a language that is all about making hand-written scheduling easier:
http://halide-lang.org/ http://halide-lang.org/
- 0xfaded 8y agoHalide is cool, but from when I last looked at it its best at optimizing for cache usage. For my example, there would have still been two round trips, but to L1 instead of something farther. I've compared using GCC intrinsics vs what I would have wanted. It doesn't really get instruction scheduling right. Things like efficiently using pipelines by grouping, say, multiplication instructions and not stalling by ensuring the right number of cycles between them. I have some specialised block matrix multiplication which basically never stall the processor. We're talking 10x speedups over optimized but general c++ code.