-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
Description
At the heart of many computer vision algorithms (subspace learning, deep learning, wavelets) is a dot product operation of an incoming image against a filter constructed offline. This idea is to introduce a suite of LLVM optimization passes that leverage the fact that the filter is known at compile time. Specifically:
- Completely unroll the dot product loop based on the known filter size.
- Substitute memory access instructions with the known constant values for the filter.
- Eliminate instructions where the filter value is 0 (or perhaps near-zero)
Together these passes convert the code between a generic dense dot product and a hard-coded sparse dot-product.
As a stretch goal:
- Other optimizations which become possible when the dot product can be approximated within a pre-specified margin of error.
This is a long-term research idea and a good paper alone. It is also an example of an interesting idea that becomes possible with a computer vision DSL.