c# - 通过 C# 使用 GPU

标签 c# gpu gpgpu

<分区>

我正在尝试从我的网格中获取更多处理能力。

我正在使用所有 cpus/核心,是否可以将 GPU 与 C# 一起使用。

有人知道任何库或有任何示例代码吗?

最佳答案

[编辑 2017 年 10 月,因为即使这个答案已经很老了]

这些答案中的大多数都已经过时了,所以我想我应该对我认为每个项目的位置进行更新的总结:

  • GPU.Net (TidePowerd) - 我在大约 6 个月前尝试过这个,虽然需要一些工作,但确实让它起作用了。在编译时将 C# 内核代码转换为 cuda。不幸的是,他们的网站已经关闭并且他们的 github 已经几年没有更新了,这可能表明该项目已经死了......

  • Cudafy - 开源且非常易于使用。在运行时将 C# 内核代码转换为 cuda(具有序列化和缓存的能力)。可以轻松地在 CPU 上运行相同的内核代码(主要用于调试)。支持多个 GPU。这里提供的示例比其他示例更多。其他答案引用的样板代码很少,就我而言,至少有助于我理解代码的工作原理。仅 Cuda/Nvidia。不幸的是,他们似乎也有几年没有更新他们的解决方案(2015 年的最新提交——支持 cuda 7.0)。

  • Hybridizer .将 C# 编译为 CUDA 的商业解决方案。在 visual studio marketplace 上提供免费社区版和 sample github .

  • AleaGPU带有面向消费者 GPUS 的免费社区版的商业解决方案。有关详细信息,请参阅 Daniel 的评论。

  • Brahma - 通过 OpenCL 运行 LINQ 表达式(因此也支持 AMD)。没有太多文档/示例。最后一次更新是在 2011 年。

  • C$ - 上一次开发是在 10 多年前......

  • Microsoft Accelerator - 同样看起来它不再被积极开发。

  • 其他一些(C++ AMPOpenTK -- dead/Cloo)-其中许多只是绑定(bind)-即使您能够从 C# 调用 GPU,但您的内核代码(实际运行的代码GPU)需要用 C 或 OpenCL 编写,这意味着您必须使用(和学习)另一种语言。

正如我所说,我会推荐 Cudafy,而不是其他所有 - 如果它可以在 OpenCL 和 Cuda 上运行,那将是完美的。

编辑 2013 年 9 月 Cudafy 现在允许您针对 CUDA 和 OpenCL 进行编译,因此将在所有 GPU 上运行相同的 C# 代码。这听起来很棒,尽管我还没有测试 OpenCL 编译。

关于c# - 通过 C# 使用 GPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375011/

相关文章:

c# - 大型数据库表的数据完整性

tensorflow - 加载VGG16时资源耗尽的OOM

opengl - 在 OpenGL 中创建和寻址大型缓冲区(以 GB 为单位)

c# - 如何在 Windows 10 通用应用程序中使用 xsd.exe 生成的文件

c# - 如何使用 MVC 路由多语言 URL

c - CUDA 中流的非阻塞同步?

cuda - 使用 CUDA 进行行列式计算

cuda - 如何在 Thrust 中将 make_transform_iterator() 与counting_iterator<> 和execution_policy 一起使用?

ios - 从 Metal 内核写入 32 位浮点纹理?文档说是,运行时说不

c# - 在 Windows 8 中重用动画