0

MathNet.Numerics.LinearAlgebra を使用する DLL を呼び出す ASP API コントローラーをテストしようとしています。私は最初に電話します

MathNet.Numerics.Control.UseManaged();

ただし、この呼び出しはエラーで失敗します

スローされた例外: MathNet.Numerics.dll の 'System.NotSupportedException'

追加情報: Cuda ネイティブ プロバイダーが見つかりません。

vsスクリーンショット

MathNet にネイティブではなくマネージドを使用するように明示的に指示しているのに、なぜ Cuda が必要になるのでしょうか?

4

1 に答える 1

1

実際には失敗しません。例外は内部で処理されます。デバッグを続行できます。

例外は呼び出し内で実際にスローされるのではなくUseManaged、クラスの静的構築時に内部的にスローされControl、最初にアクセスされて既定のプロバイダーが初期化されます (これには、既知のネイティブ プロバイダーのいずれかが使用可能かどうかの調査が含まれます)。もちろん、マネージド プロバイダーを使用する場合、Cuda は必要ありません。

これは、「すべての例外でブレーク」を有効にしてデバッグする場合の小さなユーザビリティの問題です。ちょっとしたリファクタリングで例外のスローを回避できるかもしれません。これを追跡するために GitHub の問題を開いた方がよいでしょうか?

于 2016-02-08T05:48:22.627 に答える