首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MathNet.Numerics未利用Mkl本机提供程序

MathNet.Numerics未利用Mkl本机提供程序
EN

Stack Overflow用户
提问于 2014-05-31 04:23:29
回答 1查看 1.3K关注 0票数 2

我有一个F#项目,它将MathNet.Numerics用于线性代数例程。

我在F#模块中放置了以下代码:

代码语言:javascript
复制
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中。

对于如何检测本地提供程序是否实际被使用,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-31 08:39:48

文档比上面提到的博客文章更新得多一些,但是看起来所有必需的步骤都已经完成了。

  • 你的矩阵有多大?
  • 所有涉及的矩阵都是稠密的吗?
  • 这个模块是你的线性代数代码所在的模块吗?如果没有,您是否确保在线性代数代码之前实际执行该模块?

在执行线性代数代码之前,您可以通过检查Control.LinearAlgebraProvider来验证本机提供程序是否已启用。在v3中,调用ToString将提供一些附加信息,如平台和修订版。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23966353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档