我正在尝试在 Linux 中使用来自 mathdotnet 的 Mkl 本机提供程序和单声道。
我正在使用 monodevelop 并通过 NuGet 包管理器中的构建安装了 MathNet.Numerics 以及 MathNet.Numerics.MKL.Linux-x64 和 -x86 包。
当我尝试这段代码时,我得到 System.NotSupportedException: MKL Native Provider Not Found。
using System;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics;
namespace mdeveloptest
{
class MainClass
{
public static void Main (string[] args)
{
Control.UseNativeMKL ();
Matrix<double> a = DenseMatrix.OfArray(new double[,] { {1,2,3}, {4,5,6}, {7,8,9}});
Matrix<double> b = DenseMatrix.OfArray(new double[,] { {1,2,3}, {4,5,6}, {7,8,9}});
Console.WriteLine (a*b);
}
}
}
MKL 包提供 libiomp5.so 和 MathNet.Numerics.MKL.dll 文件。在 Windows 中,将这些文件复制到输出目录就足够了,但在 Linux 中似乎还不够。
我也不确定我是否需要 x64 或 x86 包,或者单声道是否可以自行选择正确的包。