Skip to content

Commit bf7b00d

Browse files
Jaime ArteagaCompute-Runtime-Automation
authored andcommitted
Add stubs for virtual memory
Change-Id: Ia789b2507a44c2e8599bcb64d750b89db7c574c9 Signed-off: Jaime Arteaga <[email protected]>
1 parent 7dc8bbc commit bf7b00d

File tree

6 files changed

+564
-0
lines changed

6 files changed

+564
-0
lines changed

level_zero/api/core/ze_context.cpp

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,84 @@ zeContextGetStatus(ze_context_handle_t hContext) {
3131
return L0::Context::fromHandle(hContext)->getStatus();
3232
}
3333

34+
ZE_APIEXPORT ze_result_t ZE_APICALL
35+
zeVirtualMemReserve(
36+
ze_context_handle_t hContext,
37+
const void *pStart,
38+
size_t size,
39+
void **pptr) {
40+
return L0::Context::fromHandle(hContext)->reserveVirtualMem(pStart, size, pptr);
41+
}
42+
43+
ZE_APIEXPORT ze_result_t ZE_APICALL
44+
zeVirtualMemFree(
45+
ze_context_handle_t hContext,
46+
const void *ptr,
47+
size_t size) {
48+
return L0::Context::fromHandle(hContext)->freeVirtualMem(ptr, size);
49+
}
50+
51+
ZE_APIEXPORT ze_result_t ZE_APICALL
52+
zeVirtualMemQueryPageSize(
53+
ze_context_handle_t hContext,
54+
ze_device_handle_t hDevice,
55+
size_t size,
56+
size_t *pagesize) {
57+
return L0::Context::fromHandle(hContext)->queryVirtualMemPageSize(hDevice, size, pagesize);
58+
}
59+
60+
ZE_APIEXPORT ze_result_t ZE_APICALL
61+
zePhysicalMemCreate(
62+
ze_context_handle_t hContext,
63+
ze_device_handle_t hDevice,
64+
ze_physical_mem_desc_t *desc,
65+
ze_physical_mem_handle_t *phPhysicalMemory) {
66+
return L0::Context::fromHandle(hContext)->createPhysicalMem(hDevice, desc, phPhysicalMemory);
67+
}
68+
69+
ZE_APIEXPORT ze_result_t ZE_APICALL
70+
zePhysicalMemDestroy(
71+
ze_context_handle_t hContext,
72+
ze_physical_mem_handle_t hPhysicalMemory) {
73+
return L0::Context::fromHandle(hContext)->destroyPhysicalMem(hPhysicalMemory);
74+
}
75+
76+
ZE_APIEXPORT ze_result_t ZE_APICALL
77+
zeVirtualMemMap(
78+
ze_context_handle_t hContext,
79+
const void *ptr,
80+
size_t size,
81+
ze_physical_mem_handle_t hPhysicalMemory,
82+
size_t offset,
83+
ze_memory_access_attribute_t access) {
84+
return L0::Context::fromHandle(hContext)->mapVirtualMem(ptr, size, hPhysicalMemory, offset, access);
85+
}
86+
87+
ZE_APIEXPORT ze_result_t ZE_APICALL
88+
zeVirtualMemUnmap(
89+
ze_context_handle_t hContext,
90+
const void *ptr,
91+
size_t size) {
92+
return L0::Context::fromHandle(hContext)->unMapVirtualMem(ptr, size);
93+
}
94+
95+
ZE_APIEXPORT ze_result_t ZE_APICALL
96+
zeVirtualMemSetAccessAttribute(
97+
ze_context_handle_t hContext,
98+
const void *ptr,
99+
size_t size,
100+
ze_memory_access_attribute_t access) {
101+
return L0::Context::fromHandle(hContext)->setVirtualMemAccessAttribute(ptr, size, access);
102+
}
103+
104+
ZE_APIEXPORT ze_result_t ZE_APICALL
105+
zeVirtualMemGetAccessAttribute(
106+
ze_context_handle_t hContext,
107+
const void *ptr,
108+
size_t size,
109+
ze_memory_access_attribute_t *access,
110+
size_t *outSize) {
111+
return L0::Context::fromHandle(hContext)->getVirtualMemAccessAttribute(ptr, size, access, outSize);
112+
}
113+
34114
} // extern "C"

