cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

New Webinar: Taming GPU Compute with C++ AMP

Join us Nov 8th at 10am PST with guest speaker Daniel Moth from Microsoft.

Developers today inject parallelism into their compute-intensive applications in order to take advantage of multi-core CPU hardware. Beyond CPUs, however, compute accelerators such as general-purpose GPUs can provide orders of magnitude speed-ups for data parallel algorithms. How can you as a C++ developer fully utilize this heterogeneous hardware from your Visual Studio environment? How can you benefit from this tremendous performance boost in your Visual C++ solutions without sacrificing developer productivity? The answers will be presented in this session about C++ Accelerated Massive Parallelism.

Sign up today!

http://developer.amd.com/zones/OpenCLZone/Events/pages/OpenCLWebinars.aspx

0 Likes
4 Replies
bubu
Adept II

Interesting.... however, we prefer to use cross-platform solutions and a "program once, execute in may OSs" policy.... so, unless C++ AMP works too for linux and MacOSX we will continue using OpenCL as it is, thx 😛

0 Likes

When C++ AMP was announced a long time ago, it was stated that it will be a cross-platform solution. I have doubts, but let's not judge ahead of time. I have already signed up, cause I'm very interested in this technology, although I will most likely stay with OpenCL. But who knows...

0 Likes

Originally posted by: Meteorhead When C++ AMP was announced a long time ago, it was stated that it will be a cross-platform solution.

 

Cross-platform in Microsoft's language means Windows + Xbox 360 😛

0 Likes

The webinar was interesting, and it is nice to finally have an open standard from Microsoft for a change.

It was said that Microsoft implements the functions through their VSC++ compiler via taking kernel codes inside the program, transcode it to HLSL, compile them into DX calls, store this byte data inside the x86 binary, and when the program is run, this bytecode is passed onto the display drivers, as if they were regular DX calls just spawned by the DX runtime, and let the driver to the binary translation to the specific HW as it is always done with DX.

It is only up to the compiler how it implements these functions, as I understood, there is no incompatibility between C++ AMP and OpenCL. All the AMP function calls can be implemented in C also. Infact that was my biggest disappointment. Kernels are only allowed to be passed and to be using basic datatypes (int, uint, float, double ONLY). I mean... come on. They boast about AMP being a C++ API, superior to C, but I cannot even pass structs to a kernel??? Even OpenCL is capable of that. This was my biggest disappointment, but please someone tell me if I understood it wrong. If this is true, it should really be called C-- AMP.