我有一个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中。
对于如何检测本地提供程序是否实际被使用,有什么想法吗?
发布于 2014-05-31 08:39:48
文档比上面提到的博客文章更新得多一些,但是看起来所有必需的步骤都已经完成了。
在执行线性代数代码之前,您可以通过检查Control.LinearAlgebraProvider来验证本机提供程序是否已启用。在v3中,调用ToString将提供一些附加信息,如平台和修订版。
https://stackoverflow.com/questions/23966353
复制相似问题