- 
+ 
* Data is moved between the host and device(s) in a span of memory in bytes rather than a buffer of a specific type
@@ -118,7 +118,7 @@
- 
+ 
* Memory is allocated and data is moved using explicit routines
@@ -134,7 +134,7 @@
- 
+ 
* Some platforms will support variants of USM where memory allocations share the same memory region between the host and device(s)
@@ -162,10 +162,18 @@
#### USM variants
- USM has four variants which a platform can support with varying levels of support
+ USM has four variants which a platform can support with varying levels of support.
+ Only Explicit USM is guraranteed to be available, with the others optional.
- 
+| | Explicit USM | Restricted USM | Concurrent USM | System USM |
+|------------------------|--------------|----------------|----------------|------------|
+| Consistent pointers | ✓ | ✓ | ✓ | ✓ |
+| Pointers in structures | ✓ | ✓ | ✓ | ✓ |
+| Explicit data movement | ✓ | ✓ | ✓ | ✓ |
+| Shared allocations | ✗ | ✓ | ✓ | ✓ |
+| Concurrent access | ✗ | ✗ | ✓ | ✓ |
+| System allocations | ✗ | ✗ | ✗ | ✓ |
diff --git a/Lesson_Materials/Local_Memory_Tiling/index.html b/Lesson_Materials/Local_Memory_Tiling/index.html
index 2b166857..c58aad52 100644
--- a/Lesson_Materials/Local_Memory_Tiling/index.html
+++ b/Lesson_Materials/Local_Memory_Tiling/index.html
@@ -48,8 +48,7 @@

-

-

+
SYCL and the SYCL logo are trademarks of the Khronos Group Inc.
diff --git a/Lesson_Materials/Managing_Data/index.html b/Lesson_Materials/Managing_Data/index.html
index 83eb6bd1..90a4dd59 100644
--- a/Lesson_Materials/Managing_Data/index.html
+++ b/Lesson_Materials/Managing_Data/index.html
@@ -48,7 +48,7 @@

-

+
SYCL and the SYCL logo are trademarks of the Khronos Group Inc.
@@ -103,12 +103,17 @@
- #### USM Allocation Types
+#### USM Allocation Types
- * There are different ways USM memory can be allocated: host, device and shared.
- 
- (from book)
+* There are different ways USM memory can be allocated: host, device and shared.
+
+
+| Type | Description | Access host | Access device | Nominal location |
+|--------|---------------------------------|----------------|----------------|----------------------|
+| device | device global allocations | ✗ | ✓ | device |
+| host | host allocations | ✓ | ✓ | host |
+| shared | Allocations shared between both | ✓ | ✓ | migrates as required |
@@ -297,16 +302,6 @@
buffer goes out of scope.
-
-
-
- #### Accessor class
-
-
- 
-
-
-
#### Accessor class
@@ -333,6 +328,8 @@
* There are many ways to construct an `accessor`.
+ * Accessors are complicated templates with many template arguments,
+ representing the data type, dimensionality, access mode etc.
* The `accessor` class supports CTAD so it's not
necessary to specify all of the template arguments.
* The most common way to construct an `accessor` is from
@@ -469,8 +466,8 @@