【问题标题】:C#: Perform Operations on GPU, not CPU (Calculate Pi) [closed]C#:在 GPU 而不是 CPU 上执行操作(计算 Pi)[关闭]
【发布时间】:2010-11-18 00:07:37
【问题描述】:

我最近阅读了很多关于将部分计算转移到 GPU 上的软件(主要是科学/数学和加密相关),这会导致支持的操作速度提高 100-1000 (!) 倍。

是否有库、API 或其他方式通过 C# 在 GPU 上运行某些东西?我正在考虑简单的 Pi 计算。如果有必要的话,我有一个 GeForce 8800 GTX(虽然我更喜欢卡独立的解决方案)。

【问题讨论】:

  • 我认为你不需要 GPU 来进行“简单的 Pi 计算”,除非你每秒执行数千次......
  • 这不是“需要”它。我只是建议将其作为概念证明示例。
  • 啊,我明白了。我的错。然后+1。
  • 我真的很喜欢多个答案,包括 CUDA、CUDA.NET、Accelerator、Brahma 和 OpenCL。因此,仅供以后查看此问题的每个人参考-查看所有答案。
  • @Alex 据我所知,你不能在 c# 中做到这一点,你需要知道 7/10 c++,所有库(cudafy,aleagpu,...)只是 c++ 代码的调用程序

标签: c# .net api gpu


【解决方案1】:

这是一项非常新的技术,但您可以调查一下CUDA。由于您的问题带有 C# 标记,因此这里是 .Net wrapper

另外,您的 8800 GTX 似乎支持 CUDA。

【讨论】:

  • 您的包装器链接已失效。
  • @Alizter - 谢谢。如果人们正在寻找它,我进行了搜索并插入了一个新 URL。
  • 使用来自 www.quantalea.com 的 Alea GPU。它是一个成熟的 .NET 到 CUDA 编译器,跨平台,为调试和分析提供非常好的开发人员支持。
【解决方案2】:

你可能想看看this question

您可能正在寻找Accelerator,但如果您对游戏开发感兴趣,我建议您看看XNA

【讨论】:

  • 我没听说过这个——有趣!我担心它仍然是一个研究项目。是否已准备好用于商业应用?
  • 老实说我没有尝试过,也不知道它有多稳定。我做了一些图形编程,并把它放在我的书签中以供将来参考,对于这个问题,它似乎比 CUDA 更容易处理。
  • 我有一张 ATI 卡,所以也许我可以试试 Accelerator。
【解决方案3】:

CUDA.NET 应该正是您要找的,而且它似乎支持您的特定显卡。

【讨论】:

  • 你的 CUDA.net 链接也失效了。
【解决方案4】:

您可以使用Windows API Code Pack 从 .NET 访问最新的 Direct3D API。 Direct3D 11 带有计算着色器。这些与 CUDA 大致相当,但也适用于非 NVIDIA GPU。

请注意,托管 DirectX 和 XNA 仅限于 Direct3D 9 功能集,这对于 GPGPU 使用有些困难。

【讨论】:

    【解决方案5】:

    Nvidia 的 CUDA api 有一组 .Net 绑定,称为CUDA.net。您可以参考reference guide 查看一些示例 C# 代码。

    访问您的协处理器 (GPU) 的首选方式是使用 OpenCL,以便您的代码可以与 ATI 卡一起使用,但我相信可能需要额外的编码,我不确定有多少支持OpenCL 已用于 .Net 平台。

    如果你想使用 C++,here's a quick overview 了解如何获取一些使用 Visual Studio 编译的示例代码。

    【讨论】:

    • CUDA.net 链接已失效
    【解决方案6】:

    另一个尚未提及的用于 C# 的 GPU 计算的选项是 Brahma

    Brahma 为 GPU 计算提供基于 LINQ 的抽象 - 它基本上是 LINQ to GPU。它可以在 OpenGL 和 DirectX 上运行,无需额外的库(但需要 SM3)。有些样本相当惊人。

    【讨论】:

      【解决方案7】:

      仅供参考:加速器 (http://research.microsoft.com/en-us/projects/Accelerator/) 在几次测试中都表现出色。

      【讨论】:

        猜你喜欢
        • 2020-06-06
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 2016-01-06
        • 2020-12-03
        • 2012-11-21
        • 2010-09-06
        • 2020-07-26
        相关资源
        最近更新 更多