BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

微软发布C++ AMP规范,旨在降低数据并行门槛

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 曹如进 关注 0 他的粉丝 发布于 2012年2月23日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

微软在他们的GoingNative 2012大会上为其C++ AMP(C++加速大规模并行处理)发布了开放规范(PDF)。C++ AMP被描述成“一种能够在数据并行硬件上加速C++代码的编程模型”。而这类硬件中最常见的例子要属独立显卡上能够使用多核或SSE CPU作为替代选择的GPU了

微软声明的C++ AMP编程模型如下:

……给你上面几个方面的显式控制,包括:在CPU和加速器之间进行数据拷贝,以及在GPU上执行计算。你可以显式地管理CPU和加速器间的所有通信。这类通信既可以是同步的也可以是异步的。加速器中的数据并行计算,可以通过使用多维数组、高层次数组操作函数、多维索引操作以及其他高层次抽象进行表示。所有这些表示都是基于C++编程语言的一个大型子集。该编程模型包含了多个层次,以便你可以在易用性和最大性能之间进行权衡。

微软对此标准的实现适用于任何运行DirectX 11的系统,而如果系统没有DirectX 11,那么会有一段非C++的代码被执行。

微软并不打算把C++ AMP只面向Windows,因为它“支持并鼓励任何人任何平台上实现C++ AMP开放规范……”(摘自原文)。迄今为止,该项目折射出的贡献者来自于Nvidia和AMD。为了鼓励外部实现,微软在其“微软社区承诺协议”下发布了整个C++ AMP规范。

虽然微软的实现支持C++ AMP和Direct 3D之间的互操作性,但是正式规范中并没有要求这点。另外,目前C++ AMP还不支持与OpenGL的互操作,开发人员Daniel Month最近在论坛一个贴子中指出,这项支持并不会即刻到来,因为“(C++ AMP团队)中没有人有OpenGL的经验”。

对于想要尝试新的C++ AMP编程模型的开发人员,可以先下载Visual Studio 11开发者预览版,然后查看这篇MSDN博客文章中给出的样例代码。(代码中的例子还包含了.NET开发人员如何从C#中使用C++ AMP。)

查看英文原文:http://www.infoq.com/news/2012/02/CPP_AMP_Published

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

和 OpenCL 比较如何? by 袁 满

和 OpenCL 比较如何?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT