Heterogeneous Modern C++ with SYCL 2020 - Michael Wong, Nevin Liber, Tom Deakin & Gordon Brown

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2024
  • cppcon.org/
    github.com/CppCon/CppCon2021
    ---
    Heterogeneous programming in C++ used to be hard and low-level. Today, Khronos SYCL for Modern C ++ works with different libraries, ML frameworks and Standard C++ code on top of template libraries with lambda functions that separate host and accelerate device code in a single source, but still enables separate compilation of host and device code. The device SYCL compiler may employ kernel fusion for better performance and the host CPU compiler can be any C++ compiler, from clang, gcc, VS C++, or IBM XL compiler. SYCL enables accelerated code to pass into device OpenCL compilers or other backends to dispatch to any variety of devices.
    This talk from members of the SYCL community will talk about highlighted features from the latest SYCL 2020. SYCL 2020 is released after 3 years of intense work with significant adoption in Embedded, Desktop and HPC markets. It offers improved programmability, smaller code size, faster performance and is based on C++17 whilst maintaining backwards compatibility with SYCL 1.2.1.
    It simplifies porting of standard C++ applications to SYCL with closer alignment and integration to ISO C++ and allows multiple back-end acceleration and API independence. There are already a number of backends including CUDA, PTX, OpenMP, AMD, NEC, and TBB in addition to OpenCL.
    This talk will showcase these features and show how SYCL 2020 has increased expressiveness and simplicity for modern C++ heterogeneous programming.
    ---
    Michael Wong
    Michael Wong is Distinguished Engineer/VP of R&D at Codeplay Software. He is a current Director and VP of ISOCPP , and a senior member of the C++ Standards Committee with more then 15 years of experience. He chairs the WG21 SG5 Transactional Memory and SG14 Games Development/Low Latency/Financials C++ groups and is the co-author of a number C++/OpenMP/Transactional memory features including generalized attributes, user-defined literals, inheriting constructors, weakly ordered memory models, and explicit conversion operators. He has published numerous research papers and is the author of a book on C++11. He is currently the editor of SG1 Concurrency TS and SG5 Transactional Memory TS. He is also the Chair of the SYCL standard and all Programming Languages for Standards Council of Canada.
    Nevin Liber
    Nevin “:-)” Liber is a Computer Scientist in the ALCF (Argonne Leadership Computing Facility) division of Argonne National Laboratory, where he works on the oneAPI/DPC++/SYCL backend for Kokkos for Aurora. He also represents Argonne on the SYCL and C++ Committees, the latter as Vice Chair of LEWGI/SG18. Back when he started out working at Bell Labs over three decades ago, a friend of his called and asked “What do you know about C++? You folks invented it!” That was enough to get a relatively shy junior engineer to go find the local expert so he could go play with it, and the rest is history! He has worked in C++ across various industries and platforms (big data, low-latency, operating systems, embedded, telephony and now exascale computing, just to name a few). He has also been a C++ Committee member since 2010 and hosted both the C++ and C standards meetings in Chicago.
    Tom Deakin
    Tom Deakin is a Senior Research Associate in the High Performance Computing Research Group at the University of Bristol, where he works on performance portability of massively parallel High Performance simulation codes. Tom is the Chair of the Khronos SYCL Advisory Panel and has been a member of the SYCL Working Group since 2019. Tom completed his PhD in Leveraging Many-Core Technology for Deterministic Neutral Particle Transport at Extreme Scale in 2018, and has since continued working on unstructured mesh transport and performance portability on HPC architectures. Tom has been involved in teaching Computer Architecture and High Performance Computing at the University of Bristol and given tutorials on open standard parallel programming models at international conferences.
    Gordon Brown
    Gordon Brown is a principal software engineer at Codeplay Software specializing in heterogeneous programming models for C++. He has been involved in the standardization of the Khronos standard SYCL and the development of Codeplay’s implementation of the standard; ComputeCpp, from its inception. More recently he has been involved in the efforts within SG1/SG14 to standardize execution and to bring heterogeneous computing to C++, including executors, topology discovery and affinity. Gordon is also a regular speaker at CppCon and teaches the CppCon class on parallelism and GPU programming in C++.
    ---
    Videos Streamed & Edited by Digital Medium: online.digital-medium.co.uk
    *--*
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 6

  • @VioletGiraffe
    @VioletGiraffe ปีที่แล้ว +5

    After some googling, I'm still very confused as to what I need to download to run sample SYCL code shown in this presentation on my Windows machine on an Intel or Nvidia GPU. And how to embed SYCL into existing C++ CPU code. This was done way simpler with OpenCL where you just need headers and a library which connects to the backend implemented by the graphics driver.

  • @bobweiram6321
    @bobweiram6321 2 ปีที่แล้ว +4

    C++ will never regain popularity with all these acadamese, intimidating and overly pedantic stuff. Most people will pass and stick with C and interops.

    • @Swedishnbkongu
      @Swedishnbkongu 2 ปีที่แล้ว +6

      ?

    • @user-mr3mf8lo7y
      @user-mr3mf8lo7y ปีที่แล้ว

      Totally.. Large corporations (3'41) trying to push community to develop and test things (for FREE) for their hardware, desktop, tablet etc,. rather than providing proper, finished development environment, or application (using their own budget). PS: it is improper that the moderator calls himself 'distinguished engiineer' during opening (0'29). Be humble and let others be judge of that.

    • @fountaingoat6802
      @fountaingoat6802 ปีที่แล้ว +2

      @@user-mr3mf8lo7y Distinguished engineer is his formal title

    • @stephenl7797
      @stephenl7797 ปีที่แล้ว

      I agree in part. But there seem to be some things in SYCL that prioritize the developer and that improve over e.g. cuda. Parts of this presentation focus on legalese that hard to pick up and hard to care about. A lot of C++ resources and designs are like this, but also vulkan etc. This makes it hard to choose even for large personal projects when easy to use alternatives exist for python or whatever. But they are still useful for larger projects