首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net中的GPGPU编程-微软加速器VS OpenCL.net [VS其他]

.Net中的GPGPU编程-微软加速器VS OpenCL.net [VS其他]
EN

Stack Overflow用户
提问于 2011-09-13 21:49:26
回答 2查看 3.7K关注 0票数 4

我正在开发一个程序(用.Net),它有很多图像处理(比如2D卷积,...)我想用GPGPU (并行处理)来实现它们,所以,我有几个选择:微软加速器,OpenCL.Net,...哪一个对我更好?

一些对我来说很重要的事情:速度,兼容性(例如,如果GPU不支持,会发生什么?),易学,同时使用Nvidia和ATI,...

我听说我可以在OpenCL中创建自己的函数,并为许多数组单元运行它,但我不知道我是否可以在微软加速器中做到这一点,或者我必须使用它的函数……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-13 23:37:49

微软加速器和OpenCL同时支持中央处理器和图形处理器,并且独立于供应商(即在ATI卡和nVidia卡上运行)。

对于OpenCL,您必须将OpenCL单独安装到用户计算机(包含在nVidia (支持nvidia的gpus)和ATI (支持ati gpus和任何cpus)驱动程序中,可从英特尔(支持cpus)下载)。然而,你可以将AMD的OpenCL.dll与你的软件捆绑在一起,作为CPU- just使用。OpenCL更成熟(功能更多,错误更少):它出现得更早,是跨平台的,基于现有的技术(CUDA,Brook+)。OpenCL允许你很好地控制你实际做了什么,所以它更快,但有一点困难。

据我所知,微软加速器可以在任何支持DirectX的图形处理器(==任何现代图形处理器)和任何64位处理器上运行。它可以更顺利地集成到现有代码中(没有额外的文件和大量的库调用),但这对性能并不好。MS Accelerator将允许您更快地实现您的功能(它看起来非常简单),因此这可能是一个好的开始。但如果它没有表现出很好的性能,你仍然应该尝试一下OpenCL,它可以做得更好。

因此,我建议你学习OpenCL,因为: 1) OpenCL更接近图形处理器的硬件架构,所以a)它可以让你实现更好的性能,b)你可以写更复杂的代码,c)你会了解到它是如何工作的;2)互联网上有更多的信息/教程/技巧;3)它是跨平台的(在你的情况下可能不是很好的功能,但仍然);4) OpenCL非常类似于CUDA,所以你可以同时学习两种与图形处理器相关的技术。

票数 2
EN

Stack Overflow用户

发布于 2011-12-03 07:11:41

一个选项是C++ AMP,您可以轻松地从.NET http://www.danielmoth.com/Blog/NET-Access-To-The-GPU-For-Compute-Purposes.aspx与其进行互操作

干杯

丹尼尔

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7402983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档