グリッドからより多くの処理能力を得ようとしています。
すべての CPU/コアを使用していますが、C# で GPU を利用することは可能ですか。
ライブラリを知っている人やサンプルコードを入手した人はいますか?
[この回答でさえかなり古くなるので、2017年10月を編集してください]
これらの回答のほとんどはかなり古いので、各プロジェクトがどこにあると思うかについての最新の要約を提供したいと思いました。
GPU.Net(TidePowerd)-私はこれを6か月ほど前に試しましたが、少し手間がかかりましたが、動作しました。コンパイル時にC#カーネルコードをcudaに変換します。残念ながら、彼らのWebサイトはダウンしており、GitHubは数年間更新されていません。これは、プロジェクトが停止していることを示している可能性があります。
Cudafy-オープンソースで非常に使いやすい。実行時にC#カーネルコードをcudaに変換します(シリアル化およびキャッシュ機能付き)。CPU上で同じカーネルコードを簡単に実行できます(主にデバッグ用)。複数のGPUをサポートします。ここで他のものより多くの例が利用可能です。他の回答で参照されている定型コードは最小限であり、私の場合、少なくともコードがどのように機能するかを理解するのに役立ちました。ただし、Cuda/Nvidiaのみ。残念ながら、彼らは2、3年もソリューションを更新しなかったようです(2015年の最新のコミット-cuda 7.0のサポート)。
ハイブリダイゼーション装置。C#をCUDAにコンパイルする商用ソリューション。VisualStudioマーケットプレイスの無料コミュニティエディションとgithubのサンプルを提供します。
コンシューマーGPU用の無料のコミュニティエディションを備えたAleaGPU商用ソリューション。詳細については、ダニエルのコメントを参照してください。
Brahma -OpenCLを介してLINQ式を実行します(AMDもサポートします)。ドキュメント/例はあまりありません。2011年の最終更新。
C$ -最後の開発は10年以上前でした...
Microsoft Accelerator-同様に、もはや積極的に開発されているようには見えません。
他のいくつか(C ++ AMP、OpenTK --dead / Cloo)-これらの多くは単なるバインディングです-つまり、C#からGPUを呼び出すことができますが、カーネルコード(実際にGPUで実行されるコード)はで記述する必要がありますCまたはOpenCL。つまり、別の言語を使用(および学習)する必要があります。
私が言ったように、私は他のすべてよりもCudafyをお勧めします-それがOpenCLとCudaで実行できれば、それは完璧でしょう。
2013年9月の編集 Cudafyでは、CUDAとOpenCLの両方をコンパイルできるようになったため、すべてのGPUで同じC#コードを実行します。私はまだOpenCLコンパイルをテストしていませんが、これは素晴らしいように聞こえます。
Microsoft Research Acceleratorは .NET GP GPU ライブラリでした。
ブラフマーを見つけました...GPUでメソッドを実行できるGPGPUプロバイダーもあります...質問をありがとう...今日何か新しいことを学びました。:)
XNA Game Studio を調査の手段としてお勧めできますか? これは明らかにゲームの作成に適していますが、グラフィックス カードへの管理されたアクセスを提供し、機能の列挙関数やシェーダー開発へのアクセスが、たとえば管理された DirectX で以前に提供されていたものよりもはるかに優れています。WinForms と XNA を組み合わせてハイブリッド アプリケーションにする方法もあります。
http://www.ziggyware.com/news.php?readmore=866
シェーダー プログラミング (XNA は HLSL をサポートしています) の学習にある程度の労力を費やす必要がありますが、これは、nVidia の CUDA などのベンダー固有のソリューションを学習するよりも簡単な方法かもしれません。利点は、100% 管理された環境でプログラミングできることです。HLSL のリンクを次に示します。
http://www.ziggyware.com/weblinks.php?cat_id=9
GPGPU サイトも、汎用の GPU プログラミングに推奨される場所です。
頑張ってください!
http://www.tidepowerd.com/ GPU.NETはどうですか?
町には新しい Microsoft ソリューションがあります - C++ AMP (イントロはこちら)。
C# からの使用は、P/Invoke を介して行われます。これは、デスクトップ アプリについてはここでデモされ、(呼び出し禁止) Metro アプリについてはここでデモされます。
編集: C++ AMP にはオープンな仕様があることに注意してください。これは、必ずしも MS コンパイラーまたは Windows 用であるとは限らないことを意味します。
編集:どうやら、技術は現在「メンテナンスモード」にあり、バグを修正していることを意味しますが、積極的に開発していません.
管理された DirectX が何らかの形で動作する可能性があります
CenterSpace Software のNMathライブラリには、C# プロジェクトに追加できる GPU を利用した計算があります。業務用商品です。