加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.Net中的GPGPU编程 – Microsoft Accelerator VS OpenCL.net [VS

发布时间:2020-12-14 05:26:51 所属栏目:Windows 来源:网络整理
导读:我正在开发一个程序(在.Net中),它有很多图像处理(比如2D Convolutions,…),我想用GPGPU(并行处理)来做它们 所以,我有一些选择:Microsoft Accelerator,OpenCL.Net,…… 哪一个对我更好? 一些对我很重要的事情:速度,兼容性(例如,如果GPU不支持,会发生什么?
我正在开发一个程序(在.Net中),它有很多图像处理(比如2D Convolutions,…),我想用GPGPU(并行处理)来做它们
所以,我有一些选择:Microsoft Accelerator,OpenCL.Net,……
哪一个对我更好?

一些对我很重要的事情:速度,兼容性(例如,如果GPU不支持,会发生什么?),易于学习,与Nvidia和ATI一起工作,……

我听说我可以在OpenCL中创建自己的函数并为许多阵列单元运行它,但我不知道我是否可以在Microsoft Accelerator中执行此操作,或者我必须使用其功能…

解决方法

Microsoft Accelerator和OpenCL支持CPU和GPU,并且独立于供应商(即在ATI和nVidia卡上运行).

对于OpenCL,您必须单独将OpenCL安装到用户计算机(包含在nVidia(支持nvidia的gpus)和ATI(支持ati gpus和任何cpus)驱动程序中,可以下载到Intel(支持cpus).但是,你可以保持AMD的OpenCL.dll与您的软件捆绑在一起用作CPU后备.OpenCL更加开发(更多功能,更少的错误):它更早出现,是跨平台的,基于现有技术(CUDA,Brook).OpenCL允许你精确控制你实际做的事情,所以它更快,但更难一点.

正如我所知,Microsoft Accelerator可以在任何支持DirectX(==任何现代GPU)和任何64位CPU的GPU上运行.它更平滑地集成到现有代码中(没有额外的文件和大量的库调用),但这对性能不利. MS Accelerator可以让你更快地实现你的功能(看起来很简单),所以它可能是一个好的开始.但如果它没有表现出很好的性能,你仍然应该尝试OpenCL,它可以做得更好.

因此,我建议你学习OpenCL,因为:1)OpenCL更接近GPU硬件架构,因此a)它可以让你获得更好的性能,b)你可以编写更复杂的代码,c)你会学到如何作品; 2)互联网上有更多的信息/教程/黑客; 3)它是跨平台的(在你的情况下可能不是很好的功能,但仍然是); 4)OpenCL与CUDA非常相似,因此您将同时学习两种与GPU相关的技术.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读