Good morning, all.
I am writing an application with MKL that, upon launching, requires mkl_core.dll and mkl_intel_thread.dll. As my MKL redist directory is not in %PATH%, I copied these to the application place. Then it asks for libiomp5md.dll, which comes in the redistribution packages here: https://software.intel.com/en-us/articles/redistributable-libraries-for-intel-c-and-fortran-2018-compilers-for-windows. When running, say, a FFT method, it asks for mkl_avx2.dll or mkl_def.dll. I also have to copy one of these from the MKL redist directory to the app directory. So my questions are:
- One of the dependencies, libiomp5md.dll, can be obtained from the above download page, no need to ship it with the program. The other MKL dlls are in a development package. Is there any download for such redistributable files so I can keep my shipping package small and prevent the end user to download MKL dev stuff? Or it is just how it is, ship these dlls and end of story?
- The console error I get when calling a FFT command says that either mkl_avx2.dll or mkl_def.dll is missing. Copying the first to the app place solves, but will mkl_def.dll be needed at some point? Should I ship just one or both?
Any input will be appreciated. Please let me know if something is not clear so I can explain further.
Thanks a lot.
Thanks for your questions.
1. You can download it from MKL library. it is free license. and ship your app with .dll files. Here is the link for your refer on MKL redistruibution Q&A. https://software.intel.com/en-us/mkl/license-faq
Here is the link on how to get MKL lib. https://software.intel.com/en-us/articles/how-to-get-intel-mklippdaal
2. mkl_def.dll is needed for default kernel for the Intel® 64 architecture. you can check this webpage for detail.