下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

PipeBarrier

功能说明

阻塞相同流水,具有数据依赖的相同流水之间需要插此同步。

函数原型

1
2
template <pipe_t pipe>
__aicore__ inline void PipeBarrier()

参数说明

表1 参数说明

参数名

输入/输出

描述

pipe

输入

模板参数,表示阻塞的流水类别。

支持的流水参考表1

返回值

支持的型号

Atlas 训练系列产品

Atlas推理系列产品AI Core

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

Atlas 200/500 A2推理产品

约束说明

Scalar流水之间的同步由硬件自动保证,调用PipeBarrier<PIPE_S>()会引发硬件错误。

调用示例

如下示例,Mul指令的输入dst0Local是Add指令的输出,两个矢量运算指令产生依赖,需要插入PipeBarrier保证两条指令的执行顺序。

图1 Mul指令和Add指令是串行关系,必须等待Add指令执行完成后,才能执行Mul指令。
1
2
3
4
5
6
7
8
9
AscendC::LocalTensor<half> src0Local;
AscendC::LocalTensor<half> src1Local;
AscendC::LocalTensor<half> src2Local;
AscendC::LocalTensor<half> dst0Local;
AscendC::LocalTensor<half> dst1Local;

AscendC::Add(dst0Local, src0Local, src1Local, 512);
AscendC::PipeBarrier<PIPE_V>();
AscendC::Mul(dst1Local, dst0Local, src2Local, 512);
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词