@@ -41,7 +41,7 @@ ur_result_t enqueueEventsWait(ur_queue_handle_t CommandQueue,
4141 return UR_RESULT_SUCCESS;
4242 }
4343 try {
44- ScopedContext Active (CommandQueue->getContext ());
44+ ScopedContext Active (CommandQueue->getDevice ());
4545
4646 auto Result = forLatestEvents (
4747 EventWaitList, NumEventsInWaitList,
@@ -97,7 +97,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWrite(
9797 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
9898
9999 try {
100- ScopedContext Active (hQueue->getContext ());
100+ ScopedContext Active (hQueue->getDevice ());
101101 hipStream_t HIPStream = hQueue->getNextTransferStream ();
102102 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
103103 phEventWaitList);
@@ -143,7 +143,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferRead(
143143 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
144144
145145 try {
146- ScopedContext Active (hQueue->getContext ());
146+ ScopedContext Active (hQueue->getDevice ());
147147 hipStream_t HIPStream = hQueue->getNextTransferStream ();
148148 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
149149 phEventWaitList);
@@ -252,7 +252,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueKernelLaunch(
252252 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
253253
254254 try {
255- ScopedContext Active (hQueue->getContext ());
255+ ScopedContext Active (hQueue->getDevice ());
256256
257257 uint32_t StreamToken;
258258 ur_stream_quard Guard;
@@ -363,7 +363,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueEventsWaitWithBarrier(
363363 ur_result_t Result;
364364
365365 try {
366- ScopedContext Active (hQueue->getContext ());
366+ ScopedContext Active (hQueue->getDevice ());
367367 uint32_t StreamToken;
368368 ur_stream_quard Guard;
369369 hipStream_t HIPStream = hQueue->getNextComputeStream (
@@ -513,7 +513,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferReadRect(
513513 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
514514
515515 try {
516- ScopedContext Active (hQueue->getContext ());
516+ ScopedContext Active (hQueue->getDevice ());
517517 hipStream_t HIPStream = hQueue->getNextTransferStream ();
518518
519519 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
@@ -561,7 +561,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferWriteRect(
561561 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
562562
563563 try {
564- ScopedContext Active (hQueue->getContext ());
564+ ScopedContext Active (hQueue->getDevice ());
565565 hipStream_t HIPStream = hQueue->getNextTransferStream ();
566566 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
567567 phEventWaitList);
@@ -609,7 +609,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferCopy(
609609 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
610610
611611 try {
612- ScopedContext Active (hQueue->getContext ());
612+ ScopedContext Active (hQueue->getDevice ());
613613 ur_result_t Result;
614614 auto Stream = hQueue->getNextTransferStream ();
615615
@@ -656,7 +656,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferCopyRect(
656656 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
657657
658658 try {
659- ScopedContext Active (hQueue->getContext ());
659+ ScopedContext Active (hQueue->getDevice ());
660660 hipStream_t HIPStream = hQueue->getNextTransferStream ();
661661 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
662662 phEventWaitList);
@@ -751,7 +751,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferFill(
751751 std::unique_ptr<ur_event_handle_t_> RetImplEvent{nullptr };
752752
753753 try {
754- ScopedContext Active (hQueue->getContext ());
754+ ScopedContext Active (hQueue->getDevice ());
755755
756756 auto Stream = hQueue->getNextTransferStream ();
757757 ur_result_t Result;
@@ -892,7 +892,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageRead(
892892 ur_result_t Result = UR_RESULT_SUCCESS;
893893
894894 try {
895- ScopedContext Active (hQueue->getContext ());
895+ ScopedContext Active (hQueue->getDevice ());
896896 hipStream_t HIPStream = hQueue->getNextTransferStream ();
897897
898898 if (phEventWaitList) {
@@ -954,7 +954,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageWrite(
954954 ur_result_t Result = UR_RESULT_SUCCESS;
955955
956956 try {
957- ScopedContext Active (hQueue->getContext ());
957+ ScopedContext Active (hQueue->getDevice ());
958958 hipStream_t HIPStream = hQueue->getNextTransferStream ();
959959
960960 if (phEventWaitList) {
@@ -1020,7 +1020,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemImageCopy(
10201020 ur_result_t Result = UR_RESULT_SUCCESS;
10211021
10221022 try {
1023- ScopedContext Active (hQueue->getContext ());
1023+ ScopedContext Active (hQueue->getDevice ());
10241024 hipStream_t HIPStream = hQueue->getNextTransferStream ();
10251025 if (phEventWaitList) {
10261026 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
@@ -1116,7 +1116,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemBufferMap(
11161116 HostPtr, numEventsInWaitList,
11171117 phEventWaitList, phEvent);
11181118 } else {
1119- ScopedContext Active (hQueue->getContext ());
1119+ ScopedContext Active (hQueue->getDevice ());
11201120
11211121 if (IsPinned) {
11221122 Result = urEnqueueEventsWait (hQueue, numEventsInWaitList, phEventWaitList,
@@ -1167,7 +1167,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemUnmap(
11671167 hMem->Mem .BufferMem .getMapSize (), pMappedPtr, numEventsInWaitList,
11681168 phEventWaitList, phEvent);
11691169 } else {
1170- ScopedContext Active (hQueue->getContext ());
1170+ ScopedContext Active (hQueue->getDevice ());
11711171
11721172 if (IsPinned) {
11731173 Result = urEnqueueEventsWait (hQueue, numEventsInWaitList, phEventWaitList,
@@ -1198,7 +1198,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMFill(
11981198 std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
11991199
12001200 try {
1201- ScopedContext Active (hQueue->getContext ());
1201+ ScopedContext Active (hQueue->getDevice ());
12021202 uint32_t StreamToken;
12031203 ur_stream_quard Guard;
12041204 hipStream_t HIPStream = hQueue->getNextComputeStream (
@@ -1256,7 +1256,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMMemcpy(
12561256 std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
12571257
12581258 try {
1259- ScopedContext Active (hQueue->getContext ());
1259+ ScopedContext Active (hQueue->getDevice ());
12601260 hipStream_t HIPStream = hQueue->getNextTransferStream ();
12611261 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
12621262 phEventWaitList);
@@ -1287,6 +1287,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
12871287 ur_queue_handle_t hQueue, const void *pMem, size_t size,
12881288 ur_usm_migration_flags_t flags, uint32_t numEventsInWaitList,
12891289 const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
1290+ #if HIP_VERSION_MAJOR >= 5
12901291 void *HIPDevicePtr = const_cast <void *>(pMem);
12911292 unsigned int PointerRangeSize = 0 ;
12921293 UR_CHECK_ERROR (hipPointerGetAttribute (&PointerRangeSize,
@@ -1301,7 +1302,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
13011302 std::unique_ptr<ur_event_handle_t_> EventPtr{nullptr };
13021303
13031304 try {
1304- ScopedContext Active (hQueue->getContext ());
1305+ ScopedContext Active (hQueue->getDevice ());
13051306 hipStream_t HIPStream = hQueue->getNextTransferStream ();
13061307 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
13071308 phEventWaitList);
@@ -1311,8 +1312,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
13111312 UR_COMMAND_USM_PREFETCH, hQueue, HIPStream));
13121313 EventPtr->start ();
13131314 }
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));
13161317 if (phEvent) {
13171318 Result = EventPtr->record ();
13181319 *phEvent = EventPtr.release ();
@@ -1322,11 +1323,15 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMPrefetch(
13221323 }
13231324
13241325 return Result;
1326+ #else
1327+ return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
1328+ #endif
13251329}
13261330
13271331UR_APIEXPORT ur_result_t UR_APICALL
13281332urEnqueueUSMAdvise (ur_queue_handle_t hQueue, const void *pMem, size_t size,
13291333 ur_usm_advice_flags_t , ur_event_handle_t *phEvent) {
1334+ #if HIP_VERSION_MAJOR >= 5
13301335 void *HIPDevicePtr = const_cast <void *>(pMem);
13311336 unsigned int PointerRangeSize = 0 ;
13321337 UR_CHECK_ERROR (hipPointerGetAttribute (&PointerRangeSize,
@@ -1337,6 +1342,9 @@ urEnqueueUSMAdvise(ur_queue_handle_t hQueue, const void *pMem, size_t size,
13371342 // TODO implement a mapping to hipMemAdvise once the expected behaviour
13381343 // of urEnqueueUSMAdvise is detailed in the USM extension
13391344 return urEnqueueEventsWait (hQueue, 0 , nullptr , phEvent);
1345+ #else
1346+ return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
1347+ #endif
13401348}
13411349
13421350UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMFill2D (
@@ -1367,7 +1375,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueUSMMemcpy2D(
13671375 ur_result_t Result = UR_RESULT_SUCCESS;
13681376
13691377 try {
1370- ScopedContext Active (hQueue->getContext ());
1378+ ScopedContext Active (hQueue->getDevice ());
13711379 hipStream_t HIPStream = hQueue->getNextTransferStream ();
13721380 Result = enqueueEventsWait (hQueue, HIPStream, numEventsInWaitList,
13731381 phEventWaitList);
0 commit comments