Skip to content

Commit bba629f

Browse files
committed
fix cambricon event timing in infinirt.
1 parent 78932c2 commit bba629f

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

src/infinirt/bang/infinirt_bang.cc

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,19 @@ infiniStatus_t eventCreate(infinirtEvent_t *event_ptr) {
5252
}
5353

5454
infiniStatus_t eventCreateWithFlags(infinirtEvent_t *event_ptr, uint32_t flags) {
55-
return INFINI_STATUS_NOT_IMPLEMENTED;
55+
cnrtNotifier_t notifier;
56+
unsigned int cnrt_flags = CNRT_NOTIFIER_DEFAULT;
57+
58+
if (flags & INFINIRT_EVENT_DISABLE_TIMING) {
59+
cnrt_flags |= CNRT_NOTIFIER_DISABLE_TIMING;
60+
}
61+
if (flags & INFINIRT_EVENT_BLOCKING_SYNC) {
62+
cnrt_flags |= CNRT_NOTIFIER_SYNC_WAIT;
63+
}
64+
65+
CHECK_BANGRT(cnrtNotifierCreateWithFlags(&notifier, cnrt_flags));
66+
*event_ptr = notifier;
67+
return INFINI_STATUS_SUCCESS;
5668
}
5769

5870
infiniStatus_t eventRecord(infinirtEvent_t event, infinirtStream_t stream) {
@@ -83,7 +95,8 @@ infiniStatus_t eventDestroy(infinirtEvent_t event) {
8395
}
8496

8597
infiniStatus_t eventElapsedTime(float *ms_ptr, infinirtEvent_t start, infinirtEvent_t end) {
86-
return INFINI_STATUS_NOT_IMPLEMENTED;
98+
CHECK_BANGRT(cnrtNotifierElapsedTime((cnrtNotifier_t)start, (cnrtNotifier_t)end, ms_ptr));
99+
return INFINI_STATUS_SUCCESS;
87100
}
88101

89102
infiniStatus_t mallocDevice(void **p_ptr, size_t size) {

0 commit comments

Comments
 (0)