Why can't Math.Net Numerics resolve creator?

210 views Asked by At

Math.Net Numerics returning

"Native Provider Probing failed to resolve creator" when trying to use MKL or OpenBLAS

I'm trying to enable acceleration using either MKL or OpenBLAS on a Windows machine.

I've added both Nuget packages, and it now seems to be finding the dlls.

However I get an error saying:

NotSupportedException: Native Provider Probing failed to resolve creator at MathNet.Numerics.Providers.ProviderProbe'1.Create() at MathNet.Numerics.Control.UseNativeOpenBLAS()

when calling:

MathNet.Numerics.Control.UseNativeOpenBLAS();

What am I doing wrong?

[EDIT 1]

using MathNet.Numerics.LinearAlgebra.Double; 
using MathNet.Numerics.LinearRegression; 
using MathNet.Numerics.Providers.OpenBLAS; 
using MathNet.Numerics.Providers.MKL;

Nuget packages:

MathNet.Numerics
MathNet.Numerics.MKL.Win-x64
MathNet.Numerics.Providers.OpenBLAS

[EDIT 2] If I change my code to this:

    const string OpenBlasTypeName = "MathNet.Numerics.Providers.OpenBLAS.LinearAlgebra.OpenBlasLinearAlgebraControl, MathNet.Numerics.Providers.OpenBLAS";
    var OpenBlasProbe = new ProviderProbe<ILinearAlgebraProvider>(OpenBlasTypeName, AppSwitches.DisableOpenBlasNativeProvider);
    var x1 = OpenBlasProbe.Create();

    MathNet.Numerics.Control.UseNativeOpenBLAS();

then it seems to get further, I don't know why. Now the error I get is:

NotSupportedException: OpenBLAS Native Provider not found. ---> DllNotFoundException: Unable to load DLL 'libMathNetNumericsOpenBLAS': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at query_capability in at MathNet.Numerics.Providers.OpenBLAS.SafeNativeMethods.query_capability(Int32 capability) at MathNet.Numerics.Providers.OpenBLAS.OpenBlasProvider.Load(String hintPath)

I can't find libMathNetNumericsOpenBLAS.dll anywhere - what do I do?

0

There are 0 answers