为什么MathNet.Numerics.Control.UseManaged需要Cuda?

时间:2016-02-08 00:43:18

标签: mathnet

我试图测试一个ASP API控制器,后者调用一个使用MathNet.Numerics.LinearAlgebra的DLL。我先打电话

MathNet.Numerics.Control.UseManaged();

但是此调用失败并显示错误

  

抛出异常:' System.NotSupportedException'在   MathNet.Numerics.dll

     

其他信息:未找到Cuda Native Provider。

vsscreenshot

当我明确告诉MathNet使用托管而非本机时,为什么需要Cuda?

1 个答案:

答案 0 :(得分:1)

它实际上没有失败,异常在内部处理。你可以继续调试。

实际上并没有在UseManaged调用内抛出异常,而是在Control类的静态构造内部,第一次访问它并初始化默认提供者(包括探测是否存在)已知的本地提供者可用)。当然,使用托管服务提供商时不需要Cuda。

使用"中断所有异常时,这确实是一个小的可用性问题"启用。我们可以通过一个小的重构来避免抛出异常。也许我们应该打开一个GitHub问题来跟踪它?