SYCL WG State of the Union 2020 - Khronos Group

Page created by Harvey Hamilton
 
CONTINUE READING
SYCL WG State of the Union 2020 - Khronos Group
SYCL WG
                                                                                              State of the Union 2020
                                                                                                                         Michael Wong
                                                                                                                        SYCL WG Chair
                                                                                                                   Codeplay VP of R&D
                                                                                                                 ISOCPP Director & VP
                                                                                                        ISO C++ Directions Group Chair
                                                                                       michael@codeplay.com | wongmichael.com/about

This work is licensed under a Creative Commons Attribution 4.0 International License                              © The Khronos® Group Inc. 2020 - Page 1
SYCL WG State of the Union 2020 - Khronos Group
Acknowledgement and Disclaimer
                                                                                       Numerous people internal and external
                                                                                       to the original C++/Khronos group, in
                                                                                       industry and academia, have made
                                                                                       contributions, influenced ideas, written
                                                                                       part of this presentations, and offered
                                                                                       feedbacks to form part of this talk.

                                                                                       But I claim all credit for errors, and stupid mistakes. These
                                                                                       are mine, all mine! You can’t have them.

This work is licensed under a Creative Commons Attribution 4.0 International License                                 © The Khronos® Group Inc. 2020 - Page 2
SYCL WG State of the Union 2020 - Khronos Group
Agenda
1. SYCL Past Present future
2. SYCL 2020
3. SYCL ecosystem
SYCL WG State of the Union 2020 - Khronos Group
Khronos Active Initiatives and where does SYCL fit

              3D Graphics                               3D Assets                      Portable XR       Parallel Computation
         Desktop, Mobile, Web                            Authoring                     Augmented and       Vision, Inferencing,
      Embedded and Safety Critical                      and Delivery                   Virtual Reality      Machine Learning

                                               Guidelines for creating APIs to streamline system safety certification

This work is licensed under a Creative Commons Attribution 4.0 International License                       © The Khronos® Group Inc. 2020 - Page 4
SYCL WG State of the Union 2020 - Khronos Group
SYCL Single Source C++ Parallel Programming
                                                                                                          Complex ML frameworks
                                                                                                          can be directly compiled
      SYCL-BLAS, SYCL-DNN,                             Standard C++
                                       C++                                        ML                          and accelerated
             Eigen,                                        Application
         oneAPI libraries           Libraries                                 Frameworks
                                                             Code

                                    C++ Template           C++ Template      C++ Template           C++ templates and lambda
                                                                                                    functions separate host &
                                      Libraries              Libraries         Libraries
                                                                                                     accelerated device code

                                           SYCL Compiler                    CPU
 C++ Kernel Fusion can                      for OpenCL                    Compiler
give better performance
on complex apps and libs
    than hand-coding                                                        CPU

               Accelerated code
               passed into device          CPU
                                           CPU       GPU
                                                                                  SYCL is ideal for accelerating larger
                                            CPU      GPU
               OpenCL compilers                                                   C++-based engines and applications
                                           FPGA      DSP                             with performance portability
                                            AI/Tensor HW
                                               Custom
                                              Hardware

                                                                                                     © Copyright Khronos® Group Inc. 2020 Page 5
SYCL WG State of the Union 2020 - Khronos Group
SYCL Implementations
         SYCL, OpenCL and SPIR-V, as open industry
          standards, enable flexible integration and
      deployment of multiple acceleration technologies
                                                                                                SYCL
                                                                                             Source Code

                    DPC++                            ComputeCpp                                      triSYCL                             hipSYCL
                     Uses                             SYCL 1.2.1 on                                                                   SYCL 1.2.1 on
                                                                                                   Open source
                 LLVM/clang                             multiple                                                                         CUDA &
                                                                                                     test bed
                Part of oneAPI                          hardware                                                                        HIP/ROCm
                                                                     Ex
                                                                       pe
                                                                          rim

                                                                                                             Experimental
                                                                             en
                                                                                  ta
                                                                                    l

          Any CPU           CUDA+PTX            Any CPU               OpenCL+PTX           OpenMP                               OpenMP              CUDA
                          NVIDIA GPUs                                NVIDIA GPUs        Any CPU                                Any CPU         NVIDIA GPUs

                  OpenCL +                               OpenCL +                                   OpenCL +                              ROCm
                   SPIR-V                                 SPIR(-V)                                  SPIR/LLVM
                                                                                                                                         AMD GPUs
                  Intel CPUs                             Intel CPUs                                XILINX FPGAs
                  Intel GPUs                             Intel GPUs                                    POCL                            Multiple Backends in
                 Intel FPGAs                            Intel FPGAs                           (open source OpenCL supporting

                                                         AMD GPUs
                                                                                              CPUs and NVIDIA GPUs and more)              Development
                                                     (depends on driver stack)                                                 SYCL beginning to be supported on multiple low-
                                                        Arm Mali                                                                      level APIs in addition to OpenCL
                                                      IMG PowerVR                                                                           e.g. ROCm and CUDA
                                                      Renesas R-Car                                                                For more information: http://sycl.tech

