A basic DPC++ tutorial. Head out to https://github.com/olutosinbanjo/Hello_World_dpcpp/wiki to follow it.
Suggested reading sequence -
1.0. Hello World! DPC++
1.1. Pre-requisite knowledge
1.2. Task
1.3. Tools for following this material
1.4. Following the material
1.4.1. With git clone - DevCloud
1.4.2. Without git clone - DevCloud
1.4.3. With JupyterLab*
1.5. Following the Source Code Explanations
2.0. What is DPC++ ?
2.1. Features of DPC++
2.2. Some Domain Specific Applications of DPC++
3.0. Hello World! from a Parallel Perspective - 1D-ARRAY COPY
3.1. 🥳 A Fun Way of Explaining
3.2. 💻 A Computational Way of Explaining
4.0. Basic structure of a DPC++ Program - Part 1
4.1. Header File and Namespace
4.2. Host code and Device code
4.3. Offloading Code to a Device
4.4. Synchronous and Asynchronous Program Execution
4.5. Single Source
5.0. Basic Structure of a DPC++ Program - Part 2
5.1. Device Management
5.2. Memory and Data Management
5.3. Kernel-based Programming
5.4. Synchronization
6.0. Basic Structure of a DPC++ Program - Part 3
6.1. Error Handling
6.2. Compiling and Executing a DPC++ Program
7.0 src/hello_world_usm.cpp
7.1. Preprocessor Directives
7.2. The main Function
7.2.1. Error Handling
7.2.2. Device Selection and Information
7.2.3. Setting Up Host Storage
7.2.4. Device Code Computation
7.2.5. Accessing Device Data On Host Device
7.2.6. Freeing Allocated Memory
7.3. Expected Result
8.0 src/hello_world_usm2.cpp
8.1. Preprocessor Directives
8.2. The main Function
8.2.1. Error Handling
8.2.2. Device Selection and Information
8.2.3. Setting Up Host Storage
8.2.4. Device Code Computation
8.2.5. Accessing Device Data On Host Device
8.2.6. Freeing Allocated Memory
8.3. Expected Result
9.0 src/hello_world_buffer.cpp
9.1. Preprocessor Directives
9.2. The main Function
9.2.1. Error Handling
9.2.2. Device Selection and Information
9.2.3. Setting Up Host Storage
9.2.4. Device Code Computation
9.2.5. Accessing Device Data On Host Device
9.2.6. Freeing Allocated Memory
9.3. Expected Result
10.0 src/hello_world_buffer2.cpp
10.1. Preprocessor Directives
10.2. The main Function
10.2.1. Error Handling
10.2.2. Device Selection and Information
10.2.3. Setting Up Host Storage
10.2.4. Device Code Computation
10.2.5. Accessing Device Data On Host Device
10.3. Expected Result
😃 HAPPY LEARNING! 😃