Announcement

Collapse
No announcement yet.

Intel Publishes oneAPI Level 0 Specification

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

  • Intel Publishes oneAPI Level 0 Specification

    Phoronix: Intel Publishes oneAPI Level 0 Specification

    Back at SC19 Intel released a beta of their oneAPI Base Toolkit for software developers to work on performance-optimized, cross-device software. Complementing that initial software beta is now the oneAPI Level 0 Specification...

    http://www.phoronix.com/scan.php?pag...-Specification

  • #2
    I still don't understand what this oneAPI brings that OpenCL doesn't offer. Wasn't OpenCL already supposed to be vendor agnostic and work across any kind of processing device?

    Comment


    • #3
      Originally posted by muddymind View Post
      I still don't understand what this oneAPI brings that OpenCL doesn't offer. Wasn't OpenCL already supposed to be vendor agnostic and work across any kind of processing device?
      Afaik OpenCL is still for GPU-like devices. I know it runs like garbage on a CPU.

      Comment


      • #4
        Originally posted by starshipeleven View Post
        Afaik OpenCL is still for GPU-like devices. I know it runs like garbage on a CPU.
        It actually runs very well on the CPU if optimized for that particular target. Naturally, it will run GPU-optimized kernels very slowly (or not at all). This is true for OpenCL, oneAPI or whatever.

        Comment


        • #5
          Originally posted by fakenmc View Post
          It actually runs very well on the CPU if optimized for that particular target. Naturally, it will run GPU-optimized kernels very slowly (or not at all). This is true for OpenCL, oneAPI or whatever.
          This was my understanding of how it was.

          Originally posted by fakenmc View Post
          his is true for OpenCL, oneAPI or whatever.
          So they are competing solutions for the same problem then?

          Comment


          • #6
            Originally posted by muddymind View Post
            I still don't understand what this oneAPI brings that OpenCL doesn't offer. Wasn't OpenCL already supposed to be vendor agnostic and work across any kind of processing device?
            oneAPI provide another higher level abstraction (DPC++) and builds on SYCL (of which OpenCL is a subset).

            Comment


            • #7
              Originally posted by muddymind View Post
              So they are competing solutions for the same problem then?
              That is my understanding, yes, since OpenCL is also targeted at FPGAs.
              Intel is a member of Khronos and actively supports OpenCL in all its devices, so oneAPI is a bit puzzling.

              Comment


              • #8
                Originally posted by fakenmc View Post
                It actually runs very well on the CPU if optimized for that particular target. Naturally, it will run GPU-optimized kernels very slowly (or not at all). This is true for OpenCL, oneAPI or whatever.
                Then I must have heard people talk of the GPU-optimized workloads.

                That said, I thought the oneAPI was supposed to be generic enough.

                I thought it was supposed to translate to different "target specific" code/binaries to try to bridge the gap for you.

                Comment


                • #9
                  Originally posted by starshipeleven View Post
                  Then I must have heard people talk of the GPU-optimized workloads.

                  That said, I thought the oneAPI was supposed to be generic enough.

                  I thought it was supposed to translate to different "target specific" code/binaries to try to bridge the gap for you.
                  OpenCL is also generic, in the sense it can be used with good performance on different types of processors, but it's the developer that has to generally hand-tune the kernels for each type of device (even for different types of GPU from the same vendor, for example!). There are plenty of frameworks for optimizing OpenCL kernels for different kinds of device, but in my experience it's very difficult to create a generic enough kernel that can be optimized for every target.

                  Maybe oneAPI is more generic by providing device-specific versions of common processing tasks. In any case, these have to be tuned for each new device supported by the API, so I have doubts if oneAPI will be truly vendor independent.

                  Comment


                  • #10
                    Originally posted by fakenmc View Post
                    OpenCL is also generic, in the sense it can be used with good performance on different types of processors, but it's the developer that has to generally hand-tune the kernels for each type of device (even for different types of GPU from the same vendor, for example!).
                    The OpenCL community seems to refer to this issue as "performance portability". The Khronos working group is certainly aware of the problem, though I have no idea what work is being done towards addressing it.

                    Comment

                    Working...
                    X