Tag: SYCL

Take Advantage of All the MIPS – SYCL & C++ – Michael Wong, Jakub Chlanda, Ronan Keryell, Nevin Liber & Jakub Chlanda – CppCon 2022

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Take Advantage of All the MIPS - SYCL & Cpp - Gordon Brown, Michael Wong, Ronan Keryell, Nevin Liber & Jakub Chlanda - CppCon 2022
https://github.com/CppCon/CppCon2022

Have you ever wanted to take advantage of all the MIPS in your machine with one cppcon.digital-medium.co.uk/tag/programming/">programming language?
Have you ever wanted to support any kind of offload devices in C++, be they FPGA, GPUs, matrix/tensors, or DSPs? Many people have by augmenting a SYCL compiler.
Have you wondered why US National Labs are choosing SYCL as a standard cppcon.digital-medium.co.uk/tag/programming/">programming model for exascale computing? This is because they know maximum performance can be achieved with a combination of host and accelerator devices in any vendor combination, so they choose SYCL.
Khronos SYCL is a framework language built on top of Modern C++. It is backed by an open standard in Khronos and enables ML frameworks and Standard C++ code on top of template libraries with lambda functions that have host and accelerate device code in a single source, but still enable 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. Many people have built SYCL compiler additions to dispatch to any variety of devices very quickly, from students to academia, to industry. There are already a number of backends including CUDA, PTX, OpenMP, AMD, NEC, Huawei, Kokkos, Raja, and TBB in addition to OpenCL.

There are also many interesting use cases with complex modern C++. PyTorch, Blender, ray-tracing, Flashlight ML, Eigen and Tensorflow, Gromacs, and CERN’s ATLAS experiment for high energy physics.

This talk from members of the SYCL and C++ community will talk about highlighted features from the latest SYCL 2020 as related to ISO C++. SYCL can serve even more Extreme Heterogeneity where Data Movement is still King. We also are entering the era of software and hardware Codesign with extreme Heterogeneity and SYCL can be a part of a standard cppcon.digital-medium.co.uk/tag/programming/">programming model for all HPC, Embedded AI/ML, and Automotive

This talk will showcase these features and show how SYCL 2020 has increased expressiveness and simplicity for modern C++ heterogeneous cppcon.digital-medium.co.uk/tag/programming/">programming.
---

Gordon Brown

Gordon Brown is a principal software engineer at Codeplay Software specializing in heterogeneous cppcon.digital-medium.co.uk/tag/programming/">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.
---

Michael Wong

Michael Wong is a Distinguished Engineer at Codeplay Software, a company that produces compilers, debuggers, runtimes, testing systems, and other specialized tools. For 20 years, he was the Senior Technical Strategy Architect for IBM compilers. Michael is Chair of the Khronos C++ Heterogeneous Programming language SYCL, Editor for the Concurrency TS and the Transactional Memory TS, Canadian Head of Delegation to the ISO C++ Standard, Founding member of the ISO C++ Directions group, Director and VP of ISOCPP.org and Chair of al Programming Languages for Canada’s Standard Councils.
---

Ronan Keryell

Ronan Keryell is principal software engineer at AMD working on high-level cppcon.digital-medium.co.uk/tag/programming/">programming models for FPGA and member of the Khronos OpenCL & SYCL C++ committee. Ronan was assistant professor in the Comp Sci department at MINES Paris Tech and later at Télécom Bretagne (France), working on automatic parallelization, compilation of PGAS languages (High-Performance Fortran), high-level synthesis and co-design, networking, and secure computing. Co-founder of 3 start-ups, mainly in the area of High Performance Computing, and was the technical lead of the Par4All automatic parallelizer at SILKAN, targeting OpenMP, CUDA & OpenCL from sequential C & Fortran.
---

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. He has worked in C++ across various industries and platforms (big data, low-latency, operating systems, embedded, telephony and now exascale computing, etc.). He has been a C++ Committee member since 2010 and hosted both the C++ and C standards meetings in Chicago.
---

