如何在.Net中将GPU用作第二个处理器?

7
问题已经说明了一切。我希望不必在c++ .dll中编写代码,然后从托管代码中调用它。

请查看此链接。从Linux支持的角度来看,这听起来很有前途。http://boinc.berkeley.edu/wiki/GPU_computing - Mahesh
4个回答

3

通过快速的谷歌搜索,我找到了这个名为Accelerator的东西。它是一个由微软研究院开发的项目,在这里可以找到相关信息。


2
您可以使用着色语言编写 GPU 代码。所有的着色语言都是独立的正确语言(不是 C++、.NET 语言或其他任何语言),但它们非常类似于 C++。
最常见的着色语言有:
  • GLSL(用于 OpenGL)

  • Cg(nVidia 着色语言,兼容 directX 和 OpenGL)

  • HLSL(微软直接X着色语言)。

您需要使用着色语言编写要在 GPU 上运行的代码,然后动态编译并下载到 GPU。您用于动态编译和下载的代码通常是支持 directX/OpenGL 的任何代码(据我所知,有 Java、.NET 和 C++ API - 大多数人使用 C++,因此您找到的大部分示例都将以 C++ 编写)。

0
我可以肯定地告诉你一件事:截至2008年12月,Nvidia和ATI都没有为其GPU提供托管类。我不知道他们是否有计划近期推出此功能。

我认为他们担心托管代码没有意义。如果您正在使用GPU进行计算,显然您正在寻找非常快的代码。我认为编写API包装器可能是最好的选择。 - Godeke

0

CUDAfy

这个工具允许你使用C#编程,然后自动将代码转换成CUDA C++,支持静态或动态转换。它通常能够很好地工作,但是对于更复杂的事情,如果不直接修改库,可能会有一些困难。我使用它的时候可能已经有所改进了。我还听说OpenCL也会在某个时间点得到支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接