I am using MKL for a C# program, via dllimport. I only use its BLAS functionality and want to minimize the number of dependent DLLs that come with BLAS.
How do I select the right DLLs to redistribute together with my C# program?
Hi, we have created a resource that should completely answer your question and possible follow-ups! Please let me know if anything is unclear from the following article.
I followed this article: http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program/, and also the article that you provided.
I'm using MKL 10.3, so according to the article, I should use DllImport("mkl_rt")
When I tried dumpbin /references mkl_rt.dll, this is what I get
dumpbin /DEPENDENTS mkl_rt.dll
Microsoft (R) COFF/PE Dumper Version 11.00.51106.1
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file mkl_rt.dll
File Type: DLL
Image has the following dependencies:
I don't know much about single dynamic library (which mkl_rt.dll is), but I think that in order to use MKL's BLAS, I need at least the following dlls:
Is it the case that dumpbin doesn't work on SDL?
Really, you can’t see MKL dependencies with dumpbin for mkl_rt.dll.
It has been developed to dynamically select the interface and threading layer for Intel MKL.
So different libraries could be linked depending on certain parameters setting – via environment macros or function calls.
I think you’d better build custom dll which includes only required stuff (see documentation and %MKL_ROOT%\mkl\tools\builder).
It allows to minimize the size of MKL redistributables.