【问题标题】:Why does MathNet.Numerics.Control.UseManaged require Cuda?为什么 MathNet.Numerics.Control.UseManaged 需要 Cuda?
【发布时间】:2016-02-08 00:43:17
【问题描述】:
我正在尝试测试一个 ASP API 控制器,该控制器反过来调用一个使用 MathNet.Numerics.LinearAlgebra 的 DLL。我先打电话
MathNet.Numerics.Control.UseManaged();
但是此调用失败并出现错误
抛出异常:'System.NotSupportedException' in
MathNet.Numerics.dll
附加信息:未找到 Cuda Native Provider。
当我明确告诉 MathNet 使用托管而非原生时,为什么需要 Cuda?
【问题讨论】:
标签:
math.net
mathnet-numerics
【解决方案1】:
它实际上并没有失败,异常是在内部处理的。你可以继续调试。
该异常实际上不是在UseManaged 调用中引发的,而是在Control 类的静态构造内部引发的,第一次访问它并初始化默认提供程序(包括探测是否有任何已知的本地提供者可用)。当然,使用托管提供程序时不需要 Cuda。
在启用“所有异常中断”进行调试时,这确实是一个小的可用性问题。我们可以通过一个小的重构来避免抛出异常。也许我们应该打开一个 GitHub 问题来跟踪这个?