Skip to content

olutosinbanjo/Hello_World_dpcpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Basic Ideas of Data Parallel C++, DPC++

Intel oneAPI logo

About

A basic DPC++ tutorial. Head out to https://github.com/olutosinbanjo/Hello_World_dpcpp/wiki to follow it.

Contents

Suggested reading sequence -

Home

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

The Basic Ideas of Data Parallel CPP, DPCPP 1

2.0. What is DPC++ ?

2.1. Features of DPC++

2.2. Some Domain Specific Applications of DPC++

The Basic Ideas of Data Parallel CPP, DPCPP 2

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

The Basic Structure of a DPCPP Program 1

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

The Basic Structure of a DPCPP Program 2

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

The Basic Structure of a DPCPP Program 3

6.0. Basic Structure of a DPC++ Program - Part 3

6.1. Error Handling

6.2. Compiling and Executing a DPC++ Program

Source Code Explanation 1

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

Source Code Explanation 2

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

Source Code Explanation 3

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

Source Code Explanation 4

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

Exercises to Try

Final Words

References

Additional Study Resources

😃 HAPPY LEARNING! 😃