dace
dace copied to clipboard
Check for applicability of a LibNode expansion
It would be nice if, while expanding, we can check that the chosen expansion is applicable and if not, default to something else.
In this sense, there should exist also some priority scheme on expansions.
I like this issue, a few things to consider:
- the libnode itself should give a priority, i.e. for gemm, use 1) MKL, 2) OpenBlas, 3) Pure
- the user should be able to override per globally, per library, per expansion
- the environments should have tests if they work, then we don't expand if the environment does not work, i.e., don't expand to cuda if we know we cannot execute cuda, but instead take the next possible option. This is tricky, i.e., how could we do this on FPGA?