Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

C++ AMP: Yossi Levanoni - Architecture and Design

34 minutes, 7 seconds


Right click “Save as…”

C++ AMP (Accelerated Massive Parallelism) is a small set of open specification language extensions (two of them) and a single library (amp.h) that makes general purpose GPU programming (aka GPGPU) a first class, seamless experience in modern C++.

You've been able to experiment with C++ AMP since the VS11 Developer Preview back in September 2011. We figured it was a good time to go C9 on the C++ AMP team. So, we did. Four interviews have been conducted that pretty thoroughly cover C++ AMP and the people who design, implement, and test it. C++ AMP is a great technology for native developers seeking to harness the power of the GPU using the language and tools they are already comfortable with. C++ AMP is also an open specification and we'll see other compiler vendors producing C++ AMP implementations for their target platforms soon—that's been the goal since Day 1.

Continuing with our four part series, we meet one of the architects of C++ AMP, Yossi Levanoni. You've met him before on C9. In this conversation, we go deeper into the design of C++ AMP (including exploring what led to some of the design decisions) and, of course, Yossi draws diagrams on the whiteboard like all architects must! You'll learn quite a bit about how C++ AMP works and why. Thanks for spending time with us, Yossi, and I'm sorry for mangling your last name!

See Part 1 - Daniel Moth: Overview
See Part 3 - The AMP Development Team Roundtable
See Part 4 - The AMP Test Team Hallway Office Tour


Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • JohnJohn

    From what i've seen this is an amazing API.If only next WP and XBOX would have direct compute possibility. It would be nice to have GPU code that goes across platforms so easy.

  • For both these recent AMP videos, they end early, mid interview.  At least for the HQ WMV downloadable files.

  • CharlesCharles Welcome Change

    @Castaa: I can't reproduce this. I just downloaded the HQ WMV file and it works fine, all the way through.


  • WaldemarWaldemar

    Yeah sometimes the downloading just stops in the middle of the transfer as if has finished. There is no other way then to download again. Sometimes if you are fast enough you can press resume.

  • IvanIvan

    I always thought that AMP provides 100x speedup for 1% of the projects that can benefit from AMP because they use certain algorithms... So Charles it would be great if you could ask AMPers is there any use for AMP for "generic" code(not scieentific, not data mining... ) coding... Yes I know that there is no generic coding, but I guess you at MS have access to certain code bases and that you ran some analysis of how much of it is AMPable :)

  • CharlesCharles Welcome Change

    @Waldemar: Thanks for the info. We are seeing issues with our CDN (or so it seems). Sorry for the skipping and strange download behavior. If I may ask, Wademar and Castaa, where are you located, geographically?


  • CharlesCharles Welcome Change

    @Ivan: It's a good question, Ivan. I'll rephrase it if I may to "How general purpose is GPGPU, really, today and in the near future".


  • I'm in San Francisco.  My Internet connection is ATT U-verse ISP and is pretty rock solid.  I downloaded both videos using Firefox 10 32-bit.  Both videos just stopped downloading before they were complete I guess, with no error.  I assumed they were done.

  • Nice interview! I've got one question, perhaps you can pass it along: is there any overhead involved in the rank-N to rank-3 translation done by the GPU stub (e.g., is it compile-time or run-time)?

  • @Ivan: C++ AMP enables massive data parallelism. Typically that has been used in game development on one extreme, and Technical or Scientific computing on the other. With the capable hardware becoming more ubiquitous, and the programming model more approachable, you can expect those domains to become more mainstream but also new scenarios to start benefiting, e.g. augmented reality, image/video manipulation, voice recognition and other such consumer facing opportunities. For existing apps, look at each loop in your application and ask yourself: am I processing a lot of data and/or performing expensive operations in this loop? If the answer is yes, it is a good candidate.

    @Matt_PD: It's runtime overhead (but we have optimized this as much as we can). Although we have enabled this feature, we have not come across any real world cases that have taken advantage of it yet, so if you use C++ AMP for >3 dimensions, please let us know.

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.