AllocEventID

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas 200I/500 A2 inference product

x

Atlas inference product AI Core

Atlas inference product Vector Core

x

Atlas training product

Function Usage

Applies for a TEventID of HardEvent (hardware synchronization event). This API must be used together with ReleaseEventID. After this API is called, the applied TEventID is occupied until ReleaseEventID is called.

Prototype

1
2
template <HardEvent evt>
__aicore__ inline TEventID AllocEventID()

Parameters

Table 1 Template parameters

Parameter

Description

evt

HardEvent hardware synchronization type. For details about this type, see the description of synchronization types in SetFlag/WaitFlag(ISASI).

Constraints

The number of TEventIDs is limited. After using TEventIDs, call ReleaseEventID immediately to release them, preventing TEventIDs from being exhausted.

Returns

TEventID

Example

1
2
3
4
5
6
7
8
AscendC::TEventID eventID = GetTPipePtr()->AllocEventID<AscendC::HardEvent::V_S>(); //The scalar needs to wait for vector synchronization and the HardEvent ID is required.
AscendC::SetFlag<AscendC::HardEvent::V_S>(eventID);
......
......
......
AscendC::WaitFlag<AscendC::HardEvent::V_S>(eventID);
GetTPipePtr()->ReleaseEventID<AscendC::HardEvent::V_S>(eventID); //Release the ID of the hard event (scalar waiting for vector synchronization).
......