我有一个F#项目,它使用MathNet.Numerics进行线性代数例程。
我已将以下代码放在F#模块中:
module LinearAlgebra
open MathNet.Numerics
open MathNet.Numerics.LinearAlgebra.Double
open MathNet.Numerics.LinearAlgebra.Generic
Control.LinearAlgebraProvider <- new Algorithms.LinearAlgebra.Mkl.MklLinearAlgebraProvider()
但是,无论是启用还是注释掉这行代码,我所看到的矩阵乘法的时间都保持不变。
我安装了Mkl提供程序NuGet包,如下所述: http://christoph.ruegg.name/blog/mathnet-numerics-with-native-linear-algebra.html
并确保将这两个dll复制到bin目录: libiomp5md.dll MathNet.Numerics.MKL.dll
关于如何检测本机提供程序是否实际被使用的任何想法?
答案 0 :(得分:2)
docs比上述博客文章更新一些,但似乎所有必需的步骤都已完成。
您可以通过在执行线性代数代码之前检查Control.LinearAlgebraProvider
来验证本机提供程序是否已启用。在第3版中,在其上调用ToString
将提供一些其他信息,如平台和修订版。