Write a Blog >>

Aim of the tutorial

The oneAPI Data Parallel C++ compiler (DPC++ compiler) is a part of Intel’s oneAPI effort to bring C++ and open standards based programming capabilities to expressing complex algorithms for the CPU and accelerators on a system. The DPC++ compiler provides powerful features from the Khronos* SYCL programming interface with a set of extensions to provide developers with the full power of the C++ language and extensions for SYCL to enable programming heterogeneous systems. These new features allow developers to more easily coordinate the use of accelerators such as discrete GPUs and FPGAs for their parallel C++ applications.

This tutorial will briefly cover the basics of the SYCL and the DPC++ language extensions before presenting deeper coverage of using the language features for heterogeneous programming. Attendees can take part in hands-on exercises to create a small example and evolve it from a host-only shared-memory implementation to a heterogeneous implementation that runs on both the host and an accelerator.

Outline

  • Part 1: DPC++ compiler and its heterogeneous features (1.5 hrs)
    • Language Features and parallel constructs (45 mins)
      • Overview of the language
      • Deep-dive in to the language features to create asynchronous task graphs and data parallel algorithms
    • Hands-On Exercise (30 mins)
      • “Hello World” example; verifying that the environment is set up correctly – 15 minutes
      • Implement small example that targets the CPU and GPU – 30 minutes
  • 15 mins break
  • Part 2: Using heterogeneous algorithms to coordinate accelerators (1.25 hrs)
    • A deep dive into heterogeneous features through heterogeneous example (15 mins)
    • Hands-On Exercises (30 mins)
      • Extend the previous example by splitting the problem and executing it on both the CPU and GPU to create a heterogeneous algorithm
      • If time permits, targeting an FPGA through and emulator
    • Analyzing the performance of the algorithm using tracing capabilities and analysis tools (30 mins)

Prerequisite Knowledge

Attendees should be comfortable programming in C++ using modern features such as templates and lambda expressions. Attendees should also have an understanding of basic parallel programming concepts such as threads and locks. No previous experience with Data Parallel C++ compiler features is required.

Sun 23 Feb (GMT-07:00) Tijuana, Baja California change

PPoPP-2020-Workshops-and-Tutorials
13:00 - 17:00: Workshops and Tutorials - Tutorial: Intel® oneAPI: DPC++ Compiler, Runtime, Tools for Efficient Heterogeneous Computing(Sorrento)
PPoPP-2020-Workshops-and-Tutorials13:00 - 17:00
Demonstration