level_zero/core/source/context/context.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,32 @@ struct Context : _ze_context_handle_t {
7272
virtual ze_result_t activateMetricGroups(zet_device_handle_t hDevice,
7373
uint32_t count,
7474
zet_metric_group_handle_t *phMetricGroups) = 0;
75+
virtual ze_result_t reserveVirtualMem(const void *pStart,
76+
size_t size,
77+
void **pptr) = 0;
78+
virtual ze_result_t freeVirtualMem(const void *ptr,
79+
size_t size) = 0;
80+
virtual ze_result_t queryVirtualMemPageSize(ze_device_handle_t hDevice,
81+
size_t size,
82+
size_t *pagesize) = 0;
83+
virtual ze_result_t createPhysicalMem(ze_device_handle_t hDevice,
84+
ze_physical_mem_desc_t *desc,
85+
ze_physical_mem_handle_t *phPhysicalMemory) = 0;
86+
virtual ze_result_t destroyPhysicalMem(ze_physical_mem_handle_t hPhysicalMemory) = 0;
87+
virtual ze_result_t mapVirtualMem(const void *ptr,
88+
size_t size,
89+
ze_physical_mem_handle_t hPhysicalMemory,
90+
size_t offset,
91+
ze_memory_access_attribute_t access) = 0;
92+
virtual ze_result_t unMapVirtualMem(const void *ptr,
93+
size_t size) = 0;
94+
virtual ze_result_t setVirtualMemAccessAttribute(const void *ptr,
95+
size_t size,
96+
ze_memory_access_attribute_t access) = 0;
97+
virtual ze_result_t getVirtualMemAccessAttribute(const void *ptr,
98+
size_t size,
99+
ze_memory_access_attribute_t *access,
100+
size_t *outSize) = 0;
75101

76102
static Context *fromHandle(ze_context_handle_t handle) { return static_cast<Context *>(handle); }
77103
inline ze_context_handle_t toHandle() { return this; }

level_zero/core/source/context/context_imp.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,57 @@ ze_result_t ContextImp::activateMetricGroups(zet_device_handle_t hDevice,
150150
return L0::Device::fromHandle(hDevice)->activateMetricGroups(count, phMetricGroups);
151151
}
152152

153+
ze_result_t ContextImp::reserveVirtualMem(const void *pStart,
154+
size_t size,
155+
void **pptr) {
156+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
157+
}
158+
159+
ze_result_t ContextImp::freeVirtualMem(const void *ptr,
160+
size_t size) {
161+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
162+
}
163+
164+
ze_result_t ContextImp::queryVirtualMemPageSize(ze_device_handle_t hDevice,
165+
size_t size,
166+
size_t *pagesize) {
167+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
168+
}
169+
170+
ze_result_t ContextImp::createPhysicalMem(ze_device_handle_t hDevice,
171+
ze_physical_mem_desc_t *desc,
172+
ze_physical_mem_handle_t *phPhysicalMemory) {
173+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
174+
}
175+
176+
ze_result_t ContextImp::destroyPhysicalMem(ze_physical_mem_handle_t hPhysicalMemory) {
177+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
178+
}
179+
180+
ze_result_t ContextImp::mapVirtualMem(const void *ptr,
181+
size_t size,
182+
ze_physical_mem_handle_t hPhysicalMemory,
183+
size_t offset,
184+
ze_memory_access_attribute_t access) {
185+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
186+
}
187+
188+
ze_result_t ContextImp::unMapVirtualMem(const void *ptr,
189+
size_t size) {
190+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
191+
}
192+
193+
ze_result_t ContextImp::setVirtualMemAccessAttribute(const void *ptr,
194+
size_t size,
195+
ze_memory_access_attribute_t access) {
196+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
197+
}
198+
199+
ze_result_t ContextImp::getVirtualMemAccessAttribute(const void *ptr,
200+
size_t size,
201+
ze_memory_access_attribute_t *access,
202+
size_t *outSize) {
203+
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
204+
}
205+
153206
} // namespace L0

