Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Which dlls to redistribute together with a .NET app?

zer0nes
Beginner
404 Views

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?

Thanks.

0 Kudos
6 Replies
Noah_C_Intel
Employee
404 Views

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.

http://software.intel.com/en-us/articles/some-more-additional-tips-how-to-call-mkl-from-your-c-code

0 Kudos
zer0nes
Beginner
404 Views

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:

msvcrt.dll
KERNEL32.dll

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:

  • mkl_core.dll
  • mkl_blacs_*.dll

Is it the case that dumpbin doesn't work on SDL?

0 Kudos
Vladimir_Koldakov__I
New Contributor III
404 Views

Hi,

 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.

Regards,
 Vladimir

 

0 Kudos
SergeyKostrov
Valued Contributor II
404 Views
>>...How do I select the right DLLs to redistribute together with my C# program? 1. You could try to use MS Depends but unfortunately it wont display DLLs loaded at run-time using LoadLibrary or LoadLibraryEx Win32 API functions. 2. You could also start your application under VS Debugger then do some processing and close the application. After that take a look at the Output Window and find all loaded MKL DLLs.
0 Kudos
zer0nes
Beginner
404 Views

Thanks. Will try your suggestions.

0 Kudos
SergeyKostrov
Valued Contributor II
404 Views
>>>>...take a look at the Output Window and find all loaded MKL DLLs... >> >>Thanks. Will try your suggestions. In case of any problems please post the output from the Output Window for review.
0 Kudos
Reply