次の問題があります。Cuda DLL (たとえば非常に単純なもの) を Visual C++ でコンパイルし、それを Vb.NET プログラムにインポートしました。
エクスポート:
extern "C" int __declspec(dllexport) __stdcall MySum(int a, int b) {...}
次の方法で VB.NET にインポートします。
<DllImport("MyDllName.dll")> Public Shared Function MySum(ByVal a as integer, ByVal b as integer ) As Integer
End Function
私の PC ではすべて正常に動作します。ソフトウェアは実行され、Cuda 関数の結果は正しいです。別の Nvidia ボードを搭載した別の PC にソフトウェアをインストールすると、引き続き動作しますが、Cuda 関数は間違った結果を返します。(たとえば、2 つの数値の合計を計算しようとすると、結果は常に同じになります。)
Nvidia ドライバーで動作する Cuda DLL をエクスポートするために、Visual C++ で行うべきいくつかの構成はありますか? この問題を解決するにはどうすればよいですか?