Skip to content

Commit b18aaee

Browse files
author
Mikołaj Komar
committed
Apply PR comments
1 parent 81a0cac commit b18aaee

File tree

6 files changed

+34
-37
lines changed

6 files changed

+34
-37
lines changed

unified-runtime/source/adapters/level_zero/v2/command_buffer.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,7 @@ ur_result_t ur_exp_command_buffer_handle_t_::finalizeCommandBuffer() {
4747
isFinalized = true;
4848
return UR_RESULT_SUCCESS;
4949
}
50-
ur_event_handle_t ur_exp_command_buffer_handle_t_::getCurrentExecutionEvent(
51-
[[maybe_unused]] locked<ur_command_list_manager> &commandList) {
52-
assert(
53-
commandList->getZeCommandList() ==
54-
commandListManager.get_no_lock()->getZeCommandList() &&
55-
"Provided command list is not the same as the one in the command buffer");
50+
ur_event_handle_t ur_exp_command_buffer_handle_t_::getExecutionEventUnlocked() {
5651
return currentExecution;
5752
}
5853

unified-runtime/source/adapters/level_zero/v2/command_buffer.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ struct ur_exp_command_buffer_handle_t_ : public _ur_object {
2525

2626
~ur_exp_command_buffer_handle_t_();
2727

28-
ur_event_handle_t
29-
getCurrentExecutionEvent(locked<ur_command_list_manager> &commandList);
28+
ur_event_handle_t getExecutionEventUnlocked();
3029
ur_result_t
3130
registerExecutionEvent(locked<ur_command_list_manager> &commandList,
3231
ur_event_handle_t nextExecutionEvent);

unified-runtime/source/adapters/level_zero/v2/command_list_manager.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,20 @@ ur_result_t ur_command_list_manager::appendRegionCopyUnlocked(
157157
return UR_RESULT_SUCCESS;
158158
}
159159

160-
wait_list_view
161-
ur_command_list_manager::getWaitListView(const ur_event_handle_t *phWaitEvents,
162-
uint32_t numWaitEvents) {
160+
wait_list_view ur_command_list_manager::getWaitListView(
161+
const ur_event_handle_t *phWaitEvents, uint32_t numWaitEvents,
162+
ur_event_handle_t additionalWaitEvent) {
163163

164-
waitList.resize(numWaitEvents);
164+
uint32_t totalNumWaitEvents =
165+
numWaitEvents + additionalWaitEvent != nullptr ? 1 : 0;
166+
waitList.resize(totalNumWaitEvents);
165167
for (uint32_t i = 0; i < numWaitEvents; i++) {
166168
waitList[i] = phWaitEvents[i]->getZeEvent();
167169
}
168-
169-
return {waitList.data(), static_cast<uint32_t>(numWaitEvents)};
170+
if (additionalWaitEvent != nullptr) {
171+
waitList[totalNumWaitEvents - 1] = additionalWaitEvent->getZeEvent();
172+
}
173+
return {waitList.data(), static_cast<uint32_t>(totalNumWaitEvents)};
170174
}
171175

172176
ze_event_handle_t

unified-runtime/source/adapters/level_zero/v2/command_list_manager.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,9 @@ struct ur_command_list_manager {
128128

129129
ze_command_list_handle_t getZeCommandList();
130130

131-
wait_list_view getWaitListView(const ur_event_handle_t *phWaitEvents,
132-
uint32_t numWaitEvents);
131+
wait_list_view
132+
getWaitListView(const ur_event_handle_t *phWaitEvents, uint32_t numWaitEvents,
133+
ur_event_handle_t additionalWaitEvent = nullptr);
133134
ze_event_handle_t getSignalEvent(ur_event_handle_t *hUserEvent,
134135
ur_command_t commandType);
135136

unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.cpp

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ namespace v2 {
2323

2424
wait_list_view ur_queue_immediate_in_order_t::getWaitListView(
2525
locked<ur_command_list_manager> &commandList,
26-
const ur_event_handle_t *phWaitEvents, uint32_t numWaitEvents) {
27-
return commandList->getWaitListView(phWaitEvents, numWaitEvents);
26+
const ur_event_handle_t *phWaitEvents, uint32_t numWaitEvents,
27+
ur_event_handle_t additionalWaitEvent) {
28+
return commandList->getWaitListView(phWaitEvents, numWaitEvents,
29+
additionalWaitEvent);
2830
}
2931

3032
static int32_t getZeOrdinal(ur_device_handle_t hDevice) {
@@ -898,7 +900,8 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueTimestampRecordingExp(
898900
ur_result_t ur_queue_immediate_in_order_t::enqueueGenericCommandListsExp(
899901
uint32_t numCommandLists, ze_command_list_handle_t *phCommandLists,
900902
ur_event_handle_t *phEvent, uint32_t numEventsInWaitList,
901-
const ur_event_handle_t *phEventWaitList, ur_command_t callerCommand) {
903+
const ur_event_handle_t *phEventWaitList, ur_command_t callerCommand,
904+
ur_event_handle_t additionalWaitEvent) {
902905
TRACK_SCOPE_LATENCY(
903906
"ur_queue_immediate_in_order_t::enqueueGenericCommandListsExp");
904907

@@ -907,7 +910,8 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueGenericCommandListsExp(
907910
getSignalEvent(commandListLocked, phEvent, callerCommand);
908911

909912
auto [pWaitEvents, numWaitEvents] =
910-
getWaitListView(commandListLocked, phEventWaitList, numEventsInWaitList);
913+
getWaitListView(commandListLocked, phEventWaitList, numEventsInWaitList,
914+
additionalWaitEvent);
911915
// zeCommandListImmediateAppendCommandListsExp is not working with in-order
912916
// immediate lists what causes problems with synchronization
913917
// TODO: remove synchronization when it is not needed
@@ -933,19 +937,11 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueCommandBufferExp(
933937
phEvent = &internalEvent;
934938
}
935939
ur_event_handle_t executionEvent =
936-
hCommandBuffer->getCurrentExecutionEvent(commandListLocked);
937-
std::vector<ur_event_handle_t> extendedWaitList;
938-
if (executionEvent != nullptr) {
939-
extendedWaitList.resize(numEventsInWaitList + 1);
940-
std::copy(phEventWaitList, phEventWaitList + numEventsInWaitList,
941-
extendedWaitList.begin());
942-
extendedWaitList[numEventsInWaitList] = executionEvent;
943-
phEventWaitList = extendedWaitList.data();
944-
numEventsInWaitList++;
945-
}
946-
UR_CALL(enqueueGenericCommandListsExp(1, &commandBufferCommandList, phEvent,
947-
numEventsInWaitList, phEventWaitList,
948-
UR_COMMAND_ENQUEUE_COMMAND_BUFFER_EXP));
940+
hCommandBuffer->getExecutionEventUnlocked();
941+
942+
UR_CALL(enqueueGenericCommandListsExp(
943+
1, &commandBufferCommandList, phEvent, numEventsInWaitList,
944+
phEventWaitList, UR_COMMAND_ENQUEUE_COMMAND_BUFFER_EXP, executionEvent));
949945
UR_CALL(hCommandBuffer->registerExecutionEvent(commandListLocked, *phEvent));
950946
if (internalEvent != nullptr) {
951947
internalEvent->release();

unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.hpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ struct ur_queue_immediate_in_order_t : _ur_object, public ur_queue_t_ {
3737
std::vector<ur_event_handle_t> deferredEvents;
3838
std::vector<ur_kernel_handle_t> submittedKernels;
3939

40-
wait_list_view getWaitListView(locked<ur_command_list_manager> &commandList,
41-
const ur_event_handle_t *phWaitEvents,
42-
uint32_t numWaitEvents);
40+
wait_list_view
41+
getWaitListView(locked<ur_command_list_manager> &commandList,
42+
const ur_event_handle_t *phWaitEvents, uint32_t numWaitEvents,
43+
ur_event_handle_t additionalWaitEvent = nullptr);
4344

4445
ze_event_handle_t getSignalEvent(locked<ur_command_list_manager> &commandList,
4546
ur_event_handle_t *hUserEvent,
@@ -56,7 +57,8 @@ struct ur_queue_immediate_in_order_t : _ur_object, public ur_queue_t_ {
5657
ur_result_t enqueueGenericCommandListsExp(
5758
uint32_t numCommandLists, ze_command_list_handle_t *phCommandLists,
5859
ur_event_handle_t *phEvent, uint32_t numEventsInWaitList,
59-
const ur_event_handle_t *phEventWaitList, ur_command_t callerCommand);
60+
const ur_event_handle_t *phEventWaitList, ur_command_t callerCommand,
61+
ur_event_handle_t additionalWaitEvent);
6062

6163
ur_result_t
6264
enqueueEventsWaitWithBarrierImpl(uint32_t numEventsInWaitList,

0 commit comments

Comments
 (0)