Skip to content

Commit 10d0f17

Browse files
committed
[L0 v2] enable functions realted to virtual/physical memory management
1 parent 9ca6913 commit 10d0f17

File tree

7 files changed

+33
-118
lines changed

7 files changed

+33
-118
lines changed

source/adapters/level_zero/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ if(UR_BUILD_ADAPTER_L0_V2)
125125
${CMAKE_CURRENT_SOURCE_DIR}/common.hpp
126126
${CMAKE_CURRENT_SOURCE_DIR}/device.hpp
127127
${CMAKE_CURRENT_SOURCE_DIR}/platform.hpp
128+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.hpp
128129
${CMAKE_CURRENT_SOURCE_DIR}/program.hpp
129130
${CMAKE_CURRENT_SOURCE_DIR}/helpers/kernel_helpers.hpp
130131
${CMAKE_CURRENT_SOURCE_DIR}/helpers/memory_helpers.hpp
@@ -133,10 +134,12 @@ if(UR_BUILD_ADAPTER_L0_V2)
133134
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
134135
${CMAKE_CURRENT_SOURCE_DIR}/ur_interface_loader.cpp
135136
${CMAKE_CURRENT_SOURCE_DIR}/platform.cpp
137+
${CMAKE_CURRENT_SOURCE_DIR}/physical_mem.cpp
136138
${CMAKE_CURRENT_SOURCE_DIR}/program.cpp
137139
${CMAKE_CURRENT_SOURCE_DIR}/helpers/kernel_helpers.cpp
138140
${CMAKE_CURRENT_SOURCE_DIR}/helpers/memory_helpers.cpp
139141
${CMAKE_CURRENT_SOURCE_DIR}/usm_p2p.cpp
142+
${CMAKE_CURRENT_SOURCE_DIR}/virtual_mem.cpp
140143
${CMAKE_CURRENT_SOURCE_DIR}/../../ur/ur.cpp
141144
# v2-only sources
142145
${CMAKE_CURRENT_SOURCE_DIR}/v2/command_list_cache.hpp

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 & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -88,74 +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-
15991
ur_result_t
16092
urKernelSetArgSampler(ur_kernel_handle_t hKernel, uint32_t argIndex,
16193
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

test/conformance/memory/urMemImageCreateWithNativeHandle.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ UUR_INSTANTIATE_DEVICE_TEST_SUITE_P(urMemImageCreateWithNativeHandleTest);
1010

1111
TEST_P(urMemImageCreateWithNativeHandleTest, Success) {
1212
ur_native_handle_t native_handle = 0;
13-
UUR_ASSERT_SUCCESS_OR_UNSUPPORTED(urMemGetNativeHandle(image, device, &native_handle));
13+
UUR_ASSERT_SUCCESS_OR_UNSUPPORTED(
14+
urMemGetNativeHandle(image, device, &native_handle));
1415

1516
ur_mem_handle_t mem = nullptr;
1617
ASSERT_SUCCESS(urMemImageCreateWithNativeHandle(
Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,5 @@
1-
urPhysicalMemCreateTest.Success/*
2-
urPhysicalMemCreateTest.InvalidNullHandleContext/*
3-
urPhysicalMemCreateTest.InvalidNullHandleDevice/*
4-
urPhysicalMemCreateTest.InvalidNullPointerPhysicalMem/*
1+
{{OPT}}urPhysicalMemCreateTest.Success/*__3
2+
{{OPT}}urPhysicalMemCreateTest.Success/*__7
3+
{{OPT}}urPhysicalMemCreateTest.Success/*__12
4+
urPhysicalMemCreateTest.Success/*__44
55
urPhysicalMemCreateTest.InvalidSize/*
6-
urPhysicalMemReleaseTest.Success/*
7-
urPhysicalMemReleaseTest.InvalidNullHandlePhysicalMem/*
8-
urPhysicalMemRetainTest.Success/*
9-
urPhysicalMemRetainTest.InvalidNullHandlePhysicalMem/*
10-
urVirtualMemFreeTest.Success/*
11-
urVirtualMemFreeTest.InvalidNullHandleContext/*
12-
urVirtualMemFreeTest.InvalidNullPointerStart/*
13-
urVirtualMemGetInfoTestWithParam.Success/*__UR_VIRTUAL_MEM_INFO_ACCESS_MODE
14-
urVirtualMemGetInfoTest.InvalidNullHandleContext/*
15-
urVirtualMemGetInfoTest.InvalidNullPointerStart/*
16-
urVirtualMemGetInfoTest.InvalidEnumerationInfo/*
17-
urVirtualMemGranularityGetInfoTest.Success/*__UR_VIRTUAL_MEM_GRANULARITY_INFO_MINIMUM
18-
urVirtualMemGranularityGetInfoTest.Success/*__UR_VIRTUAL_MEM_GRANULARITY_INFO_RECOMMENDED
19-
urVirtualMemGranularityGetInfoNegativeTest.InvalidSizePropSizeSmall/*
20-
urVirtualMemMapTest.Success/*
21-
urVirtualMemMapTest.InvalidNullHandleContext/*
22-
urVirtualMemMapTest.InvalidNullHandlePhysicalMem/*
23-
urVirtualMemMapTest.InvalidNullPointerStart/*
24-
urVirtualMemMapTest.InvalidEnumerationFlags/*
25-
urVirtualMemReserveTestWithParam.SuccessNoStartPointer/*
26-
urVirtualMemReserveTestWithParam.SuccessWithStartPointer/*
27-
urVirtualMemReserveTest.InvalidNullHandleContext/*
28-
urVirtualMemReserveTest.InvalidNullPointer/*
29-
urVirtualMemSetAccessTest.Success/*
30-
urVirtualMemSetAccessTest.InvalidNullHandleContext/*
31-
urVirtualMemSetAccessTest.InvalidNullPointerStart/*
32-
urVirtualMemUnmapTest.Success/*
33-
urVirtualMemUnmapTest.InvalidNullHandleContext/*
34-
urVirtualMemUnmapTest.InvalidNullPointerStart/*

0 commit comments

Comments
 (0)