MemBarMode#
产品支持情况#
Ascend 950PR&950DT系列产品:支持
Atlas A3系列产品:不支持
Atlas A2系列产品:不支持
功能说明#
MemBarMode定义了vf.mem_bar内存屏障的源->目标排序约束,用于确保指定的前序访存操作在后序访存操作开始之前完成。
原型定义#
class MemBarMode(enum.Enum):
VST_VLD = ... # Vector Store -> Vector Load(RAW,默认)
VLD_VST = ... # Vector Load -> Vector Store(WAR)
VST_VST = ... # Vector Store -> Vector Store(WAW)
VST_LD = ... # Vector Store -> Scalar Load
VST_ST = ... # Vector Store -> Scalar Store
VLD_ST = ... # Vector Load -> Scalar Store
ST_VLD = ... # Scalar Store -> Vector Load
ST_VST = ... # Scalar Store -> Vector Store
LD_VST = ... # Scalar Load -> Vector Store
VV_ALL = ... # 所有Vector -> 所有Vector
VS_ALL = ... # 所有Vector -> 所有Scalar
SV_ALL = ... # 所有Scalar -> 所有Vector
调用示例#
import pypto_pro.language as pl
@pl.vector_function
def vf_kernel():
vf.mem_bar(mode=pl.MemBarMode.VST_VLD) # 确保Vector Store在Vector Load之前完成