I have a few newbie questions about the best practices for using MKL in a managed environment.
- It's said that by default, MKL will try to pick the best number of threads. Does it mean that this is done everytime a BLAS function is invoked, because they are stateless?
- If not, could you please explaion what actually happened?
- If yes, can I request MKL to estimate the best number of threads once, and use that number for all subsequent function calls?
- Are there any tricks for minimizing the overhead of calling MKL from a managed environment?