2009-01-22 24 views
7

這個問題說明了一切。我希望我不必在C++ .dll中編寫代碼,然後從託管代碼中調用它。如何將GPU用作.Net中的第二個處理器?

+0

請查看。聽起來很有希望在Linux支持的角度來看。 http://boinc.berkeley.edu/wiki/GPU_computing – Mahesh 2013-09-11 18:05:29

回答

0

有件事我可以肯定地告訴你:截至2008年12月,Nvidia和ATI沒有爲他們的GPU提供託管類。我不知道他們是否有這個計劃。

+0

我不認爲這讓他們感到擔心託管代碼。如果您正在使用GPU進行計算,您顯然正在尋找非常快速的代碼。我認爲圍繞API編寫包裝可能是最好的希望。 – Godeke 2009-01-22 19:59:12

2

您只能使用着色語言編寫GPU的代碼。所有的着色語言都是合適的語言(不是C++,.NET語言或其他),但它們與C++非常相似。

最常見的着色語言是:

  • GLSL(支持OpenGL)

  • Cg(nVidia的陰影 語言既DirectX的 和OpenGL兼容)

  • HLSL(微軟爲directX着色 語言)。

你需要寫你想在你的着色語言,然後動態編譯並下載到GPU的GPU運行代碼。你用來動態編譯和下載的代碼通常是任何支持directX/OpenGL的代碼(據我所知,有Java,.NET和C++ API--大多數人使用C++,儘管如此,你會發現大多數示例都是用C++編寫)。

0

CUDAfy

允許您在C#代碼,並將其翻譯成CUDA C++你,靜態或動態。它大部分時間都運行良好,但如果不直接更改圖書館,更復雜的事情可能會變得很困難。自從我使用它之後,它可能會有所改進。我還有一個印象,就是OpenCL在某個時候會得到支持。

相關問題