asc.language.fwk.TQueBind.vacant_in_que

TQueBind.vacant_in_que() bool

查询队列是否已满。

对应的Ascend C函数原型

__aicore__ inline bool VacantInQue()

参数说明

无。

返回值说明

  • True:表示Queue未满,可以继续enque操作

  • False:表示Queue已满,不可以继续入队

约束说明

该接口不支持Tensor原地操作,即TQue的depth设置为0的场景。

调用示例

# 根据vacant_in_que判断当前que是否已满,设置当前队列深度为4
pipe = asc.Tpipe()
que = asc.TQueBind(asc.TPosition.VECOUT, asc.TPosition.GM, 4)
num = 10
len = 1024
pipe.init_buffer(que=que, num=num, len=len)
tensor1 = que.alloc_tensor(asc.half)
tensor2 = que.alloc_tensor(asc.half)
tensor3 = que.alloc_tensor(asc.half)
tensor4 = que.alloc_tensor(asc.half)
tensor5 = que.alloc_tensor(asc.half)
que.enque(tensor1)
que.enque(tensor2)
que.enque(tensor3)
que.enque(tensor4)
ret = que.vacant_in_que()   # 返回False,继续入队操作将报错