Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Intel Makes Microsoft's C++ AMP Cross-Platform

  1. #1
    Join Date
    Jan 2007
    Posts
    14,618

    Default Intel Makes Microsoft's C++ AMP Cross-Platform

    Phoronix: Intel Makes Microsoft's C++ AMP Cross-Platform

    Microsoft conceived C++ Accelerated Massive Parallelism (AMP) as a library atop DirectX 11 for offering data-parallelism directly in C++ that can make easy use of GPUs while having CPU fall-back support. With C++ AMP being similar to OpenCL, Intel engineers decided to implement the Microsoft specification within OpenCL and using LLVM/Clang so that it can be used cross-platform...

    http://www.phoronix.com/vr.php?view=MTIyOTk

  2. #2
    Join Date
    Mar 2011
    Location
    Auckland, New Zealand
    Posts
    4

    Talking

    This is awesome. C++ AMP looked like a pretty well thought out extension and I've been waiting for someone to bring it over to a free compiler/toolchain.

    Hopefully now we have a couple of implementations any rough edges in the spec can be sorted out and it can get on the road to standardisation over the next few years. :-D

  3. #3
    Join Date
    May 2012
    Posts
    781

    Default

    Seriously, how many more SMP-like solutions do the devs need? I'm not being sarcastic, even OpenGL 4.3 has a stage for (tiny) SMP work - there's a pile of such solutions lately..

  4. #4
    Join Date
    May 2008
    Posts
    99

    Default

    Obviously, OpenCL is standard, and I will stay with that. I saw many people jumping to CUDA, because it had some special feature they liked, only to jump back to OpenCL (AMD) as soon as NVIDIA later traded computation performace for graphics performance. Same will probabbly happen for AMP, being outside of standards rarely makes any sense.

  5. #5
    Join Date
    Feb 2008
    Location
    Santiago, Chile
    Posts
    240

    Default

    Structurally, I can't see how this is different from Mono. Even worse: this is patent covered code that no app can avoid.

  6. #6
    Join Date
    Jul 2008
    Location
    Germany
    Posts
    650

    Default

    Quote Originally Posted by mirza View Post
    Obviously, OpenCL is standard, and I will stay with that. I saw many people jumping to CUDA, because it had some special feature they liked,
    The ppl don't use CUDA for the Features. They use it because you has lot more Development resources for it an many Library that you can use. For OpenCL you has always the impression that you start at zero.

  7. #7
    Join Date
    Nov 2012
    Posts
    3

    Default

    Quote Originally Posted by mirza View Post
    Obviously, OpenCL is standard, and I will stay with that. I saw many people jumping to CUDA, because it had some special feature they liked, only to jump back to OpenCL (AMD) as soon as NVIDIA later traded computation performace for graphics performance. Same will probabbly happen for AMP, being outside of standards rarely makes any sense.
    AMP *is* a standard, or aims to be more or less, even if de facto for now. Seems silly to argue that once any acceptable standard emerges that one shouldn't look to improve upon it in various ways. OpenCL, despite being a cross-platform standard, still requires domain-specific knowledge and a separate tool chain, like CUDA, or DirectCompute. The idea of AMP is to enable people to see the same sort of performance benefits as those technologies while also lowering the barrier to entry by leveraging their knowledge of C++ and integrating directly with the tool chain they're already using. AMP achieves this with minimal extension of the C++ language, makes those extensions implementable by other compiler vendors, and will eventually seek to be added to the standard proper in all likelihood. I believe AMP will help make this kind of programming approachable for many more programmers than it has been to in the past. GPGPU will no longer be the domain of an exclusive club.

    I don't see anything worth arguing against here, unless you're just one of those people who won't accept even the possibility that Microsoft might have touched something without it being tainted.

  8. #8
    Join Date
    Nov 2007
    Posts
    1,024

    Default

    Quote Originally Posted by mark45 View Post
    Seriously, how many more SMP-like solutions do the devs need? I'm not being sarcastic, even OpenGL 4.3 has a stage for (tiny) SMP work - there's a pile of such solutions lately..
    This is quite different than the others, however. OpenMP is purely CPU side, and is incapable of supporting GPU-side computing since it lacks the notion of memory buffers or transfers requiring to offload work to another memory domain. OpenCL is a completely separate language, library interface, and domain-specific toolchain that targets primarily GPU side code; it requires rewriting all your code (and writing tons of boilerplate and management) if you want e.g. a simple single-threaded CPU-side easy-to-debug implementation and then the fast GPU implementation. OpenGL's Computer Shaders are similar to Microsoft's DirectCompute, which is really geared towards doing general-purpose graphics computing specifically intended to integrate with the standard graphics pipeline (compared to OpenCL or CUDA which does not integrate very well at all with the graphics features of GPUs), and in particular don't work for more heterogeneous environments (e.g. a CPU, a graphics-dedicated discrete GPU, and GPU cores embedded in the CPU for offloading non-graphics parallel workloads).

    AMP allows seamless integration into C++ and transsparently supports either CPU-side or GPU-side parallelism, using a number of very clean and simplified concepts that abstract away the specifics. It has all the advantages of OpenMP (simplicity, no requirement for a GPU, can be transparently disabled at compile time) and all the advantages of OpenCL (scales out to the GPU to achieve massive parallelism for appropriate workloads).

    AMP is also 100% just as much of a standard as OpenCL or OpenMP. Both of the latter are just documents published on a website by an organization which is in no way a government-sanctioned standards body. AMP likewise is also a fully specified technology published as a document on a website by an organization which is in no way a government-sanctioned standards body. The only difference is that Microsoft is a big bad evil meanie poopoo-headed jerkface, apparently.

  9. #9
    Join Date
    Mar 2011
    Location
    Auckland, New Zealand
    Posts
    4

    Question

    Is there any indication of when Intel might do an actual release so we can get our hands on something?

  10. #10
    Join Date
    Sep 2010
    Posts
    683

    Default

    All MS made standards have bad tendency to reinvent wheels (like non-ISO data format for ISO approved MS OOXML). And wandering in any direction MS wants.

    On the other hand, the more the merrier.

    And implementation on top of OpenCL is VERY neat

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •