listShow Lessons List
- What is SYCL
- Enqueueing a Kernel
- Managing Data
- Handling Errors
- Device Discovery
- Data Parallelism
- Introduction to USM
- Using USM
- Asynchronous Execution
- Data and Dependencies
- In Order Queue
- Advanced Data Flow
- Multiple Devices
- ND Range Kernels
- Image Convolution
- Coalesced Global Memory
- Vectors
- Local Memory Tiling
- Further Optimisations
- Matrix Transpose
- More SYCL Features
- Functors
Lesson
Source
Solution
Introduction to USM
In this exercise you will learn how to find a suitable device for using the USM data management model.
1.) Create a device selector
Create a custom device selector as you did in the "Device Discovery" exercise.
2.) Check for USM support
Within this device selector check for whether the device being inspected has support for the USM device allocations.
This can be querying for the aspect::usm_device_allocations
aspect.
3.) Create a queue
Once you have a device selector which will choose a device which supports USM
create a queue
using it to select its device, remember to handle errors.
Build And Execution Hints
For DevCloud via JupiterLab follow these instructions.
For DPC++: instructions.
For AdaptiveCpp: instructions.