2009-08-08 393 views
48

我最近讀了很多關於軟件(主要是科學/數學和加密相關的),他們將部分計算移動到GPU上導致100-1000 !)倍速增加支持的操作。C#:在GPU上執行操作,而不是CPU(計算Pi)

是否有庫,API或其他方式通過C#在GPU上運行某些內容?我正在考慮簡單的Pi計算。我有一個GeForce 8800 GTX,如果這是相關的(不喜歡卡獨立解決方案)。

+1

我不認爲你需要一個「簡單的Pi計算」的GPU,除非你每秒做數千次...... – 2009-08-08 21:05:15

+18

這不是關於'需要'它。我只是建議它作爲概念範例的證明。 – Alex 2009-08-08 21:06:02

+0

啊,我明白了。我的錯。然後+1。 – 2009-08-08 21:06:40

回答

19

這是一項非常新的技術,但您可能會調查CUDA。由於你的問題是用C#標記的,因此這裏是一個.Net wrapper

作爲獎勵,看起來您的8800 GTX支持CUDA。

+1

你的包裝的鏈接已經死了。 – 2015-02-25 23:46:14

+0

@Alizter - 謝謝。我做了搜索並插入了一個新的URL,如果人們正在尋找它。 – 2015-02-27 20:41:41

+0

使用www.quantalea.com提供的Alea GPU。它是CUDA編譯器的完整.NET,跨平臺,具有非常好的調試和分析開發支持。 – Daniel 2015-06-03 05:42:04

8

你可能想看看this question

你可能尋找Accelerator,但如果你是一般的興趣在遊戲開發中,我會建議你看一看新華社

+0

我沒有聽說過這個 - 有趣!我擔心它仍然是一個研究項目。它是否準備好用於商業應用? – 2009-08-08 21:33:28

+0

說實話,我還沒有嘗試過,我不知道它有多穩定。我做了一些圖形編程,並將它放在我的書籤中供將來參考,並且這個問題似乎比CUDA更容易處理。 – Tchami 2009-08-08 21:47:41

+0

我有一個ATI卡,所以也許我會給加速器一個嘗試。 – 2009-08-09 03:24:56

4

CUDA.NET應你正在尋找什麼,它似乎支持你的特定圖形卡。

3

您可以使用Windows API Code Pack從.NET訪問最新的Direct3D API。 Direct3D 11帶有計算着色器。這些與CUDA大致相當,但也適用於非NVIDIA GPU。

請注意,Managed DirectX和XNA僅限於Direct3D 9功能集,這對於GPGPU而言有點難以使用。

2

Nvidia的CUDA API有一組.Net綁定,它被稱爲CUDA.net。您可以參考reference guide查看一些示例C#代碼。

訪問您的協處理器(GPU)的首選方法是使用OpenCL,這樣您的代碼就可以與ATI卡一起使用,但我相信可能需要額外的編碼,我不確定OpenCL有多少支持已經爲.Net平臺。

如果您想使用C++,here's a quick overview瞭解如何使用Visual Studio編譯示例代碼。

15

從C#GPU計算中未提及的另一種選擇是Brahma

Brahma爲GPU計算提供了基於LINQ的抽象 - 它基本上是LINQ到GPU。它可以在沒有額外庫的情況下使用OpenGL和DirectX(但需要SM3)。一些樣本相當驚人。

相關問題