@@ -41,7 +41,7 @@ ur_result_t enqueueEventsWait(ur_queue_handle_t CommandQueue,
41
41
return UR_RESULT_SUCCESS;
42
42
}
43
43
try {
44
- ScopedContext Active (CommandQueue->getContext ());
44
+ ScopedContext Active (CommandQueue->getDevice ());
45
45
46
46
auto Result = forLatestEvents (
47
47
EventWaitList, NumEventsInWaitList,
@@ -97,7 +97,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWrite(
97
97
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
98
98
99
99
try {
100
- ScopedContext Active (hQueue->getContext ());
100
+ ScopedContext Active (hQueue->getDevice ());
101
101
hipStream_t HIPStream = hQueue->getNextTransferStream ();
102
102
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
103
103
phEventWaitList);
@@ -143,7 +143,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferRead(
143
143
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
144
144
145
145
try {
146
- ScopedContext Active (hQueue->getContext ());
146
+ ScopedContext Active (hQueue->getDevice ());
147
147
hipStream_t HIPStream = hQueue->getNextTransferStream ();
148
148
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
149
149
phEventWaitList);
@@ -252,7 +252,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueKernelLaunch(
252
252
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
253
253
254
254
try {
255
- ScopedContext Active (hQueue->getContext ());
255
+ ScopedContext Active (hQueue->getDevice ());
256
256
257
257
uint32_t StreamToken;
258
258
ur_stream_quard Guard;
@@ -363,7 +363,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueEventsWaitWithBarrier(
363
363
ur_result_t Result;
364
364
365
365
try {
366
- ScopedContext Active (hQueue->getContext ());
366
+ ScopedContext Active (hQueue->getDevice ());
367
367
uint32_t StreamToken;
368
368
ur_stream_quard Guard;
369
369
hipStream_t HIPStream = hQueue->getNextComputeStream (
@@ -513,7 +513,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferReadRect(
513
513
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
514
514
515
515
try {
516
- ScopedContext Active (hQueue->getContext ());
516
+ ScopedContext Active (hQueue->getDevice ());
517
517
hipStream_t HIPStream = hQueue->getNextTransferStream ();
518
518
519
519
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
@@ -561,7 +561,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWriteRect(
561
561
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
562
562
563
563
try {
564
- ScopedContext Active (hQueue->getContext ());
564
+ ScopedContext Active (hQueue->getDevice ());
565
565
hipStream_t HIPStream = hQueue->getNextTransferStream ();
566
566
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
567
567
phEventWaitList);
@@ -609,7 +609,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferCopy(
609
609
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
610
610
611
611
try {
612
- ScopedContext Active (hQueue->getContext ());
612
+ ScopedContext Active (hQueue->getDevice ());
613
613
ur_result_t Result;
614
614
auto Stream = hQueue->getNextTransferStream ();
615
615
@@ -656,7 +656,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferCopyRect(
656
656
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
657
657
658
658
try {
659
- ScopedContext Active (hQueue->getContext ());
659
+ ScopedContext Active (hQueue->getDevice ());
660
660
hipStream_t HIPStream = hQueue->getNextTransferStream ();
661
661
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
662
662
phEventWaitList);
@@ -751,7 +751,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferFill(
751
751
std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
752
752
753
753
try {
754
- ScopedContext Active (hQueue->getContext ());
754
+ ScopedContext Active (hQueue->getDevice ());
755
755
756
756
auto Stream = hQueue->getNextTransferStream ();
757
757
ur_result_t Result;
@@ -892,7 +892,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageRead(
892
892
ur_result_t Result = UR_RESULT_SUCCESS;
893
893
894
894
try {
895
- ScopedContext Active (hQueue->getContext ());
895
+ ScopedContext Active (hQueue->getDevice ());
896
896
hipStream_t HIPStream = hQueue->getNextTransferStream ();
897
897
898
898
if (phEventWaitList) {
@@ -954,7 +954,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageWrite(
954
954
ur_result_t Result = UR_RESULT_SUCCESS;
955
955
956
956
try {
957
- ScopedContext Active (hQueue->getContext ());
957
+ ScopedContext Active (hQueue->getDevice ());
958
958
hipStream_t HIPStream = hQueue->getNextTransferStream ();
959
959
960
960
if (phEventWaitList) {
@@ -1020,7 +1020,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageCopy(
1020
1020
ur_result_t Result = UR_RESULT_SUCCESS;
1021
1021
1022
1022
try {
1023
- ScopedContext Active (hQueue->getContext ());
1023
+ ScopedContext Active (hQueue->getDevice ());
1024
1024
hipStream_t HIPStream = hQueue->getNextTransferStream ();
1025
1025
if (phEventWaitList) {
1026
1026
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
@@ -1116,7 +1116,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferMap(
1116
1116
HostPtr, numEventsInWaitList,
1117
1117
phEventWaitList, phEvent);
1118
1118
} else {
1119
- ScopedContext Active (hQueue->getContext ());
1119
+ ScopedContext Active (hQueue->getDevice ());
1120
1120
1121
1121
if (IsPinned) {
1122
1122
Result = urEnqueueEventsWait (hQueue, numEventsInWaitList, phEventWaitList,
@@ -1167,7 +1167,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemUnmap(
1167
1167
hMem->Mem .BufferMem .getMapSize (), pMappedPtr, numEventsInWaitList,
1168
1168
phEventWaitList, phEvent);
1169
1169
} else {
1170
- ScopedContext Active (hQueue->getContext ());
1170
+ ScopedContext Active (hQueue->getDevice ());
1171
1171
1172
1172
if (IsPinned) {
1173
1173
Result = urEnqueueEventsWait (hQueue, numEventsInWaitList, phEventWaitList,
@@ -1198,7 +1198,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMFill(
1198
1198
std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
1199
1199
1200
1200
try {
1201
- ScopedContext Active (hQueue->getContext ());
1201
+ ScopedContext Active (hQueue->getDevice ());
1202
1202
uint32_t StreamToken;
1203
1203
ur_stream_quard Guard;
1204
1204
hipStream_t HIPStream = hQueue->getNextComputeStream (
@@ -1256,7 +1256,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMMemcpy(
1256
1256
std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
1257
1257
1258
1258
try {
1259
- ScopedContext Active (hQueue->getContext ());
1259
+ ScopedContext Active (hQueue->getDevice ());
1260
1260
hipStream_t HIPStream = hQueue->getNextTransferStream ();
1261
1261
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
1262
1262
phEventWaitList);
@@ -1287,6 +1287,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
1287
1287
ur_queue_handle_t hQueue, const void *pMem, size_t size,
1288
1288
ur_usm_migration_flags_t flags, uint32_t numEventsInWaitList,
1289
1289
const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
1290
+ #if HIP_VERSION_MAJOR >= 5
1290
1291
void *HIPDevicePtr = const_cast <void *>(pMem);
1291
1292
unsigned int PointerRangeSize = 0 ;
1292
1293
UR_CHECK_ERROR (hipPointerGetAttribute (&PointerRangeSize,
@@ -1301,7 +1302,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
1301
1302
std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
1302
1303
1303
1304
try {
1304
- ScopedContext Active (hQueue->getContext ());
1305
+ ScopedContext Active (hQueue->getDevice ());
1305
1306
hipStream_t HIPStream = hQueue->getNextTransferStream ();
1306
1307
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
1307
1308
phEventWaitList);
@@ -1311,8 +1312,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
1311
1312
UR_COMMAND_USM_PREFETCH, hQueue, HIPStream));
1312
1313
EventPtr->start ();
1313
1314
}
1314
- Result = UR_CHECK_ERROR (hipMemPrefetchAsync (
1315
- pMem, size, hQueue-> getContext () ->getDevice ()->get (), HIPStream));
1315
+ Result = UR_CHECK_ERROR (
1316
+ hipMemPrefetchAsync ( pMem, size, hQueue->getDevice ()->get (), HIPStream));
1316
1317
if (phEvent) {
1317
1318
Result = EventPtr->record ();
1318
1319
*phEvent = EventPtr.release ();
@@ -1322,11 +1323,15 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
1322
1323
}
1323
1324
1324
1325
return Result;
1326
+ #else
1327
+ return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
1328
+ #endif
1325
1329
}
1326
1330
1327
1331
UR_APIEXPORT ur_result_t UR_APICALL
1328
1332
urEnqueueUSMAdvise (ur_queue_handle_t hQueue, const void *pMem, size_t size,
1329
1333
ur_usm_advice_flags_t , ur_event_handle_t *phEvent) {
1334
+ #if HIP_VERSION_MAJOR >= 5
1330
1335
void *HIPDevicePtr = const_cast <void *>(pMem);
1331
1336
unsigned int PointerRangeSize = 0 ;
1332
1337
UR_CHECK_ERROR (hipPointerGetAttribute (&PointerRangeSize,
@@ -1337,6 +1342,9 @@ urEnqueueUSMAdvise(ur_queue_handle_t hQueue, const void *pMem, size_t size,
1337
1342
// TODO implement a mapping to hipMemAdvise once the expected behaviour
1338
1343
// of urEnqueueUSMAdvise is detailed in the USM extension
1339
1344
return urEnqueueEventsWait (hQueue, 0 , nullptr , phEvent);
1345
+ #else
1346
+ return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
1347
+ #endif
1340
1348
}
1341
1349
1342
1350
UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMFill2D (
@@ -1367,7 +1375,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMMemcpy2D(
1367
1375
ur_result_t Result = UR_RESULT_SUCCESS;
1368
1376
1369
1377
try {
1370
- ScopedContext Active (hQueue->getContext ());
1378
+ ScopedContext Active (hQueue->getDevice ());
1371
1379
hipStream_t HIPStream = hQueue->getNextTransferStream ();
1372
1380
Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
1373
1381
phEventWaitList);
0 commit comments