@@ -182,7 +182,7 @@ ur_result_t ur_context_handle_t_::initialize() {
182
182
// Note that the CCS devices and their respective subdevices share a
183
183
// common ze_device_handle and therefore, also share USM allocators.
184
184
auto createUSMAllocators = [this ](ur_device_handle_t Device) {
185
- auto MemProvider = umf::memoryProviderMakeUnique<USMDeviceMemoryProvider >(
185
+ auto MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider >(
186
186
reinterpret_cast <ur_context_handle_t >(this ), Device)
187
187
.second ;
188
188
DeviceMemPools.emplace (
@@ -193,7 +193,7 @@ ur_result_t ur_context_handle_t_::initialize() {
193
193
.Configs [usm::DisjointPoolMemType::Device])
194
194
.second ));
195
195
196
- MemProvider = umf::memoryProviderMakeUnique<USMSharedMemoryProvider >(
196
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider >(
197
197
reinterpret_cast <ur_context_handle_t >(this ), Device)
198
198
.second ;
199
199
SharedMemPools.emplace (
@@ -204,10 +204,9 @@ ur_result_t ur_context_handle_t_::initialize() {
204
204
.Configs [usm::DisjointPoolMemType::Shared])
205
205
.second ));
206
206
207
- MemProvider =
208
- umf::memoryProviderMakeUnique<USMSharedReadOnlyMemoryProvider>(
209
- reinterpret_cast <ur_context_handle_t >(this ), Device)
210
- .second ;
207
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
208
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
209
+ .second ;
211
210
SharedReadOnlyMemPools.emplace (
212
211
std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
213
212
std::make_tuple (
@@ -216,6 +215,33 @@ ur_result_t ur_context_handle_t_::initialize() {
216
215
DisjointPoolConfigInstance
217
216
.Configs [usm::DisjointPoolMemType::SharedReadOnly])
218
217
.second ));
218
+
219
+ MemProvider = umf::memoryProviderMakeUnique<L0DeviceMemoryProvider>(
220
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
221
+ .second ;
222
+ DeviceMemProxyPools.emplace (
223
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
224
+ std::make_tuple (
225
+ umf::poolMakeUnique<USMProxyPool, 1 >({std::move (MemProvider)})
226
+ .second ));
227
+
228
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedMemoryProvider>(
229
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
230
+ .second ;
231
+ SharedMemProxyPools.emplace (
232
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
233
+ std::make_tuple (
234
+ umf::poolMakeUnique<USMProxyPool, 1 >({std::move (MemProvider)})
235
+ .second ));
236
+
237
+ MemProvider = umf::memoryProviderMakeUnique<L0SharedReadOnlyMemoryProvider>(
238
+ reinterpret_cast <ur_context_handle_t >(this ), Device)
239
+ .second ;
240
+ SharedReadOnlyMemProxyPools.emplace (
241
+ std::piecewise_construct, std::make_tuple (Device->ZeDevice ),
242
+ std::make_tuple (
243
+ umf::poolMakeUnique<USMProxyPool, 1 >({std::move (MemProvider)})
244
+ .second ));
219
245
};
220
246
221
247
// Recursive helper to call createUSMAllocators for all sub-devices
@@ -236,7 +262,7 @@ ur_result_t ur_context_handle_t_::initialize() {
236
262
// Create USM pool for host. Device and Shared USM allocations
237
263
// are device-specific. Host allocations are not device-dependent therefore
238
264
// we don't need a map with device as key.
239
- auto MemProvider = umf::memoryProviderMakeUnique<USMHostMemoryProvider >(
265
+ auto MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider >(
240
266
reinterpret_cast <ur_context_handle_t >(this ), nullptr )
241
267
.second ;
242
268
HostMemPool =
@@ -245,6 +271,12 @@ ur_result_t ur_context_handle_t_::initialize() {
245
271
DisjointPoolConfigInstance.Configs [usm::DisjointPoolMemType::Host])
246
272
.second ;
247
273
274
+ MemProvider = umf::memoryProviderMakeUnique<L0HostMemoryProvider>(
275
+ reinterpret_cast <ur_context_handle_t >(this ), nullptr )
276
+ .second ;
277
+ HostMemProxyPool =
278
+ umf::poolMakeUnique<USMProxyPool, 1 >({std::move (MemProvider)}).second ;
279
+
248
280
// We may allocate memory to this root device so create allocators.
249
281
if (SingleRootDevice &&
250
282
DeviceMemPools.find (SingleRootDevice->ZeDevice ) == DeviceMemPools.end ()) {
0 commit comments