6

随着 .Net 4.0 和新的并行扩展的出现,我想知道 CLR 是否能够优化并将一些计算推送到 GPU?或者是否存在任何可以帮助完成任务的库?

我根本不是 GPU 编程专家,所以如果这是一个愚蠢的问题,请原谅我。也许 CLR 不支持与 GPU 指令集的接口?它们是不是太原始了,或者只是超出了范围?

提前致谢。

[编辑] 澄清一下:我知道 CUDA 和类似库,但我想知道是否有纯 .Net 解决方案,如果有,它可以在幕后为您工作,还是您需要进行显式编码?

4

4 回答 4

6

.NET 中没有集成与此相关的任何内容。

但我认为这就是您正在寻找的(可以在 .NET 中使用);):

http://research.microsoft.com/en-us/projects/Accelerator/

也仅供参考:http ://brahma.ananthonline.net/

于 2010-01-04T11:54:08.560 回答
2

CLR 仅针对 CPU(Microsoft 的 Research OS Helios的任务是通过异构执行在 CIL 级别支持 GPU)。

因此,目前唯一的选择是使用其中一个库:

微软研究加速器项目:

它通过高级数据并行库(项目现在在 v2.0 中)提供了简化的 GPU 编程。

这里有一篇好文章:http: //tomasp.net/articles/accelerator-intro.aspx

梵:

使用C# 3.0 的 LINQ 语法来指定数据的流式转换。

于 2010-01-04T12:14:38.437 回答
2

XNA 用于图形,但您可以渲染到屏幕外表面并使用顶点和像素着色器,因此您可以使用它来运行 GPU 代码来执行计算。不过这将是相当困难的,并且需要大量的低级数据打包和着色器代码的编写。

于 2010-01-04T12:42:33.227 回答
1

我不知道并行扩展库在 GPU 上做任何事情。

听说 MS 正在研究它,我不会感到惊讶,但我不相信 .NET 4.0 中有类似的东西。请注意,Parallel Extensions 仍然非常酷。

于 2010-01-04T11:32:25.357 回答