Skip to content

Commit 7c16d13

Browse files
Add flagcx event type for device event creation (#275)
* enable the creation of different types of event by passing flagcxEventType_t as argument to event creation function in device adaptor
1 parent 3ea0baf commit 7c16d13

16 files changed

Lines changed: 75 additions & 35 deletions

flagcx/adaptor/device/cann_adaptor.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,13 @@ flagcxResult_t cannAdaptorStreamWaitEvent(flagcxStream_t stream,
163163
return flagcxSuccess;
164164
}
165165

166-
flagcxResult_t cannAdaptorEventCreate(flagcxEvent_t *event) {
166+
flagcxResult_t cannAdaptorEventCreate(flagcxEvent_t *event,
167+
flagcxEventType_t eventType) {
167168
(*event) = NULL;
168169
flagcxCalloc(event, 1);
169-
DEVCHECK(aclrtCreateEventWithFlag((aclrtEvent *)(*event), ACL_EVENT_SYNC));
170+
const unsigned int flags =
171+
(eventType == flagcxEventDefault) ? ACL_EVENT_TIME_LINE : ACL_EVENT_SYNC;
172+
DEVCHECK(aclrtCreateEventWithFlag(&((*event)->base), flags));
170173
return flagcxSuccess;
171174
}
172175

flagcx/adaptor/device/cuda_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,14 @@ flagcxResult_t cudaAdaptorStreamWaitEvent(flagcxStream_t stream,
234234
return flagcxSuccess;
235235
}
236236

237-
flagcxResult_t cudaAdaptorEventCreate(flagcxEvent_t *event) {
237+
flagcxResult_t cudaAdaptorEventCreate(flagcxEvent_t *event,
238+
flagcxEventType_t eventType) {
238239
(*event) = NULL;
239240
flagcxCalloc(event, 1);
240-
DEVCHECK(cudaEventCreateWithFlags((cudaEvent_t *)(*event),
241-
cudaEventDefault));
241+
const unsigned int flags = (eventType == flagcxEventDefault)
242+
? cudaEventDefault
243+
: cudaEventDisableTiming;
244+
DEVCHECK(cudaEventCreateWithFlags(&((*event)->base), flags));
242245
return flagcxSuccess;
243246
}
244247

flagcx/adaptor/device/ducuda_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,14 @@ flagcxResult_t ducudaAdaptorStreamWaitEvent(flagcxStream_t stream,
179179
return flagcxSuccess;
180180
}
181181

182-
flagcxResult_t ducudaAdaptorEventCreate(flagcxEvent_t *event) {
182+
flagcxResult_t ducudaAdaptorEventCreate(flagcxEvent_t *event,
183+
flagcxEventType_t eventType) {
183184
(*event) = NULL;
184185
flagcxCalloc(event, 1);
185-
DEVCHECK(cudaEventCreateWithFlags((cudaEvent_t *)(*event),
186-
cudaEventDisableTiming));
186+
const unsigned int flags = (eventType == flagcxEventDefault)
187+
? cudaEventDefault
188+
: cudaEventDisableTiming;
189+
DEVCHECK(cudaEventCreateWithFlags(&((*event)->base), flags));
187190
return flagcxSuccess;
188191
}
189192

flagcx/adaptor/device/hip_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,14 @@ flagcxResult_t hipAdaptorStreamWaitEvent(flagcxStream_t stream,
176176
return flagcxSuccess;
177177
}
178178

179-
flagcxResult_t hipAdaptorEventCreate(flagcxEvent_t *event) {
179+
flagcxResult_t hipAdaptorEventCreate(flagcxEvent_t *event,
180+
flagcxEventType_t eventType) {
180181
(*event) = NULL;
181182
flagcxCalloc(event, 1);
182-
DEVCHECK(
183-
hipEventCreateWithFlags((hipEvent_t *)(*event), hipEventDisableTiming));
183+
const unsigned int flags = (eventType == flagcxEventDefault)
184+
? hipEventDefault
185+
: hipEventDisableTiming;
186+
DEVCHECK(hipEventCreateWithFlags(&((*event)->base), flags));
184187
return flagcxSuccess;
185188
}
186189

flagcx/adaptor/device/ixcuda_adaptor.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,15 @@ flagcxResult_t ixcudaAdaptorStreamWaitEvent(flagcxStream_t stream,
178178
return flagcxSuccess;
179179
}
180180

181-
flagcxResult_t ixcudaAdaptorEventCreate(flagcxEvent_t *event) {
181+
flagcxResult_t ixcudaAdaptorEventCreate(flagcxEvent_t *event,
182+
flagcxEventType_t eventType) {
182183
(*event) = NULL;
183184
flagcxCalloc(event, 1);
184-
DEVCHECK(cudaEventCreateWithFlags((cudaEvent_t *)(*event),
185-
cudaEventDisableTiming));
185+
const unsigned int flags = (eventType == flagcxEventDefault)
186+
? cudaEventDefault
187+
: cudaEventDisableTiming;
188+
DEVCHECK(cudaEventCreateWithFlags(&((*event)->base), flags));
189+
186190
return flagcxSuccess;
187191
}
188192

flagcx/adaptor/device/kunlunxin_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,14 @@ flagcxResult_t kunlunAdaptorStreamWaitEvent(flagcxStream_t stream,
202202
return flagcxSuccess;
203203
}
204204

205-
flagcxResult_t kunlunAdaptorEventCreate(flagcxEvent_t *event) {
205+
flagcxResult_t kunlunAdaptorEventCreate(flagcxEvent_t *event,
206+
flagcxEventType_t eventType) {
206207
(*event) = NULL;
207208
flagcxCalloc(event, 1);
208-
DEVCHECK(cudaEventCreateWithFlags((cudaEvent_t *)(*event),
209-
cudaEventDisableTiming));
209+
const unsigned int flags = (eventType == flagcxEventDefault)
210+
? cudaEventDefault
211+
: cudaEventDisableTiming;
212+
DEVCHECK(cudaEventCreateWithFlags(&((*event)->base), flags));
210213
return flagcxSuccess;
211214
}
212215

flagcx/adaptor/device/maca_adaptor.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,13 @@ flagcxResult_t macaAdaptorStreamWaitEvent(flagcxStream_t stream,
183183
return flagcxSuccess;
184184
}
185185

186-
flagcxResult_t macaAdaptorEventCreate(flagcxEvent_t *event) {
186+
flagcxResult_t macaAdaptorEventCreate(flagcxEvent_t *event,
187+
flagcxEventType_t eventType) {
187188
(*event) = NULL;
188189
flagcxCalloc(event, 1);
189-
DEVCHECK(mcEventCreateWithFlags((mcEvent_t *)(*event), mcEventDisableTiming));
190+
const unsigned int flags =
191+
(eventType == flagcxEventDefault) ? mcEventDefault : mcEventDisableTiming;
192+
DEVCHECK(mcEventCreateWithFlags(&((*event)->base), flags));
190193
return flagcxSuccess;
191194
}
192195

flagcx/adaptor/device/mlu_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,11 +203,14 @@ flagcxResult_t mluAdaptorStreamWaitEvent(flagcxStream_t stream,
203203
return flagcxSuccess;
204204
}
205205

206-
flagcxResult_t mluAdaptorEventCreate(flagcxEvent_t *event) {
206+
flagcxResult_t mluAdaptorEventCreate(flagcxEvent_t *event,
207+
flagcxEventType_t eventType) {
207208
(*event) = NULL;
208209
flagcxCalloc(event, 1);
209-
DEVCHECK(cnrtNotifierCreateWithFlags((cnrtNotifier_t *)(*event),
210-
CNRT_NOTIFIER_DISABLE_TIMING_ALL));
210+
const unsigned int flags = (eventType == flagcxEventDefault)
211+
? CNRT_NOTIFIER_DEFAULT
212+
: CNRT_NOTIFIER_DISABLE_TIMING_ALL;
213+
DEVCHECK(cnrtNotifierCreateWithFlags(&((*event)->base), flags));
211214
return flagcxSuccess;
212215
}
213216

flagcx/adaptor/device/musa_adaptor.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,14 @@ flagcxResult_t musaAdaptorStreamWaitEvent(flagcxStream_t stream,
183183
return flagcxSuccess;
184184
}
185185

186-
flagcxResult_t musaAdaptorEventCreate(flagcxEvent_t *event) {
186+
flagcxResult_t musaAdaptorEventCreate(flagcxEvent_t *event,
187+
flagcxEventType_t eventType) {
187188
(*event) = NULL;
188189
flagcxCalloc(event, 1);
189-
DEVCHECK(musaEventCreateWithFlags((musaEvent_t *)(*event),
190-
musaEventDisableTiming));
190+
const unsigned int flags = (eventType == flagcxEventDefault)
191+
? musaEventDefault
192+
: musaEventDisableTiming;
193+
DEVCHECK(musaEventCreateWithFlags(&((*event)->base), flags));
191194
return flagcxSuccess;
192195
}
193196

flagcx/adaptor/include/adaptor.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,8 @@ struct flagcxDeviceAdaptor {
180180
flagcxResult_t (*streamWaitEvent)(flagcxStream_t stream, flagcxEvent_t event);
181181

182182
// Event functions
183-
flagcxResult_t (*eventCreate)(flagcxEvent_t *event);
183+
flagcxResult_t (*eventCreate)(flagcxEvent_t *event,
184+
flagcxEventType_t eventType);
184185
flagcxResult_t (*eventDestroy)(flagcxEvent_t event);
185186
flagcxResult_t (*eventRecord)(flagcxEvent_t event, flagcxStream_t stream);
186187
flagcxResult_t (*eventSynchronize)(flagcxEvent_t event);

0 commit comments

Comments
 (0)