This work is licensed under a Creative Commons Attribution 4.0 International License                                                        © The Khronos® Group Inc. 2020 - Page 6
SYCL WG State of the Union 2020 - Khronos Group
SYCL Past up to 2017 SYCL 1.2.1

                                                                   Work with industry to bring
   C++11          C++14                        C++17
                                                                   Heterogeneous compute to
                                                                       standard ISO C++

                         SYCL 1.2              SYCL 1.2.1
                    C++11 Single source    C++11 Single source           OpenCL ‘Next’
                       programming            programming        Flexible and efficient deployment
                                                                   of parallel computation across
                                                                  diverse processor architectures

   2011                   2015                  2017
  OpenCL 1.2            OpenCL 2.1            OpenCL 2.2
OpenCL C Kernel        SPIR-V in Core     C++ Kernel Language
   Language

                                                                           © Copyright Khronos™ Group 2018 - Page 7
SYCL WG State of the Union 2020 - Khronos Group
SYCL Present and Future Roadmap (May Change)

   C++11          C++14                       C++17                    C++20                        C++23

                         SYCL 1.2             SYCL 1.2.1             SYCL 2020           SYCL 2021-?
                    C++11 Single source   C++11 Single source    C++17 Single source  C++20 Single source
                       programming           programming            programming          programming
                                                                Many backend options Many backend options

   2011                   2015                 2017                    2020                2021-?????
  OpenCL 1.2            OpenCL 2.1           OpenCL 2.2             OpenCL 3.0
OpenCL C Kernel        SPIR-V in Core
   Language

                                                                         © Copyright Khronos™ Group 2018 - Page 8
SYCL WG State of the Union 2020 - Khronos Group
SYCL community is vibrant

                         2X growth

            SYCL-1.2.1
SYCL WG State of the Union 2020 - Khronos Group
Contributors (Thank you, SYCL WG!)   •
                                     •
                                         Andrew Richards (CP),
                                         Michael Wong (CP),
•   Ronan Keryell (Xilinx)
•   Brian Sumner (AMD),              •   Ruyman Reyes (CP)
•   Alexey Bader (Intel),            •   Steffen Larsen (CP)
•   James Brodman (Intel),           •   Stuart Adams (CP)
•   Mike Kinsner (Intel),            •   Alex Johnston (CP)
•   John Pennycook (Intel),          •   Tomas Matheson (CP)
                                     •   Victor Lezaud (Xilinx)
•   Roland Schulz (Intel),
•   Ilya Burylov (Intel),            •   Sébastien Le Duc (Kalray)
•   Jeff Hammond (Intel),            •   Kévin Petit (ARM)
•   Ben Ashbaugh (Intel),            •   Anastasia Stulova (ARM)
•   Andrew Gozillon (Xilinx),        •   Nevin Liber (ANL)
•   Aksel Alpay (Self),              •   Brian Homerding (ANL)
•   Daniel Berenyi (Self),           •   Hal Finkel (ANL)
•   Máté Nagy-Egri                   •   Neil Trevett (Khronos)
    (StreamHPC),                     •   Tom Deakin (U of Bristol)
•   Gordon Brown (CP),               •   Ruihao Zhang(Qualcomm)
                                     •   Biagio Cosenza (Salerno)
