POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 3428|回复: 10
打印 上一主题 下一主题

微软发布 C++ AMP(Accelerated Massive Parallelism),全力推动 GPGPU。

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-16 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Microsoft brings GPU computing to C++ with C++ AMP
                                                 by Cyril Kowaliski                         — 12:22 AM on June 16, 2011                        
Look out, OpenCL. Microsoft has set its sights on the democratization of development for heterogeneous systems, and it's pulled out the big guns. At the AMD Fusion Developer Summit today, Microsoft's Herb Sutter announced an extension to the C++ language designed to let programmers tap into any DirectCompute-capable graphics hardware for general-purpose tasks. Microsoft calls the new extension C++ Accelerated Massive Parallelism, or C++ AMP for short, and it aims to make it an open spec that can be implemented on non-Microsoft platforms with non-Microsoft compilers.

Sutter presented C++ AMP as a way to cut through what he called the "jungle of heterogeneity." The PowerPoint slide below illustrates the full extent of that jungle as Sutter sees it, with processors in increasing order of specialization on the Y axis and memory systems in increasing order of non-uniformity and disjointedness mapped to the X axis. It's definitely not pretty:

C++ currently gives developers free reign in the bottom left corner  of that jungle, Sutter said, but C++ AMP expands the roaming area  dramatically. Not only that, but Microsoft hopes to support other  specialized processors with future releases of C++ AMP, thus extending its domain over time.

So, what does C++ AMP entail? Sutter bills it as "minimal," and indeed, the list of additions is a short one:
The additions on which Sutter dwelt the most are array_view and restrict(). The former was described in the PowerPoint presentation as a "portable view that works like an N-dimensional 'iterator range'" and billed as a way to deal with memory that may not be uniform. The restrict() function was easier to grasp for a non-coder like me. If I understand correctly, it simply allows developers to create functions that execute on DirectCompute devices exclusively—all you have to do is toss "restrict(direct3d)" in there, like so:



(The code on the left is regular C++, while the code on the right is C++ AMP. That man in the bottom right corner is Microsoft's David Moth, who got into the nitty-gritty details of C++ AMP during a technical session after Sutter's keynote.)
Now, there will be restrictions on what can go inside, er, restrict()-ed functions, since DirectCompute-capable GPUs can only support a subset of the C++ language. Nevertheless, programs written with C++ AMP will be compiled as single executables capable of making use of DirectCompute-capable hardware if it's there. (I'm guessing developers will be able to include fallback code paths so systems without DirectCompute GPUs can just use the CPU to do the work.)

Microsoft said it will include C++ AMP support in the next version of Visual Studio. Of course, since C++ AMP is an open spec, Visual Studio won't be the only way to write C++ AMP code and compile it. In fact, Sutter said Microsoft and AMD are already working together on non-Windows compilers. (Lest you think Nvidia is being left out, a post on Nvidia's blog says the firm "continues to work closely with Microsoft to help make C++ AMP a success.")
2#
 楼主| 发表于 2011-6-16 15:28 | 只看该作者
NVIDIA 很 happy:

Microsoft today made an announcement that will accelerate the adoption of GPU computing (that is, the use of GPUs as a companion processor to CPUs). The software maker is working on a new programming language extension, called C++ AMP, with a focus on accelerating applications with GPUs.

With Microsoft now embracing GPUs in their future higher-level language and OS roadmap, it makes the decision to go with GPU computing even easier for those programmers still on the fence.
Its intent with C++ AMP is to expose C++ language capabilities to millions of Windows developers with the goal of enabling them to take advantage of GPUs. It promises to give millions of C++ developers the option of using Microsoft Visual Studio-based development tools to accelerate applications using the parallel processing power of GPUs. CUDA C and CUDA C++ will continue to be the preferred platform for Linux apps or demanding HP** performance computing) applications that need to maximize performance.

In the Spring 2007, there was just one language (CUDA C) supporting NVIDIA GPUs. Fast forward to today and our customers now have a much wider selection of languages and APIs for GPU computing – CUDA C, CUDA C++, CUDA Fortran, OpenCL, DirectCompute and in the future Microsoft C++ AMP. There are even Java and Python wrappers, as well as.NET integration, available that sit on top of CUDA C or CUDA C++.

If you are a Windows C++ developer looking at GPU Computing for the first time, there is no need to wait. Visual C++ developers today use our high performance CUDA C++ with the Thrust C++ template library to easily accelerate applications by parallelizing as little as 1 to 5 percent of their application code and mapping it to NVIDIA GPUs. CUDA C++ comes with a rich eco-system of profilers, debuggers, and libraries like cuFFT, cuBLAS, LAPACK, cuSPARSE, cuRAND, etc. NVIDIA’s Parallel Nsight™ for Visual Studio 2010 provides these Windows developers a familiar development environment, combined with excellent GPU profiling and debugging tools.

The take away from Microsoft’s announcement today is that the GPU computing space has reached maturity, with the company that produces the world’s most widely used commercial C++ developer tools – Microsoft — completely embracing GPU computing in their core tools. Rest assured, NVIDIA continues to work closely with Microsoft to help make C++ AMP a success, and we will continue to deliver the best GPU developer tools and training.
Stay tuned for more details.

回复 支持 反对

使用道具 举报

3#
发表于 2011-6-16 15:38 | 只看该作者
怎么感觉就是微软版本的openCL、、、
回复 支持 反对

使用道具 举报

头像被屏蔽
4#
发表于 2011-6-16 20:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5#
发表于 2011-6-16 20:43 | 只看该作者
因为这个ppt演示的地盘属于amd{lol:]
回复 支持 反对

使用道具 举报

6#
发表于 2011-6-16 21:21 | 只看该作者
ioia 发表于 2011-6-16 20:22
虽然nv也很high,可为什么演示使用a卡呢?

ms要收购NV了


回复 支持 反对

使用道具 举报

7#
发表于 2011-6-16 21:33 | 只看该作者
rickerlian 发表于 2011-6-16 20:43
因为这个ppt演示的地盘属于amd

AMD包场子发布APU,微软拿个N卡来演示,不是摆明了要砸场子么
要和---谐,肿么能这样呢
回复 支持 反对

使用道具 举报

westlee 该用户已被删除
8#
发表于 2011-6-16 21:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

9#
发表于 2011-6-16 21:48 | 只看该作者
回复 nanshan 的帖子

微软能买n个amd,这样财大气粗的公司,需要蹭场地么??
回复 支持 反对

使用道具 举报

10#
发表于 2011-6-16 22:06 | 只看该作者
大家开始自救吧 ~
回复 支持 反对

使用道具 举报

11#
发表于 2011-6-16 22:25 | 只看该作者
要成規格必先拉攏戰友 以達成目標
這不是MS對抗 水果 的最好方式嗎
沒有永遠的朋友 但也沒有絕對的敵人
只有利益的結合 這就是商人
而我們只是待宰的肥羊罷了{titter:]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-26 23:42

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表