Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    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

    Comment


    • #3
      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..

      Comment


      • #4
        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.

        Comment


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

          Comment


          • #6
            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.

            Comment


            • #7
              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.

              Comment


              • #8
                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.

                Comment


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

                  Comment


                  • #10
                    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

                    Comment

                    Working...
                    X