Skip to content

Commit 691f842

Browse files
committed
Don't use secondary queue for fallback and minor cleanup
Signed-off-by: Agarwal, Udit <[email protected]>
1 parent 721b937 commit 691f842

File tree

2 files changed

+30
-53
lines changed

2 files changed

+30
-53
lines changed

sycl/source/detail/queue_impl.hpp

+14-31
Original file line numberDiff line numberDiff line change
@@ -364,24 +364,16 @@ class queue_impl {
364364
const std::shared_ptr<queue_impl> &Self,
365365
const SubmissionInfo &SubmitInfo,
366366
const detail::code_location &Loc, bool IsTopCodeLoc) {
367-
if (SubmitInfo.SecondaryQueue()) {
368-
event ResEvent;
369-
const std::shared_ptr<queue_impl> &SecondQueue =
370-
SubmitInfo.SecondaryQueue();
371-
try {
372-
ResEvent = submit_impl(CGF, Self, Self, SecondQueue,
373-
/*CallerNeedsEvent=*/true, Loc, IsTopCodeLoc,
374-
SubmitInfo);
375-
} catch (...) {
376-
ResEvent = SecondQueue->submit_impl(CGF, SecondQueue, Self, SecondQueue,
377-
/*CallerNeedsEvent=*/true, Loc,
378-
IsTopCodeLoc, SubmitInfo);
379-
}
380-
return ResEvent;
381-
}
382-
event ResEvent =
383-
submit_impl(CGF, Self, Self, nullptr,
384-
/*CallerNeedsEvent=*/true, Loc, IsTopCodeLoc, SubmitInfo);
367+
368+
event ResEvent;
369+
if (SubmitInfo.SecondaryQueue())
370+
ResEvent =
371+
submit_impl(CGF, Self, Self, SubmitInfo.SecondaryQueue(),
372+
/*CallerNeedsEvent=*/true, Loc, IsTopCodeLoc, SubmitInfo);
373+
else
374+
ResEvent =
375+
submit_impl(CGF, Self, Self, nullptr,
376+
/*CallerNeedsEvent=*/true, Loc, IsTopCodeLoc, SubmitInfo);
385377
return discard_or_return(ResEvent);
386378
}
387379

@@ -390,21 +382,12 @@ class queue_impl {
390382
const SubmissionInfo &SubmitInfo,
391383
const detail::code_location &Loc,
392384
bool IsTopCodeLoc) {
393-
if (SubmitInfo.SecondaryQueue()) {
394-
const std::shared_ptr<queue_impl> SecondQueue =
395-
SubmitInfo.SecondaryQueue();
396-
try {
397-
submit_impl(CGF, Self, Self, SecondQueue,
398-
/*CallerNeedsEvent=*/false, Loc, IsTopCodeLoc, SubmitInfo);
399-
} catch (...) {
400-
SecondQueue->submit_impl(CGF, SecondQueue, Self, SecondQueue,
401-
/*CallerNeedsEvent=*/false, Loc, IsTopCodeLoc,
402-
SubmitInfo);
403-
}
404-
} else {
385+
if (SubmitInfo.SecondaryQueue())
386+
submit_impl(CGF, Self, Self, SubmitInfo.SecondaryQueue(),
387+
/*CallerNeedsEvent=*/false, Loc, IsTopCodeLoc, SubmitInfo);
388+
else
405389
submit_impl(CGF, Self, Self, nullptr, /*CallerNeedsEvent=*/false, Loc,
406390
IsTopCodeLoc, SubmitInfo);
407-
}
408391
}
409392

410393
/// Performs a blocking wait for the completion of all enqueued tasks in the

sycl/source/handler.cpp

+16-22
Original file line numberDiff line numberDiff line change
@@ -1928,34 +1928,28 @@ void handler::verifyDeviceHasProgressGuarantee(
19281928
}
19291929

19301930
bool handler::supportsUSMMemcpy2D() {
1931-
for (detail::queue_impl *QueueImpl :
1932-
{impl->MSubmissionPrimaryQueue, impl->MSubmissionSecondaryQueue}) {
1933-
if (QueueImpl &&
1934-
!checkContextSupports(QueueImpl->getContextImplPtr(),
1935-
UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT))
1936-
return false;
1937-
}
1938-
return true;
1931+
auto &PrimQueue = impl->MSubmissionPrimaryQueue;
1932+
if (PrimQueue)
1933+
return checkContextSupports(PrimQueue->getContextImplPtr(),
1934+
UR_CONTEXT_INFO_USM_MEMCPY2D_SUPPORT);
1935+
else
1936+
// Return true when handler_impl is constructed with a graph.
1937+
return true;
19391938
}
19401939

19411940
bool handler::supportsUSMFill2D() {
1942-
for (detail::queue_impl *QueueImpl :
1943-
{impl->MSubmissionPrimaryQueue, impl->MSubmissionSecondaryQueue}) {
1944-
if (QueueImpl && !checkContextSupports(QueueImpl->getContextImplPtr(),
1945-
UR_CONTEXT_INFO_USM_FILL2D_SUPPORT))
1946-
return false;
1947-
}
1948-
return true;
1941+
auto &PrimQueue = impl->MSubmissionPrimaryQueue;
1942+
if (PrimQueue)
1943+
return checkContextSupports(PrimQueue->getContextImplPtr(),
1944+
UR_CONTEXT_INFO_USM_FILL2D_SUPPORT);
1945+
else
1946+
// Return true when handler_impl is constructed with a graph.
1947+
return true;
19491948
}
19501949

19511950
bool handler::supportsUSMMemset2D() {
1952-
for (detail::queue_impl *QueueImpl :
1953-
{impl->MSubmissionPrimaryQueue, impl->MSubmissionSecondaryQueue}) {
1954-
if (QueueImpl && !checkContextSupports(QueueImpl->getContextImplPtr(),
1955-
UR_CONTEXT_INFO_USM_FILL2D_SUPPORT))
1956-
return false;
1957-
}
1958-
return true;
1951+
// memset use the same UR check as fill2D.
1952+
return supportsUSMFill2D();
19591953
}
19601954

19611955
id<2> handler::computeFallbackKernelBounds(size_t Width, size_t Height) {

0 commit comments

Comments
 (0)