•   Victor Lomüller (CP),
•   Peter Žužek (CP),                •   And many others
                                     •   + YOU on GitHub !
Commits by year/month (thanks Ronan Keryell, Xilinx)
                                                       SYCL-2020...

                      SYCL-1.2            SYCL-1.2.1

                             (SYCL-2.2)
      SYCL-1.2-prov
Top committers
Agenda
1. SYCL Past Present future
2. SYCL 2020
3. SYCL ecosystem
Extending SYCL to the future

 This is a preview and describes work in progress. The content mightWILL change.
                   Some of these features have not been merged.
GitHub/Gitlab open-source collaboration
                                                                                                         Your great contributions

                                                                                       Our IP-secret sauce, to be open-
This work is licensed under a Creative Commons Attribution 4.0 International License       sourced after ratification   © The Khronos   ®   Group Inc. 2020 - Page 15
SYCL 2020 compared with SYCL 1.2.1

  SYCL Evolution                                                                             ●
                                                                                             ●
                                                                                                 Easier to integrate with C++17 (CTAD, Deduction Guides,...)
                                                                                                 Less verbose, smaller code size, simplify patterns
                        SYCL 2020 potential Features                                         ●   Backend independent
Generalization (a.k.a the Backend Model) presented by Gordon Brown                           ●   Multiple object archives aka modules simplify interoperability
                                                                                             ●   Ease porting C++ applications to SYCL
Unified Shared Memory (USM) presented by James Brodman                                       ●   Enable capabilities to improve programmability
                                                                                             ●   Backwards compatible but Minor API break based on user
Improvement to Program class Modules presented by Gordon Brown                                   feedback
Host Task with Interop presented by Gordon Brown                                                                               Converge SYCL with ISO
                                                                                            Integrationof successful
In order queues, presented by James Brodman                                                Extensions plus new Core            C++ and continue to
                                                                                                 functionality                 support OpenCL on more
                                                                                                                               devices
                                                                                                                                               CPU
                         SYCL 2020 Roadmap (WIP, MAY CHANGE)                                                                                   GPU
                                                                                                                                              FPGA
                                                                                                                                          AI processors
                                    Improving Software Ecosystem                                         Target 2020
                                                                                                                                        Custom Processors
   2017                                       Tool, libraries, GitHub                            Provisional Q3 then Final Q4
 SYCL 1.2.1
                                       Expanding Implementation
                                                       DPC++
                                                    ComputeCPP
                                                                                        Selected Extension Pipeline aiming for
                                                      triSYCL                                 SYCL 2020 Provisional Q3
                                                      hipSYCL                                            Reduction
                                     Regular Maintenance Updates                                         Subgroups
                                  Spec clarifications, formatting and bug fixes                    Accessor simplification
                                       https://www.khronos.org/registry/SYCL/                         Atomic rework
                                                                                                   Extension mechanism
                                                                                                      Address spaces
                                     Repeat The Cycle every                                            Vector rework
                                          1.5-3 years                                             Specialization Constants
 This work is licensed under a Creative Commons Attribution 4.0 International License                                         © The Khronos® Group Inc. 2020 - Page 16
Agenda
1. SYCL Past Present future
2. SYCL 2020
3. SYCL ecosystem
SYCL Ecosystem, Research and Benchmarks

                                                                                                                            Machine Learning
       Implementations                   Research                                       Benchmarks    Linear Algebra
                                                                                                                          Libraries and Parallel
                                                                                                         Libraries
                                                                                                                        Acceleration Frameworks

                                                                                                       SYCL-BLAS
oneAPI
                                                                                                           Eigen          SYCL-ML

                                                                                                                        SYCL-DNN
                                                                                                            oneMKL
                                                                                                               SYCL Parallel STL

                                                                                            RSBench

                                                Active Working Group Members
 This work is licensed under a Creative Commons Attribution 4.0 International License                       © The Khronos® Group Inc. 2020 - Page 18
SYCL, Aurora and Exascale computing

                                                                                                           SYCL can
                                                                                                           run on AMD
                                                                                                           ROCM

