@@ -201,6 +201,17 @@ ur_result_t ur_context_handle_t_::initialize() {
201
201
.Configs [usm::DisjointPoolMemType::Device])
202
202
.second ));
203
203
204
+ MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider>(
205
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
206
+ .second ;
207
+ AsyncDeviceMemPools.emplace (
208
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
209
+ std::make_tuple (umf::poolMakeUniqueFromOps (
210
+ umfDisjointPoolOps (), std::move (MemProvider),
211
+ &DisjointPoolConfigInstance
212
+ .Configs [usm::DisjointPoolMemType::Device])
213
+ .second ));
214
+
204
215
MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider>(
205
216
reinterpret_cast <ur_context_handle_t >(this ), Device)
206
217
.second ;
@@ -212,6 +223,17 @@ ur_result_t ur_context_handle_t_::initialize() {
212
223
.Configs [usm::DisjointPoolMemType::Shared])
213
224
.second ));
214
225
226
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider>(
227
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
228
+ .second ;
229
+ AsyncSharedMemPools.emplace (
230
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
231
+ std::make_tuple (umf::poolMakeUniqueFromOps (
232
+ umfDisjointPoolOps (), std::move (MemProvider),
233
+ &DisjointPoolConfigInstance
234
+ .Configs [usm::DisjointPoolMemType::Shared])
235
+ .second ));
236
+
215
237
MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
216
238
reinterpret_cast <ur_context_handle_t >(this ), Device)
217
239
.second ;
@@ -224,6 +246,18 @@ ur_result_t ur_context_handle_t_::initialize() {
224
246
.Configs [usm::DisjointPoolMemType::SharedReadOnly])
225
247
.second ));
226
248
249
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
250
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
251
+ .second ;
252
+ AsyncSharedReadOnlyMemPools.emplace (
253
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
254
+ std::make_tuple (
255
+ umf::poolMakeUniqueFromOps (
256
+ umfDisjointPoolOps (), std::move (MemProvider),
257
+ &DisjointPoolConfigInstance
258
+ .Configs [usm::DisjointPoolMemType::SharedReadOnly])
259
+ .second ));
260
+
227
261
MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider>(
228
262
reinterpret_cast <ur_context_handle_t >(this ), Device)
229
263
.second ;
@@ -276,6 +310,15 @@ ur_result_t ur_context_handle_t_::initialize() {
276
310
&DisjointPoolConfigInstance.Configs [usm::DisjointPoolMemType::Host])
277
311
.second ;
278
312
313
+ MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider>(
314
+ reinterpret_cast <ur_context_handle_t >(this ), nullptr )
315
+ .second ;
316
+ AsyncHostMemPool =
317
+ umf::poolMakeUniqueFromOps (
318
+ umfDisjointPoolOps (), std::move (MemProvider),
319
+ &DisjointPoolConfigInstance.Configs [usm::DisjointPoolMemType::Host])
320
+ .second ;
321
+
279
322
MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider>(
280
323
reinterpret_cast <ur_context_handle_t >(this ), nullptr )
281
324
.second ;
0 commit comments