<分区>
我正在尝试从我的网格中获取更多处理能力。
我正在使用所有 cpus/核心,是否可以将 GPU 与 C# 一起使用。
有人知道任何库或有任何示例代码吗?
<分区>
我正在尝试从我的网格中获取更多处理能力。
我正在使用所有 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++ AMP、OpenTK -- 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/