|
1 | | -# oneAPI OpenMP Offload Training Jupyter Notebooks |
| 1 | +# OpenMP Offload C++ Tutorials |
2 | 2 |
|
3 | | -The the content of this repo is a collection of Jupyter notebooks that were |
4 | | -developed to teach OpenMP Offload. |
| 3 | +These samples are collection of Jupyter Notebooks that demonstrate OpenMP Offload. |
5 | 4 |
|
6 | | -The Jupyter notebooks are tested and can be run on the Intel DevCloud. Below |
7 | | -are the steps to access these Jupyter notebooks on the Intel DevCloud: |
8 | | - |
9 | | -1. Register with the Intel DevCloud at |
10 | | - https://intelsoftwaresites.secure.force.com/devcloud/oneapi. |
| 5 | +| Area | Description |
| 6 | +|:--- |:--- |
| 7 | +| What you will learn | How to offload computation to GPUs using OpenMP with the Intel® oneAPI DPC++/C++ Compiler |
| 8 | +| Time to complete | 2 Hours |
| 9 | +| Category | Tutorial |
11 | 10 |
|
12 | | -2. SSH into the Intel DevCloud "terminal". |
13 | | - |
14 | | -3. Type the following command to download the oneAPI-essentials series of |
15 | | - Jupyter notebooks and OpenMP offload notebooks into your DevCloud account |
16 | | - `/data/oneapi_workshop/get_jupyter_notebooks.sh` |
| 11 | +## Prerequisites |
17 | 12 |
|
18 | 13 | | Optimized for | Description |
19 | 14 | |:--- |:--- |
20 | 15 | | OS | Linux* |
21 | | -| Hardware | Skylake with GEN9 or newer |
22 | | -| Software | Intel® C++ Compiler |
23 | | -| License | Samples licensed under MIT license. |
24 | | -| What you will learn | How to offload the computation to GPU using OpenMP with the Intel® C++ Compiler |
25 | | -| Time to complete | 2 Hours |
| 16 | +| Hardware | GEN9 or newer |
| 17 | +| Software | Intel® oneAPI DPC++/C++ Compiler |
26 | 18 |
|
27 | | -## Running the Jupyter Notebooks |
| 19 | +## Run the Notebooks in Intel® DevCloud |
28 | 20 |
|
29 | | -1. Open "OpenMP Welcome.ipynb" with JupyterLab. |
30 | | -2. Start the modules of interest. |
31 | | -3. Follow the instructions in each notebook and execute cells when instructed. |
| 21 | +You can run the Jupyter Notebooks in the Intel® DevCloud for oneAPI. |
32 | 22 |
|
33 | | -## License |
| 23 | +1. If you do not already have an account, request an Intel® DevCloud account at [Create an Intel® DevCloud Account](https://intelsoftwaresites.secure.force.com/DevCloud/oneapi). |
34 | 24 |
|
35 | | -Code samples are licensed under the MIT license. See |
36 | | -[License.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/License.txt) |
37 | | -for details. |
| 25 | + > **Note**: You can find information about configuring your Linux system and connecting to Intel DevCloud at Intel® DevCloud for oneAPI [Get Started](https://devcloud.intel.com/oneapi/get_started). |
38 | 26 |
|
39 | | -Third party program Licenses can be found here: |
40 | | -[third-party-programs.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/third-party-programs.txt) |
| 27 | +2. On a Linux* system, open a terminal. |
| 28 | + |
| 29 | +3. SSH into Intel® DevCloud. |
| 30 | + ``` |
| 31 | + ssh DevCloud |
| 32 | + ``` |
| 33 | +4. Type the following command to download the oneAPI-essentials series of |
| 34 | + Jupyter notebooks and OpenMP offload notebooks into your Intel® DevCloud account |
| 35 | + `/data/oneapi_workshop/get_jupyter_notebooks.sh` |
41 | 36 |
|
42 | | -# Summary of the Jupyter Notebook Directories |
| 37 | +### Running the Notebooks |
43 | 38 |
|
44 | | -[OpenMP Welcome](OpenMP Welcome.ipynb) |
45 | | -* Introduce Developer Training Modules |
46 | | -* Describe oneAPI Tool Modules |
| 39 | +1. Open the Notebook `OpenMP Welcome.ipynb`. |
| 40 | + |
| 41 | +2. Open the modules you want to review. |
| 42 | + |
| 43 | +3. Follow the instructions in each notebook and execute cells when instructed. |
| 44 | + |
| 45 | +## Summary of the Jupyter Notebooks |
| 46 | + |
| 47 | +[OpenMP Welcome](OpenMP Welcome.ipynb) |
| 48 | +- Introduce Developer Training Modules |
| 49 | +- Describe oneAPI Tool Modules |
47 | 50 |
|
48 | 51 | [Introduction to OpenMP Offload](intro) |
49 | | -* oneAPI Software Model Overview and Workflow |
50 | | -* HPC Single-Node Workflow with oneAPI |
51 | | -* Simple OpenMP Code Example |
52 | | -* Target Directive Explanation |
53 | | -* _Lab Exercise_: Vector Increment with Target Directive |
| 52 | +- oneAPI Software Model Overview and Workflow |
| 53 | +- HPC Single-Node Workflow with oneAPI |
| 54 | +- Simple OpenMP Code Example |
| 55 | +- Target Directive Explanation |
| 56 | +- *Lab Exercise*: Vector Increment with Target Directive |
54 | 57 |
|
55 | 58 | [Managing Data Transfers](datatransfer) |
56 | | -* Offloading Data |
57 | | -* Target Data Region |
58 | | -* _Lab Exercise_: Target Data Region |
59 | | -* Mapping Global Variable to Device |
| 59 | +- Offloading Data |
| 60 | +- Target Data Region |
| 61 | +- Mapping Global Variable to Device |
| 62 | +- *Lab Exercise*: Target Data Region |
60 | 63 |
|
61 | 64 | [Utilizing GPU Parallelism](parallelism) |
62 | | -* Device Parallelism |
63 | | -* OpenMP Constructs and Teams |
64 | | -* Host Device Concurrency |
65 | | -* _Lab Exercise_: OpenMP Device Parallelism |
66 | | - |
67 | | -[Unified Shared Memory](USM) |
68 | | -* Allocating Unified Shared Memory |
69 | | -* USM Explicit Data Movement |
70 | | -* _Lab Exercise_: Unified Shared Memory |
| 65 | +- Device Parallelism |
| 66 | +- OpenMP Constructs and Teams |
| 67 | +- Host Device Concurrency |
| 68 | +- *Lab Exercise*: OpenMP Device Parallelism |
| 69 | + |
| 70 | +[Unified Shared Memory](USM) |
| 71 | +- Allocating Unified Shared Memory |
| 72 | +- USM Explicit Data Movement |
| 73 | +- *Lab Exercise*: Unified Shared Memory |
| 74 | + |
| 75 | +## License |
| 76 | + |
| 77 | +Code samples are licensed under the MIT license. See |
| 78 | +[License.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/License.txt) |
| 79 | +for details. |
| 80 | + |
| 81 | +Third party program Licenses can be found here: |
| 82 | +[third-party-programs.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/third-party-programs.txt). |
0 commit comments