Closed epsi1on closed 2 years ago
The input matrix and calling code is perfectly fine (though you might want to fiddle with the options).
I haven't updated my MKL libraries for a while, but Intel seems to have incremented the library version number (mkl_rt.1
to mkl_rt.2
), so you'll have to update the name in the NativeMethods.cs
files (or wait until I check-in the updated code - probably later today).
Code updated. If this fixes the problem for you, the issue can be closed.
The input matrix and calling code is perfectly fine (though you might want to fiddle with the options).
I haven't updated my MKL libraries for a while, but Intel seems to have incremented the library version number (
mkl_rt.1
tomkl_rt.2
), so you'll have to update the name in theNativeMethods.cs
files (or wait until I check-in the updated code - probably later today).
Thanks for reply.
I Already did update the "mkl_rt.1" to "mkl_rt.2". if i use mkl_rt.1
it give dll not found exception. But now the dll in found, i can also use successfully call the NativeMethods.mkl_get_version(ref MKLVersion version);
which return me the right version of MKL, but above error still exists.
I suspect MKL changed something in v2020, how can i debug that?
I downloaded mkl from here:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html?operatingsystem=window&distributions=webdownload&options=online
Intel combined all stuff into one package named "OneApi". If use online installer, one can only select mkl runtime to be installed.
How you think I can debug the code?
Thanks again
I checked MKL version 2022.0 from nuget and all tests pass. Also tested your matrix - no exception thrown.
What's the ErrorCode
/ HResult
of the SEHException
?
I took a look at your code. In MKL/NativeMethods.cs you have
const string MKL_DLL = @"C:\Program Files (x86)\Intel\oneAPI\mkl\2022.1.0\redist\intel64\mkl_rt.2.dll";
while in MKL/Pardiso/NativeMethods.cs you have
const string MKL_DLL = @"mkl_rt.2.dll";
You might want to test, if changing to an absolute path fixes the problem.
Hint: I put all the dynamic libraries (dlls) in a directory C:\shared\bin
, static libraries in C:\shared\lib
and include files/C headers in C:\shared\include
. Add those directories to the Windows PATH variable and you don't have to worry about absolute paths anymore.
I did check with the updated code (latest code at the moment)
still getting same exception.
this is C#'s integer hresult: -2147467259
which equals to 0X80004005
or 0X05400080
.
I think it is a setup issue. so will close it for now. will post workaround if any found.
Thanks
windows version: server 2019 hardware: Virtual Private Server (cloud vps) I suspect the virtualization be the reason.
hi I get exception while trying to use MKL:
there is no details for exception. this is the matrix, and can be solved with CSParse.NET cholesky without any exception. It sais the MKL libraries throws an exception, can you please give me some hint on how can get exception details? or what is the problem with matrix or code? I'm using MKL redistributables from oneAPI, this is file version:
Thanks in advance
using