This work is licensed under a Creative Commons Attribution 4.0 International License   © The Khronos® Group Inc. 2020 - Page 19
SYCL future and C++ roadmap
 Integrated more tightly with ISO C++, members attending both

This work is licensed under a Creative Commons Attribution 4.0 International License   © The Khronos® Group Inc. 2020 - Page 20
SYCL 2020 provisional is coming
   • In a few months, SYCL 2020 provisional will be released
   • We need your feedback asap
              -     https://app.slack.com/client/TDMDFS87M/CE9UX4CHG
              -     https://community.khronos.org/c/sycl/
             -      https://sycl.tech/
   • What features are you looking for that is not in SYCL 2020?
   • What feature would you like to aim for in future SYCL?
   • How do you join SYCL?

This work is licensed under a Creative Commons Attribution 4.0 International License   © The Khronos® Group Inc. 2020 - Page 21
Open to all!
                                                          https://community.khronos.org/www.khr.io/slack
                                                          https://app.slack.com/client/TDMDFS87M/CE9UX4CHG
 Engaging with         the Khronos SYCL Ecosystem
                                                          https://community.khronos.org/c/sycl/
                                                          https://stackoverflow.com/questions/tagged/sycl
                                                          https://www.reddit.com/r/sycl
                                                     $0 https://github.com/codeplaysoftware/syclacademy
                                                          https://sycl.tech/        Spec fixes and suggestions made under the Khronos IP
                                                                                    Framework. Open source contributions under repo’s
                                                                                    CLA – typically Apache 2.0
                                                                             $0     https://github.com/KhronosGroup
                            Khronos SYCL Forums, Slack                              https://github.com/KhronosGroup/SYCL-CTS
                       Channels, stackoverflow, reddit, and                         https://github.com/KhronosGroup/SYCL-Docs
                                     SYCL.tech                                      https://github.com/KhronosGroup/SYCL-Shared
                                                                                    https://github.com/KhronosGroup/SYCL-Registry
                                                                                    https://github.com/KhronosGroup/SyclParallelSTL

                                     Contribute to SYCL open source                           $0    Invited Advisors under the Khronos NDA and
                                                                                                    IP Framework can comment and contribute
                                     specs, CTS, tools and ecosystem                                to requirements and draft specifications
                                                                                                    https://www.khronos.org/advisors/

                                                                 SYCL
                                                               Advisory                         $   Khronos members under Khronos NDA and IP
                                                                Panels                              Framework participate and vote in working
                                                                                                    group meetings. Starts at $3.5K/yr.
                                                                               SYCL                 https://www.khronos.org/members/
                                                                              Working               https://www.khronos.org/registry/SYCL/

                                                                              Groups            Any member or non-
                                                                                               member can propose a
                                                                                               new SYCL feature or fix

This work is licensed under a Creative Commons Attribution 4.0 International License                        © The Khronos® Group Inc. 2020 - Page 22
Thank You!

 • Khronos SYCL is creating cutting-edge royalty-free open standard
     - For C++ Heterogeneous compute, vision, inferencing acceleration
 • Information on Khronos SYCL Standards: https://www.khronos.org/sycl/
 • Any entity/individual is welcome to join Khronos SYCL: https://www.khronos.org/members/
 • Join the SYCLCon Tutorial Monday and Wednesday Live panel : Wednesday Apr 29 15:00-18:00 GMT
     - Have your questions answered live by a group of SYCL experts
 • Michael Wong: michael@codeplay.com | wongmichael.com/about

                                                    Gain early insights                Influence the design and direction       Accelerate your time-to-
                                                    into industry trends               of key open standards that will          market with early access to
                                                    and directions                     drive your business                      specification drafts

                                                         Gather industry                       Draft Specifications                   Publicly Release
                                                     requirements for future                 Confidential to Khronos                 Specifications and
                                                         open standards                             members                          Conformance Tests

                                                       Network with domain experts              State-of-the-art IP Framework          Enhance your company reputation
                                                       from diverse companies in your           protects your Intellectual             as an industry leader through
                                                       industry                                 Property                               Khronos participation

                                                                                 Benefits of Khronos membership
This work is licensed under a Creative Commons Attribution 4.0 International License                                                 © The Khronos® Group Inc. 2020 - Page 23
You can also read