diff --git a/Lesson_Materials/Lecture_01_What_is_SYCL/index.html b/Lesson_Materials/Lecture_01_What_is_SYCL/index.html index 41aee7fb..a60a59f4 100644 --- a/Lesson_Materials/Lecture_01_What_is_SYCL/index.html +++ b/Lesson_Materials/Lecture_01_What_is_SYCL/index.html @@ -59,7 +59,7 @@
## Learning Objectives - * Learn about the SYCL specification and it's implementations + * Learn about the SYCL specification and its implementations * Learn about the components of a SYCL implementation * Learn about how a SYCL source file is compiled * Learn where to find useful resources for SYCL @@ -80,6 +80,18 @@
+
+
+ #### What is SYCL? +
+
+ A first example of SYCL code. Elements will be explained in coming sections! +
+
+ ![SYCL](./sycl_first_sample_code.png "SYCL") +
+
+
#### What is SYCL? @@ -102,7 +114,7 @@ Your kernel contains the code you want to execute on parallel hardware, i.e the bit you want to accelerate such as a vector addition
- +
#### What is SYCL? @@ -122,7 +134,7 @@
- +
#### What is SYCL? @@ -148,7 +160,7 @@ Other models use language extensions such as pragmas, attributes or keywords to indicate device code
- +
#### What is SYCL? @@ -173,7 +185,7 @@ Whilst the current specification of SYCL is bound to OpenCL, it is possible to support non-OpenCL back-ends. For example hipSYCL targets AMD's HIP interface and ComputeCpp targets NVidia's ptx instruction set
- +
#### SYCL specification @@ -183,16 +195,14 @@ ![SYCL](./sycl_spec_versions.png "SYCL-OpenCL")
- +
#### SYCL implementations
-
- ![SYCL Implementations](./sycl-implementation-targets.jpg "SYCL-Implementations") -
+ SYCL-Implementations
- +
#### What a SYCL implementation looks like @@ -211,7 +221,7 @@ * The device is the parallel unit used to execute the kernels, such as a GPU
- +
#### What a SYCL implementation looks like @@ -225,7 +235,7 @@ * It loads kernels, tracks data dependencies and schedules commands
- +
#### What a SYCL implementation looks like @@ -239,7 +249,7 @@ * The host device can be used to execute kernels without backend drivers and for debugging purposes
- +
#### What a SYCL implementation looks like @@ -254,7 +264,7 @@
- +
#### What a SYCL implementation looks like @@ -274,7 +284,7 @@ **IR** = Intermediate Representation **ISA** = Instruction Set Architecture
- +
#### Std C++ compilation model @@ -286,7 +296,7 @@ * This is the typical compilation model for a C++ source file.
- +
#### Std C++ compilation model @@ -298,7 +308,7 @@ * So how do you compile a source file to also target the GPU?
- +
#### Std C++ compilation model @@ -311,7 +321,7 @@ * These are defined by submitting them to specific APIs.
- +
#### Std C++ compilation model @@ -324,7 +334,7 @@ * This produces a device IR such as SPIR, SPIR-V or PTX or ISA for a specific architecture containing the GPU code.
- +
#### Std C++ compilation model @@ -336,7 +346,7 @@ * The CPU object is then linked with the device IR or ISA to form a single executable with both the CPU and GPU code.
- +
#### Std C++ compilation model @@ -349,7 +359,7 @@ * This allows the host compiler (MSVC, Clang, Gcc) to be independent of the SYCL device compiler.
- +
#### Std C++ compilation model @@ -362,7 +372,7 @@ * Where both the host compiler and SYCL device compiler are invoked from the same driver.
- +
## Where to Get Started with SYCL @@ -370,11 +380,11 @@ * Checkout the documentation provided with one of the SYCL implementations. * Visit https://sycl.tech to find out about all the SYCL implementations, news and videos
- +
## Questions
- +
#### Exercise diff --git a/Lesson_Materials/Lecture_01_What_is_SYCL/sycl-implementation-targets.jpg b/Lesson_Materials/Lecture_01_What_is_SYCL/sycl-implementation-targets.jpg deleted file mode 100644 index 21261b77..00000000 Binary files a/Lesson_Materials/Lecture_01_What_is_SYCL/sycl-implementation-targets.jpg and /dev/null differ diff --git a/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_first_sample_code.png b/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_first_sample_code.png new file mode 100644 index 00000000..f7a17c0f Binary files /dev/null and b/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_first_sample_code.png differ diff --git a/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_implementation_targets.png b/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_implementation_targets.png new file mode 100644 index 00000000..46781e25 Binary files /dev/null and b/Lesson_Materials/Lecture_01_What_is_SYCL/sycl_implementation_targets.png differ