質問は本当にそれをすべて言います。コードを c++ .dll に記述して、マネージ コードから呼び出す必要がないことを願っています。
4 に答える
簡単なグーグル検索で、これが Accelerator と呼ばれるものであることがわかりました。ここ にある Microsoft Research プロジェクトです。
GPUのコードは、シェーディング言語を使用してのみ記述できます。すべてのシェーディング言語は、それ自体が適切な言語(C ++、. NET言語などではありません)ですが、C++と非常によく似ています。
最も一般的なシェーディング言語は次のとおりです。
GPUで実行するコードをシェーディング言語で記述してから、動的にコンパイルしてGPUにダウンロードする必要があります。動的にコンパイルおよびダウンロードするために使用するコードは、通常、directX / OpenGLのものをサポートするコードです(私が知る限り、Java、.NET、およびC ++ APIがあります-ほとんどの人はC++を使用しますが、ほとんどのサンプルは次のようになります。 C ++で書かれています)。
C# でコーディングでき、静的または動的に CUDA C++ に変換されます。ほとんどの場合は問題なく機能しますが、ライブラリに直接変更を加えないと、より複雑な処理が困難になる場合があります。使ってから改善されたのかもしれません。また、いつか OpenCL がサポートされるという印象もありました。
1 つ確かなことは、2008 年 12 月の時点で、Nvidia と ATI は GPU 用のマネージド クラスを持っていませんでした。彼らがすぐにこれを計画しているかどうかはわかりません。