随着.Net 4.0和新的并行扩展,我想知道CLR是否能够优化并将一些计算推送到GPU?或者,是否存在可以帮助完成任务的任何库?
我根本不是GPU编程专家,如果这是一个愚蠢的问题,请原谅我。也许CLR不支持与GPU指令集的接口?它们是太原始,还是仅仅超出范围?
提前致谢。
[编辑]只是为了澄清:我了解CUDA和类似的库,但我想知道是否有一个纯粹的.Net解决方案,如果是的话,它可以在幕后工作,或者你需要做什么显式编码?
答案 0 :(得分:6)
.NET中没有任何与此相关的内容。
但我认为这是你正在寻找的(可以在.NET中使用);):
答案 1 :(得分:2)
CLR仅针对CPU(Microsoft的研究操作系统Helios的任务是通过异构执行支持CIL级别的GPU。)
所以现在唯一的选择是使用其中一个库:
它通过高级数据并行库提供GPU的简化编程(项目现在在v2.0中)。
这里有一篇好文章: http://tomasp.net/articles/accelerator-intro.aspx
Uses C#3.0的LINQ语法,用于指定数据的流式转换。
答案 2 :(得分:2)
XNA用于图形,但您可以渲染到屏幕外表面并使用顶点和像素着色器,这样就可以使用它来运行GPU代码来执行计算。但这将是相当困难的,并且需要大量低级数据打包和着色器代码的编写。
答案 3 :(得分:1)
我不知道Parallel Extensions库在GPU上做任何事情。
听到MS正在研究它,我不会感到惊讶,但我不认为这是.NET 4.0的一部分。注意,Parallel Extensions仍然非常酷。