@@ -204,6 +204,17 @@ ur_result_t ur_context_handle_t_::initialize() {
204
204
.Configs [usm::DisjointPoolMemType::Device])
205
205
.second ));
206
206
207
+ MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider>(
208
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
209
+ .second ;
210
+ AsyncDeviceMemPools.emplace (
211
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
212
+ std::make_tuple (umf::poolMakeUniqueFromOps (
213
+ umfDisjointPoolOps (), std::move (MemProvider),
214
+ &DisjointPoolConfigInstance
215
+ .Configs [usm::DisjointPoolMemType::Device])
216
+ .second ));
217
+
207
218
MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider>(
208
219
reinterpret_cast <ur_context_handle_t >(this ), Device)
209
220
.second ;
@@ -215,6 +226,17 @@ ur_result_t ur_context_handle_t_::initialize() {
215
226
.Configs [usm::DisjointPoolMemType::Shared])
216
227
.second ));
217
228
229
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider>(
230
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
231
+ .second ;
232
+ AsyncSharedMemPools.emplace (
233
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
234
+ std::make_tuple (umf::poolMakeUniqueFromOps (
235
+ umfDisjointPoolOps (), std::move (MemProvider),
236
+ &DisjointPoolConfigInstance
237
+ .Configs [usm::DisjointPoolMemType::Shared])
238
+ .second ));
239
+
218
240
MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
219
241
reinterpret_cast <ur_context_handle_t >(this ), Device)
220
242
.second ;
@@ -227,6 +249,18 @@ ur_result_t ur_context_handle_t_::initialize() {
227
249
.Configs [usm::DisjointPoolMemType::SharedReadOnly])
228
250
.second ));
229
251
252
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
253
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
254
+ .second ;
255
+ AsyncSharedReadOnlyMemPools.emplace (
256
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
257
+ std::make_tuple (
258
+ umf::poolMakeUniqueFromOps (
259
+ umfDisjointPoolOps (), std::move (MemProvider),
260
+ &DisjointPoolConfigInstance
261
+ .Configs [usm::DisjointPoolMemType::SharedReadOnly])
262
+ .second ));
263
+
230
264
MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider>(
231
265
reinterpret_cast <ur_context_handle_t >(this ), Device)
232
266
.second ;
@@ -279,6 +313,15 @@ ur_result_t ur_context_handle_t_::initialize() {
279
313
&DisjointPoolConfigInstance.Configs [usm::DisjointPoolMemType::Host])
280
314
.second ;
281
315
316
+ MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider>(
317
+ reinterpret_cast <ur_context_handle_t >(this ), nullptr )
318
+ .second ;
319
+ AsyncHostMemPool =
320
+ umf::poolMakeUniqueFromOps (
321
+ umfDisjointPoolOps (), std::move (MemProvider),
322
+ &DisjointPoolConfigInstance.Configs [usm::DisjointPoolMemType::Host])
323
+ .second ;
324
+
282
325
MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider>(
283
326
reinterpret_cast <ur_context_handle_t >(this ), nullptr )
284
327
.second ;
0 commit comments