Skip to content

Commit e1c0be9

Browse files
committed
[L0 v2] do not return ze_event_handle_t to the cache
on every event release.
1 parent e02d78b commit e1c0be9

File tree

3 files changed

+8
-19
lines changed

3 files changed

+8
-19
lines changed

source/adapters/level_zero/v2/event.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,17 @@
1212
#include "ze_api.h"
1313

1414
namespace v2 {
15-
void ur_event::attachZeHandle(event_allocation event) {
16-
type = event.type;
17-
zeEvent = std::move(event.borrow);
18-
}
19-
20-
event_borrowed ur_event::detachZeHandle() {
15+
void ur_event::reset() {
2116
// consider make an abstraction for regular/counter based
2217
// events if there's more of this type of conditions
2318
if (type == event_type::EVENT_REGULAR) {
2419
zeEventHostReset(zeEvent.get());
2520
}
26-
auto e = std::move(zeEvent);
27-
zeEvent = nullptr;
28-
29-
return e;
3021
}
3122

3223
ze_event_handle_t ur_event::getZeEvent() { return zeEvent.get(); }
3324

25+
ur_event::ur_event(event_allocation eventAllocation)
26+
: type(eventAllocation.type), zeEvent(std::move(eventAllocation.borrow)) {}
27+
3428
} // namespace v2

source/adapters/level_zero/v2/event.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ namespace v2 {
2121

2222
class ur_event {
2323
public:
24-
void attachZeHandle(event_allocation);
25-
event_borrowed detachZeHandle();
24+
ur_event(event_allocation eventAllocation);
2625

26+
void reset();
2727
ze_event_handle_t getZeEvent();
2828

2929
private:

source/adapters/level_zero/v2/event_pool.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,20 @@ ur_event *event_pool::allocate() {
1818
if (freelist.empty()) {
1919
auto start = events.size();
2020
auto end = start + EVENTS_BURST;
21-
events.resize(end);
2221
for (; start < end; ++start) {
22+
events.emplace_back(provider->allocate());
2323
freelist.push_back(&events.at(start));
2424
}
2525
}
2626

2727
auto event = freelist.back();
28-
29-
auto ZeEvent = provider->allocate();
30-
event->attachZeHandle(std::move(ZeEvent));
31-
3228
freelist.pop_back();
3329

3430
return event;
3531
}
3632

3733
void event_pool::free(ur_event *event) {
38-
auto _ = event->detachZeHandle();
39-
34+
event->reset();
4035
freelist.push_back(event);
4136
}
4237

0 commit comments

Comments
 (0)