oneAPI training Jupyter notebooks

The purpose of this repo is to be the central aggregation, curation, and distribution point for Juypter notebooks that are developed in support of oneAPI training programs (e.g. oneAPI Essentials Series). These are the hands-on components to be used in conjunction with training slides.

The organization of the Jupyter notebook directories is a follows:

Notebook Name Owner Description
oneAPI_Intro Praveen.K.Kundurthy@intel.com + Introduction and Motivation for oneAPI and DPC++.
+ DPC++ Hello World
+ Compiling DPC++ and DevCloud Usage
+ Lab Excercise: Vector Increment to Vector Add
DPCPP_Program_Structure Praveen.K.Kundurthy@intel.com + Classes - device, device_selector, queue, basic kernels and ND-Range kernels, Buffers-Accessor memory model
+ DPC++ Code Anotomy
+ Implicit Dependency with Accessors, Synchronization with Host Accessor and Buffer Destruction
+ Creating Custom Device Selector
+ Lab Exercise: Complex Multiplication
DPCPP_Unified_Shared_Memory Rakshith.Krishnappa@intel.com + What is Unified Shared Memory(USM) and Motivation
+ Implicit and Explicit USM code example
+ Handling data dependency using depends_on() and ordered queues
+ Lab Exercise: Solving data dependency with USM
DPCPP_Sub_Groups Rakshith.Krishnappa@intel.com + What is Sub-Goups and Motivation
+ Quering for sub-group info
+ Sub-group collectives
+ Sub-group shuffle operations
Intel_Advisor Praveen.K.Kundurthy@intel.com + Offload Advisor Tool usage and command-line options
+ Roofline Analysis and command-line options
Intel_VTune_Profiler Rakshith.Krishnappa@intel.com + Intel VTune™ Profiler usage in Intel DevCloud environment using command-line options
+ Lab Excercise: VTune Profiling by collecting gpu_hotspots for iso3dfd sample application.
Intel oneAPI DPC++ Library (oneDPL) Praveen.K.Kundurthy@intel.com + Introduction to Intel oneAPI DPC++ Library (oneDPL)
+ Lab Excercise: Gamma Correction with oneDPL
DPCPP_Reduction Rakshith.Krishnappa@intel.com + What are Reductions
+ Challenges with parallelizing reductions
+ ONEAPI::reduce function for sub-groups and work-groups
+ ONEAPI::reduction object in parallel_for
Explore Buffers and Accessors in depth Praveen.K.Kundurthy@intel.com + Bufers and Accessors
+ Buffer properties and usecases
+ Create Sub-buffers
+ Host accessors and usecases
SYCL Task Scheduling and Data Dependences Praveen.K.Kundurthy@intel.com + Different types of data dependences
+ Execution of graph scheduling
+ modes of dependences in Graphs scheduling