Jakub Chlanda

At Codeplay, I work at the sharp edge between heterogeneous runtimes and compilers for CPU/GPU/DSP and FPGA systems. Launching myself into dark corners of both.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , ,

MDSPAN – A Deep Dive Spanning C++, Kokkos & SYCL – Nevin Liber – CppCon 2022

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

MDSPAN - A Deep Dive Spanning C++, Kokkos & SYCL - Nevin Liber - CppCon 2022
https://github.com/CppCon/CppCon2022

This talk is a deep dive into the history behind MDSPAN (it’s roots being in Kokkos::View), the C++ standardization effort behind it (current status, various tradeoffs made over time, and language changes to help support it) and how SYCL is looking to leverage it in the future. MDSPAN is a non-owning multidimensional array reference, currently slated to be one of the flagship libraries added to C++23. View/reference vocabulary types first entered C++17 with string_view (a non-owning string reference), followed by span (a non-owning single dimension contiguous memory reference) and the ranges library. MDSPAN is the natural progression of this, and one that is critical to distributed (eg. CPU/GPU cppcon.digital-medium.co.uk/tag/programming/">programming) and high-performance computing.

MDSPAN got its roots from Kokkos::View, One key difference between Kokkos::View & MDSPAN: Kokkos::View may be owning (reference-counted reference semantics) or non-owning. The former is also being standardized for C++26 as MDARRAY, although with value and not reference-counted semantics. Separately, in 2014 Microsoft proposed a similar type, array_view, be added to the standard. After a year and a half and seven revisions, it was ultimately abandoned in favor of what is now MDSPAN because it did not provide a zero-overhead abstraction.

The MDSPAN proposal itself has taken seven years and has been through 17 revisions (so far), with input from many different companies as well as the C++ Committee. What changed over the years and why did it change? In parallel, two key language changes were made which ultimately improved the interface: deprecating the comma operator inside square brackets, and the addition of the multidimensional subscript operator. This allows the natural syntax of a[I, j, k] instead of inferior alternatives like a(i, j, k), a[I][j][k] or even a[Index(i), j, k].
---

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

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , , , , ,

C++ Performance Portability – Decade of Challenges Developing Kokkos – Christian Trott – CppCon 2022

https://cppcon.org/
---

C++ Performance Portability - Decade of Challenges Developing Kokkos - Christian Trott - CppCon 2022
https://github.com/CppCon/CppCon2022

Over the last decade, scientific computing had to deal with a diversifying hardware and programming model environment. Today’s scientific software engineers have to account for at least four vendor provided eco-systems: CUDA (NVIDIA), HIP (AMD), SYCL (Intel - OneAPI) and OpenMP. Performance Portability solutions attempt to relieve domain experts from the need to become experts in all of these, by providing an interface which enables developers to write their code once, and then execute it efficiently on any HPC platform.
This talk will discuss lessons learned from the last 10 years of developing and deploying Kokkos, a C++ based Performance Portability EcoSystem which is arguably the most widely used non-vendor solution for writing single source performance portable scientific applications. We will dive into some of the key challenges for designing performance portable software, and how to address them through appropriate API design. The talk will also show how some of the fundamental concepts for performance portability are getting introduced into the ISO C++ standard through upcoming features.
---

Christian Trott

Christian Trott is a high performance computing expert working at the Sandia National Laboratories. He leads the multi-institutional Kokkos C++ Performance Portability Programming Model development team and is member of the ISO C++ Standards Committee focusing on future C++ capabilities for parallel and heterogeneous computing. Christian is currently focused on making sure that Kokkos is ready for the exa-scale era high performance computing architectures. He also leads the mdspan proposal for the C++23 standard, which will provide multidimensional array views with configurable data layouts and data access functions.

His prior scientific work focused on computational material research using ab-initio calculations, molecular dynamic simulations and monte carlo methods for investigations of ion-conducting glass materials.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #software

Filed under: UncategorizedTagged with: , , , , , , , , , , , ,