It can be seen here that writing efficient code in a general-purpose language quickly becomes cumbersome, and ends up having code that is specific to the system.
patrickbot
It looks like the halide compiler needs to know the specs for the system and hardcodes things based on that (e.g. the block-major iteration).
Why can't a non-DSL compiler make some of these optimizations? (reducing cache misses, partitioning the set). Perhaps a better question is are there applications besides image processing that Halide and its compiler might be useful for? (It looks like independence is the only thing that is assumed...)
It can be seen here that writing efficient code in a general-purpose language quickly becomes cumbersome, and ends up having code that is specific to the system.
It looks like the halide compiler needs to know the specs for the system and hardcodes things based on that (e.g. the block-major iteration).
Why can't a non-DSL compiler make some of these optimizations? (reducing cache misses, partitioning the set). Perhaps a better question is are there applications besides image processing that Halide and its compiler might be useful for? (It looks like independence is the only thing that is assumed...)