level_zero/core/source/context/context_imp.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,32 @@ struct ContextImp : Context {
6565
ze_result_t activateMetricGroups(zet_device_handle_t hDevice,
6666
uint32_t count,
6767
zet_metric_group_handle_t *phMetricGroups) override;
68+
ze_result_t reserveVirtualMem(const void *pStart,
69+
size_t size,
70+
void **pptr) override;
71+
ze_result_t freeVirtualMem(const void *ptr,
72+
size_t size) override;
73+
ze_result_t queryVirtualMemPageSize(ze_device_handle_t hDevice,
74+
size_t size,
75+
size_t *pagesize) override;
76+
ze_result_t createPhysicalMem(ze_device_handle_t hDevice,
77+
ze_physical_mem_desc_t *desc,
78+
ze_physical_mem_handle_t *phPhysicalMemory) override;
79+
ze_result_t destroyPhysicalMem(ze_physical_mem_handle_t hPhysicalMemory) override;
80+
ze_result_t mapVirtualMem(const void *ptr,
81+
size_t size,
82+
ze_physical_mem_handle_t hPhysicalMemory,
83+
size_t offset,
84+
ze_memory_access_attribute_t access) override;
85+
ze_result_t unMapVirtualMem(const void *ptr,
86+
size_t size) override;
87+
ze_result_t setVirtualMemAccessAttribute(const void *ptr,
88+
size_t size,
89+
ze_memory_access_attribute_t access) override;
90+
ze_result_t getVirtualMemAccessAttribute(const void *ptr,
91+
size_t size,
92+
ze_memory_access_attribute_t *access,
93+
size_t *outSize) override;
6894

6995
protected:
7096
DriverHandle *driverHandle = nullptr;

level_zero/core/test/unit_tests/mocks/mock_context.h

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,59 @@ struct Mock<Context> : public Context {
124124
const ze_command_queue_desc_t *desc,
125125
ze_command_list_handle_t *commandList),
126126
(override));
127+
MOCK_METHOD(ze_result_t,
128+
reserveVirtualMem,
129+
(const void *pStart,
130+
size_t size,
131+
void **pptr),
132+
(override));
133+
MOCK_METHOD(ze_result_t,
134+
freeVirtualMem,
135+
(const void *ptr,
136+
size_t size),
137+
(override));
138+
MOCK_METHOD(ze_result_t,
139+
queryVirtualMemPageSize,
140+
(ze_device_handle_t hDevice,
141+
size_t size,
142+
size_t *pagesize),
143+
(override));
144+
MOCK_METHOD(ze_result_t,
145+
createPhysicalMem,
146+
(ze_device_handle_t hDevice,
147+
ze_physical_mem_desc_t *desc,
148+
ze_physical_mem_handle_t *phPhysicalMemory),
149+
(override));
150+
MOCK_METHOD(ze_result_t,
151+
destroyPhysicalMem,
152+
(ze_physical_mem_handle_t hPhysicalMemory),
153+
(override));
154+
MOCK_METHOD(ze_result_t,
155+
mapVirtualMem,
156+
(const void *ptr,
157+
size_t size,
158+
ze_physical_mem_handle_t hPhysicalMemory,
159+
size_t offset,
160+
ze_memory_access_attribute_t access),
161+
(override));
162+
MOCK_METHOD(ze_result_t,
163+
unMapVirtualMem,
164+
(const void *ptr,
165+
size_t size),
166+
(override));
167+
MOCK_METHOD(ze_result_t,
168+
setVirtualMemAccessAttribute,
169+
(const void *ptr,
170+
size_t size,
171+
ze_memory_access_attribute_t access),
172+
(override));
173+
MOCK_METHOD(ze_result_t,
174+
getVirtualMemAccessAttribute,
175+
(const void *ptr,
176+
size_t size,
177+
ze_memory_access_attribute_t *access,
178+
size_t *outSize),
179+
(override));
127180
};
128181

129182
} // namespace ult

0 commit comments

Comments
 (0)