Skip to content

Commit e6c4b9b

Browse files
authored
Merge pull request #2427 from igchor/v2_virtual_memory
[L0 v2] enable functions realted to virtual/physical memory management
2 parents 22b425f + b6c9b64 commit e6c4b9b

File tree

6 files changed

+28
-128
lines changed

6 files changed

+28
-128
lines changed

source/adapters/level_zero/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ if(UR_BUILD_ADAPTER_L0_V2)
127127
${CMAKE_CURRENT_SOURCE_DIR}/common.hpp
128128
${CMAKE_CURRENT_SOURCE_DIR}/device.hpp
129129
${CMAKE_CURRENT_SOURCE_DIR}/platform.hpp
130+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.hpp
130131
${CMAKE_CURRENT_SOURCE_DIR}/program.hpp
131132
${CMAKE_CURRENT_SOURCE_DIR}/helpers/kernel_helpers.hpp
132133
${CMAKE_CURRENT_SOURCE_DIR}/helpers/memory_helpers.hpp
@@ -135,10 +136,12 @@ if(UR_BUILD_ADAPTER_L0_V2)
135136
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
136137
${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp
137138
${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp
139+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.cpp
138140
${CMAKE_CURRENT_SOURCE_DIR}/program.cpp
139141
${CMAKE_CURRENT_SOURCE_DIR}/helpers/kernel_helpers.cpp
140142
${CMAKE_CURRENT_SOURCE_DIR}/helpers/memory_helpers.cpp
141143
${CMAKE_CURRENT_SOURCE_DIR}/usm_p2p.cpp
144+
${CMAKE_CURRENT_SOURCE_DIR}/virtual_mem.cpp
142145
${CMAKE_CURRENT_SOURCE_DIR}/../../ur/ur.cpp
143146
${CMAKE_CURRENT_SOURCE_DIR}/tensor_map.cpp
144147
# v2-only sources

source/adapters/level_zero/physical_mem.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@
1010

1111
#include "physical_mem.hpp"
1212
#include "common.hpp"
13-
#include "context.hpp"
1413
#include "device.hpp"
15-
#include "ur_level_zero.hpp"
14+
15+
#ifdef UR_ADAPTER_LEVEL_ZERO_V2
16+
#include "v2/context.hpp"
17+
#else
18+
#include "context.hpp"
19+
#endif
1620

1721
namespace ur::level_zero {
1822

@@ -25,7 +29,7 @@ ur_result_t urPhysicalMemCreate(
2529
PhysicalMemDesc.size = size;
2630

2731
ze_physical_mem_handle_t ZePhysicalMem;
28-
ZE2UR_CALL(zePhysicalMemCreate, (hContext->ZeContext, hDevice->ZeDevice,
32+
ZE2UR_CALL(zePhysicalMemCreate, (hContext->getZeHandle(), hDevice->ZeDevice,
2933
&PhysicalMemDesc, &ZePhysicalMem));
3034
try {
3135
*phPhysicalMem = new ur_physical_mem_handle_t_(ZePhysicalMem, hContext);
@@ -46,8 +50,8 @@ ur_result_t urPhysicalMemRelease(ur_physical_mem_handle_t hPhysicalMem) {
4650
if (!hPhysicalMem->RefCount.decrementAndTest())
4751
return UR_RESULT_SUCCESS;
4852

49-
ZE2UR_CALL(zePhysicalMemDestroy,
50-
(hPhysicalMem->Context->ZeContext, hPhysicalMem->ZePhysicalMem));
53+
ZE2UR_CALL(zePhysicalMemDestroy, (hPhysicalMem->Context->getZeHandle(),
54+
hPhysicalMem->ZePhysicalMem));
5155
delete hPhysicalMem;
5256

5357
return UR_RESULT_SUCCESS;

source/adapters/level_zero/v2/api.cpp

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -88,81 +88,6 @@ ur_result_t urSamplerCreateWithNativeHandle(
8888
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
8989
}
9090

91-
ur_result_t urVirtualMemGranularityGetInfo(
92-
ur_context_handle_t hContext, ur_device_handle_t hDevice,
93-
ur_virtual_mem_granularity_info_t propName, size_t propSize,
94-
void *pPropValue, size_t *pPropSizeRet) {
95-
logger::error("{} function not implemented!", __FUNCTION__);
96-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
97-
}
98-
99-
ur_result_t urVirtualMemReserve(ur_context_handle_t hContext,
100-
const void *pStart, size_t size,
101-
void **ppStart) {
102-
logger::error("{} function not implemented!", __FUNCTION__);
103-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
104-
}
105-
106-
ur_result_t urVirtualMemFree(ur_context_handle_t hContext, const void *pStart,
107-
size_t size) {
108-
logger::error("{} function not implemented!", __FUNCTION__);
109-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
110-
}
111-
112-
ur_result_t urVirtualMemMap(ur_context_handle_t hContext, const void *pStart,
113-
size_t size, ur_physical_mem_handle_t hPhysicalMem,
114-
size_t offset,
115-
ur_virtual_mem_access_flags_t flags) {
116-
logger::error("{} function not implemented!", __FUNCTION__);
117-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
118-
}
119-
120-
ur_result_t urVirtualMemUnmap(ur_context_handle_t hContext, const void *pStart,
121-
size_t size) {
122-
logger::error("{} function not implemented!", __FUNCTION__);
123-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
124-
}
125-
126-
ur_result_t urVirtualMemSetAccess(ur_context_handle_t hContext,
127-
const void *pStart, size_t size,
128-
ur_virtual_mem_access_flags_t flags) {
129-
logger::error("{} function not implemented!", __FUNCTION__);
130-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
131-
}
132-
133-
ur_result_t urVirtualMemGetInfo(ur_context_handle_t hContext,
134-
const void *pStart, size_t size,
135-
ur_virtual_mem_info_t propName, size_t propSize,
136-
void *pPropValue, size_t *pPropSizeRet) {
137-
logger::error("{} function not implemented!", __FUNCTION__);
138-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
139-
}
140-
141-
ur_result_t urPhysicalMemCreate(ur_context_handle_t hContext,
142-
ur_device_handle_t hDevice, size_t size,
143-
const ur_physical_mem_properties_t *pProperties,
144-
ur_physical_mem_handle_t *phPhysicalMem) {
145-
logger::error("{} function not implemented!", __FUNCTION__);
146-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
147-
}
148-
149-
ur_result_t urPhysicalMemRetain(ur_physical_mem_handle_t hPhysicalMem) {
150-
logger::error("{} function not implemented!", __FUNCTION__);
151-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
152-
}
153-
154-
ur_result_t urPhysicalMemRelease(ur_physical_mem_handle_t hPhysicalMem) {
155-
logger::error("{} function not implemented!", __FUNCTION__);
156-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
157-
}
158-
159-
UR_APIEXPORT ur_result_t UR_APICALL urPhysicalMemGetInfo(
160-
ur_physical_mem_handle_t hPhysicalMem, ur_physical_mem_info_t propName,
161-
size_t propSize, void *pPropValue, size_t *pPropSizeRet) {
162-
logger::error("{} function not implemented!", __FUNCTION__);
163-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
164-
}
165-
16691
ur_result_t
16792
urKernelSetArgSampler(ur_kernel_handle_t hKernel, uint32_t argIndex,
16893
const ur_kernel_arg_sampler_properties_t *pProperties,

source/adapters/level_zero/virtual_mem.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
//===----------------------------------------------------------------------===//
1010

1111
#include "common.hpp"
12-
#include "context.hpp"
1312
#include "device.hpp"
1413
#include "logger/ur_logger.hpp"
1514
#include "physical_mem.hpp"
16-
#include "ur_level_zero.hpp"
15+
16+
#ifdef UR_ADAPTER_LEVEL_ZERO_V2
17+
#include "v2/context.hpp"
18+
#else
19+
#include "context.hpp"
20+
#endif
1721

1822
namespace ur::level_zero {
1923

@@ -30,7 +34,7 @@ ur_result_t urVirtualMemGranularityGetInfo(
3034
// aligned size.
3135
size_t PageSize;
3236
ZE2UR_CALL(zeVirtualMemQueryPageSize,
33-
(hContext->ZeContext, hDevice->ZeDevice, 1, &PageSize));
37+
(hContext->getZeHandle(), hDevice->ZeDevice, 1, &PageSize));
3438
return ReturnValue(PageSize);
3539
}
3640
default:
@@ -44,14 +48,15 @@ ur_result_t urVirtualMemGranularityGetInfo(
4448
ur_result_t urVirtualMemReserve(ur_context_handle_t hContext,
4549
const void *pStart, size_t size,
4650
void **ppStart) {
47-
ZE2UR_CALL(zeVirtualMemReserve, (hContext->ZeContext, pStart, size, ppStart));
51+
ZE2UR_CALL(zeVirtualMemReserve,
52+
(hContext->getZeHandle(), pStart, size, ppStart));
4853

4954
return UR_RESULT_SUCCESS;
5055
}
5156

5257
ur_result_t urVirtualMemFree(ur_context_handle_t hContext, const void *pStart,
5358
size_t size) {
54-
ZE2UR_CALL(zeVirtualMemFree, (hContext->ZeContext, pStart, size));
59+
ZE2UR_CALL(zeVirtualMemFree, (hContext->getZeHandle(), pStart, size));
5560

5661
return UR_RESULT_SUCCESS;
5762
}
@@ -66,7 +71,7 @@ ur_result_t urVirtualMemSetAccess(ur_context_handle_t hContext,
6671
AccessAttr = ZE_MEMORY_ACCESS_ATTRIBUTE_READONLY;
6772

6873
ZE2UR_CALL(zeVirtualMemSetAccessAttribute,
69-
(hContext->ZeContext, pStart, size, AccessAttr));
74+
(hContext->getZeHandle(), pStart, size, AccessAttr));
7075

7176
return UR_RESULT_SUCCESS;
7277
}
@@ -82,15 +87,15 @@ ur_result_t urVirtualMemMap(ur_context_handle_t hContext, const void *pStart,
8287
AccessAttr = ZE_MEMORY_ACCESS_ATTRIBUTE_READONLY;
8388

8489
ZE2UR_CALL(zeVirtualMemMap,
85-
(hContext->ZeContext, pStart, size, hPhysicalMem->ZePhysicalMem,
86-
offset, AccessAttr));
90+
(hContext->getZeHandle(), pStart, size,
91+
hPhysicalMem->ZePhysicalMem, offset, AccessAttr));
8792

8893
return UR_RESULT_SUCCESS;
8994
}
9095

9196
ur_result_t urVirtualMemUnmap(ur_context_handle_t hContext, const void *pStart,
9297
size_t size) {
93-
ZE2UR_CALL(zeVirtualMemUnmap, (hContext->ZeContext, pStart, size));
98+
ZE2UR_CALL(zeVirtualMemUnmap, (hContext->getZeHandle(), pStart, size));
9499

95100
return UR_RESULT_SUCCESS;
96101
}
@@ -106,7 +111,7 @@ ur_result_t urVirtualMemGetInfo(ur_context_handle_t hContext,
106111
size_t QuerySize;
107112
ze_memory_access_attribute_t Access;
108113
ZE2UR_CALL(zeVirtualMemGetAccessAttribute,
109-
(hContext->ZeContext, pStart, size, &Access, &QuerySize));
114+
(hContext->getZeHandle(), pStart, size, &Access, &QuerySize));
110115
ur_virtual_mem_access_flags_t RetFlags = 0;
111116
if (Access & ZE_MEMORY_ACCESS_ATTRIBUTE_READWRITE)
112117
RetFlags |= UR_VIRTUAL_MEM_ACCESS_FLAG_READ_WRITE;

test/conformance/enqueue/enqueue_adapter_level_zero_v2.match

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
urEnqueueKernelLaunchTest.InvalidKernelArgs/*
22
urEnqueueKernelLaunchKernelWgSizeTest.Success/*
3-
urEnqueueKernelLaunchWithVirtualMemory.Success/*
43
{{OPT}}urEnqueueKernelLaunchIncrementTest.Success/*__UseEventsEnabled
54
{{OPT}}urEnqueueKernelLaunchIncrementTest.Success/*__UseEventsDisabled
65
{{OPT}}urEnqueueKernelLaunchIncrementMultiDeviceMultiThreadTest.Success/UseEventsNoQueuePerThread
Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,6 @@
1-
urPhysicalMemCreateWithSizeParamTest.Success/*
2-
urPhysicalMemCreateWithFlagsParamTest.Success/*
3-
urPhysicalMemCreateTest.InvalidNullHandleContext/*
4-
urPhysicalMemCreateTest.InvalidNullHandleDevice/*
5-
urPhysicalMemCreateTest.InvalidNullPointerPhysicalMem/*
6-
urPhysicalMemCreateTest.InvalidEnumeration/*
1+
{{OPT}}urPhysicalMemCreateWithSizeParamTest.Success/*
72
urPhysicalMemCreateWithSizeParamTest.InvalidSize/*
8-
urPhysicalMemReleaseTest.Success/*
9-
urPhysicalMemReleaseTest.InvalidNullHandlePhysicalMem/*
10-
urPhysicalMemRetainTest.Success/*
11-
urPhysicalMemRetainTest.InvalidNullHandlePhysicalMem/*
123
urPhysicalMemGetInfoTest.Context/*
134
urPhysicalMemGetInfoTest.Device/*
145
urPhysicalMemGetInfoTest.Size/*
156
urPhysicalMemGetInfoTest.Properties/*
16-
urPhysicalMemGetInfoTest.ReferenceCount/*
17-
urVirtualMemFreeTest.Success/*
18-
urVirtualMemFreeTest.InvalidNullHandleContext/*
19-
urVirtualMemFreeTest.InvalidNullPointerStart/*
20-
urVirtualMemGetInfoTestWithParam.Success/*__UR_VIRTUAL_MEM_INFO_ACCESS_MODE
21-
urVirtualMemGetInfoTest.InvalidNullHandleContext/*
22-
urVirtualMemGetInfoTest.InvalidNullPointerStart/*
23-
urVirtualMemGetInfoTest.InvalidEnumerationInfo/*
24-
urVirtualMemGranularityGetInfoTest.Success/*__UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM
25-
urVirtualMemGranularityGetInfoTest.Success/*__UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED
26-
urVirtualMemGranularityGetInfoNegativeTest.InvalidSizePropSizeSmall/*
27-
urVirtualMemMapWithFlagsTest.Success/*
28-
urVirtualMemMapTest.InvalidNullHandleContext/*
29-
urVirtualMemMapTest.InvalidNullHandlePhysicalMem/*
30-
urVirtualMemMapTest.InvalidNullPointerStart/*
31-
urVirtualMemMapTest.InvalidEnumerationFlags/*
32-
urVirtualMemReserveTestWithParam.SuccessNoStartPointer/*
33-
urVirtualMemReserveTestWithParam.SuccessWithStartPointer/*
34-
urVirtualMemReserveTest.InvalidNullHandleContext/*
35-
urVirtualMemReserveTest.InvalidNullPointer/*
36-
urVirtualMemSetAccessWithFlagsTest.Success/*
37-
urVirtualMemSetAccessTest.InvalidNullHandleContext/*
38-
urVirtualMemSetAccessTest.InvalidNullPointerStart/*
39-
urVirtualMemSetAccessTest.InvalidEnumeration/*
40-
urVirtualMemUnmapTest.Success/*
41-
urVirtualMemUnmapTest.InvalidNullHandleContext/*
42-
urVirtualMemUnmapTest.InvalidNullPointerStart/*

0 commit comments

Comments
 (0)