CrossCoreWaitFlag(ISASI)

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

√

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

√

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

√

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品 AI Core

x

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

x

功能说明

面向分离模式的核间同步控制接口。该接口和CrossCoreSetFlag接口配合使用。具体使用方法请参考CrossCoreSetFlag。

函数原型

1
2
template <uint8_t modeId = 0, pipe_t pipe = PIPE_S>
__aicore__ inline void CrossCoreWaitFlag(uint16_t flagId)

参数说明

表1 模板参数说明

参数名

描述

modeId

核间同步的模式,取值如下:

  • 模式0:AI Core核间的同步控制。
  • 模式1:AI Core内部,Vector核(AIV)之间的同步控制。
  • 模式2:AI Core内部,Cube核(AIC)与Vector核(AIV)之间的同步控制。
  • 模式4:AI Core内部,AIC与AIV之间的同步控制。AIV0与AIV1可单独触发AIC等待。

pipe

设置这条指令所在的流水类型,流水类型可参考硬件流水类型。

特别地,PIPE_S流水类型仅Ascend 950PR/Ascend 950DT支持。

表2 参数说明

参数名

输入/输出

描述

flagId

输入

核间同步的标记。

Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ,取值范围是0-10。

Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ,取值范围是0-10。

Ascend 950PR/Ascend 950DT,取值范围如下:

AIV0发起的flagId 0-10的CrossCoreSetFlag操作对应AIC CrossCoreWaitFlag中flagId 0-10的操作。

AIV1发起的flagId 0-10的CrossCoreSetFlag操作对应AIC CrossCoreWaitFlag中flagId 16-26的操作。

AIC发起的flagId 0-10的CrossCoreSetFlag操作对应AIV0 CrossCoreWaitFlag中flagId 0-10的操作。

AIC发起的flagId 16-26的CrossCoreSetFlag操作对应AIV1 CrossCoreWaitFlag中flagId 0-10的操作。

返回值说明

无

约束说明

调用示例

请参考调用示例。