

C++ Accelerated Massive Parallelism - ukdm
http://www.danielmoth.com/Blog/C-Accelerated-Massive-Parallelism.aspx

======
kenjackson
Video of the presentation is here:

[http://hothardware.com/News/Microsoft-Demos-C-AMP-
Heterogene...](http://hothardware.com/News/Microsoft-Demos-C-AMP-
Heterogeneous-Computing-at-AFDS/)

Impressive. Especially at the end when they use two discrete GPUs.

------
marshray
AFAICT not only is it Windows-only, it's DirectX- and Visual Studio 2010-only.
Not interested.

I wish Microsoft would quit calling stuff that only works on their one
particular compiler "C++ this-or-that". This MS blogger even calls it
"heterogeneous", I guess because it runs on two AMD chips in the same PC.
[http://blogs.msdn.com/b/somasegar/archive/2011/06/15/targeti...](http://blogs.msdn.com/b/somasegar/archive/2011/06/15/targeting-
heterogeneity-with-c-amp-and-ppl.aspx)

~~~
kenjackson
_This MS blogger even calls it "heterogeneous", I guess because it runs on two
AMD chips in the same PC._

No, I think its hetergeneous because the code can target the CPU, APUs, or
GPUs, or a combination thereof.

Also, according to some articles on it, "Herb also disclosed that the C++ AMP
is going to open specification such that other compilers can target C++ AMP
optimizations."

So in theory Intel's compiler can also target it. From looking at one snippet
of code, it looks like something that would also work on any platform, even
non-Windows, despite the current implementation sitting on DX. But I haven't
seen the spec to know for sure.

~~~
marshray
_No, I think its hetergeneous because the code can target the CPU, APUs, or
GPUs, or a combination thereof._

Right, two AMD chips in the same PC, unless its a combined CPU/GPU thingies
they're always talking about.

Well OK, maybe it could be an Intel emulating the AMD64 instruction set and an
Nvidia GPU running DirectX. But still, just two, and only one implementation
of the compiler and runtime environment.

Like the Microsoft habit calling their stuff "cross platform" because it runs
on both XP and Vista, the term "heterogeneous" means something different to
the rest of the world.

 _So in theory Intel's compiler can also target it._

Note that one of the prerequisites for Intel's Windows compiler is Visual
Studio.

~~~
kenjackson
Honestly, I don't know what you're talking about. What do you expect
heterogeneous to mean in this context? It's mixing ISAs.

~~~
marshray
It sounds to me like one of the ISAs is x86/x64 Windows and the other is the
thing you get with Direct3D. Sure it's "heterogenous" but only in the same
sense as, say, .Net managed and native code both built with Visual Studio are.

I need to watch the video if I'm going to complain any more.

~~~
kenjackson
Heterogeneous in this context is GPU+APU+CPU. I'm not clear what is throwing
you here. What are you expecting?

From (written by NVidia):
[http://benchmarkreviews.com/index.php?option=com_content&...](http://benchmarkreviews.com/index.php?option=com_content&task=view&id=187&Itemid=99999999)

 _What is heterogeneous computing?

Heterogeneous computing is the idea that to attain the highest efficiency
applications should use both of the major processors in the PC: the CPU and
GPU. CPUs tend to be best at serial operations with lots of branches and
random memory access. GPUs, on the other hand, excel at parallel operations
with lots of floating point calculations. The best result is achieved by using
a CPU for serial applications and a GPU for parallel applications.
Heterogeneous computing is about using the right processor for the right
operation._

~~~
marshray
OK, that makes sense.

I was used to the older concept of "heterogeneous systems" which tended to
emphasize interoperability between independent platforms and vendors.

