Announcement

Collapse
No announcement yet.

Intel Looking To Add SYCL Programming Support To LLVM/Clang

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

  • Intel Looking To Add SYCL Programming Support To LLVM/Clang

    Phoronix: Intel Looking To Add SYCL Programming Support To LLVM/Clang

    SYCL, the single-source programming model developed by the Khronos Group and based upon standard C++, might soon be supported by the LLVM Clang compiler thanks to Intel...

    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 extremely exciting, and is a serious threat to CUDA. Don't get me wrong, OpenCL is great, but we need SYCL as a single-source option that has a similarly low entry barrier as CUDA. One of the reason CUDA is taught everywhere in universities is because it doesn't require you a lot of boilerplate to get started. And since CUDA is taught everywhere, all of science uses it. We can only compete with that with a single-source programming model that is as easy to get started as CUDA, like SYCL.

    A SYCL implementation available in a mainline clang compiler backed by a company like Intel with immense development resources is a compelling combination. Here's an image that illustrates how Intel's implementation fits into the existing SYCL ecosystem:


    Comment


    • #3
      In an ideal world AMD, Apple, Intel and others would work together on this. After all you would want your code to be as portable as possible.

      Comment


      • #4
        It is true that *programmers* want code to be as portable as possible. Hardware and OS vendors, on the other hand... :P

        Comment


        • #5
          Interesting, that means the SYCL approach gets some traction in the industry. I wonder how this might complement the proposal made by Dave Airlie at LPC 2018.

          Comment


          • #6
            Originally posted by ms178 View Post
            Interesting, that means the SYCL approach gets some traction in the industry. I wonder how this might complement the proposal made by Dave Airlie at LPC 2018.
            Well it complements it. Correct me if I'm wrong, but Dave is targeting GCC.

            Comment


            • #7
              IMHO this should've been done by AMD 1-2 years ago when they started ROCm and HCC. I don't think HCC will gain traction and even then, SYCL was an option. If the effort put into HCC would have been put into SYCL, we'd have rock stable SYCL in Clang now, being able to target any vendor, even Nvidia (embedding PTX via LLVM).

              Comment


              • #8
                Originally posted by Meteorhead View Post

                Well it complements it. Correct me if I'm wrong, but Dave is targeting GCC.
                Just watched his presentation again, see 32:45 and on for his proposal: https://www.youtube.com/watch?time_c...&v=d94N2Lu4x9s

                I don't see GCC mentioned there at all (he even suggested it would be a terrible fit for GPUs somwhere in the Q&A section of his talk). There is a Clang SYCL frontend though and the LLVM device compiler.

                Comment


                • #9
                  Originally posted by Meteorhead View Post
                  IMHO this should've been done by AMD 1-2 years ago when they started ROCm and HCC. I don't think HCC will gain traction and even then, SYCL was an option. If the effort put into HCC would have been put into SYCL, we'd have rock stable SYCL in Clang now, being able to target any vendor, even Nvidia (embedding PTX via LLVM).
                  Have you seen their HCC2 implementation? It is intended to support multiple programming models including OpenMP 4.5+, C++ Parallel Extensions (original HCC), HIP, and CUDA Clang. It supports offloading to multiple GPU acceleration targets (multi-target). It also supports different host platforms such as AMD64, PPC64LE, and AARCH64 (multi-platform). But it is still a prototype: https://github.com/ROCm-Developer-Tools/hcc2

                  I cannot judge though if this approach provides meaningful benefits or which drawbacks this might bring in regard to the SYCL approach.

                  Comment


                  • #10
                    Originally posted by Meteorhead View Post

                    Well it complements it. Correct me if I'm wrong, but Dave is targeting GCC.
                    He is working on the open-source triSYCL implementation, which has an experimental clang frontend.

                    Originally posted by Meteorhead View Post
                    IMHO this should've been done by AMD 1-2 years ago when they started ROCm and HCC. I don't think HCC will gain traction and even then, SYCL was an option. If the effort put into HCC would have been put into SYCL, we'd have rock stable SYCL in Clang now, being able to target any vendor, even Nvidia (embedding PTX via LLVM).
                    SYCL code can run on NVIDIA with the open-source hipSYCL SYCL implementation which relies on compiling with the regular CUDA compiler and hence brings native CUDA performance and access to the latest NVIDIA device features from SYCL. It's not yet conformant but it's progressing well (like triSYCL).

                    Comment

                    Working...
                    X