DPC++ Part 2: Programming Best Practices

In Part 2 of our Data Parallel C++ overview series, software engineer Anoop Madhusoodhanan Prabha will walk through best practices for using this language to program oneAPI applications.

To recap, the new language—part of the oneAPI initiative—provides an open, cross-industry alternative to single-architecture, proprietary languages. Based on familiar C++ and incorporating SYCL* from The Khronos Group*, DPC++ lets developers more easily port code across a variety of architectures from an existing application’s code base.

But with that capability comes unique considerations such as how data should be made available on the device side, and the need for synchronization points between compute kernels running across a host and devices to ensure accurate results and deterministic behavior.

Take the next step in learning DPC++ by joining Anoop as he:

  • Covers how to efficiently use buffers, sub-buffers, and unified shared memory
  • Dives into implicit synchronization points in DPC++
  • Explores atomics, mutex, work-group barriers, and work-group mem-fence

Resources

Anoop Madhusoodhanan Prabha, Staff Software Engineer, Intel Corporation

Anoop Madhusoodhanan Prabha Staff Software Engineer, Intel Corporation With over 10 years’ experience as a software engineer, Anoop’s work has included application development, system analysis and design, database administration, data migrations, automations, function point analysis, and critical projects in the telecom domain. Since joining Intel in 2009, he has worked on optimizing various customer applications by enabling multi-threading, vectorization, and other micro architectural tunings. He has experience working with OpenMP, TBB, CUDA*, and more. Today, Anoop focuses on floating point reproducibility across various Intel® architectures, containerized solutions for Intel® Compiler-based workloads, and continuous integration/continuous deployment adoption.

Anoop holds a Master’s of Science in Electrical Engineering from State University of New York College at Buffalo with an emphasis in high-performance computing, and a Bachelor’s of Tech in Electronics and Communication Engineering from Malaviya National Institute of Technology in Jaipur.

For more complete information about compiler optimizations, see our Optimization Notice.