asc.language.fwk.TQueBind.deque
TQueBind.deque(dtype: DataType) → LocalTensor
TQueBind.deque(tensor: LocalTensor) → None
TQueBind.deque(dtype: DataType, src_user_pos: TPosition, dst_user_pos: TPosition) → LocalTensor
将Tensor从队列中取出,用于后续处理。
对应的Ascend C函数原型
template <typename T>
__aicore__ inline LocalTensor<T> DeQue()
template <typename T>
__aicore__ inline void DeQue(LocalTensor<T>& tensor)
参数说明
- dtype:Tensor的数据类型。
- tensor:inplace接口需要通过出参的方式返回Tensor。
返回值说明
non-inplace接口的返回值为从队列中取出的LocalTensor;inplace接口没有返回值。
约束说明
- 对空队列执行deque是一种异常行为,会在CPU调测时报错。
- non-inplace接口,需要将TQueBind的depth模板参数设置为非零值;inplace接口,需要将TQueBind的depth模板参数设置为0。
调用示例
- non-inplace接口
pipe = asc.Tpipe() que = asc.TQueBind(asc.TPosition.VECOUT, asc.TPosition.GM, 4) num = 4 len = 1024 pipe.init_buffer(que=que, num=num, len=len) tensor1 = que.alloc_tensor(asc.half) que.enque(tensor1) tensor2 = que.deque(asc.half) - inplace接口
pipe = asc.Tpipe() que = asc.TQueBind(asc.TPosition.VECOUT, asc.TPosition.GM, 0) num = 4 len = 1024 pipe.init_buffer(que=que, num=num, len=len) tensor1 = que.alloc_tensor(asc.half) que.enque(tensor1) que.deque(asc.half, tensor1) que.free_tensor(tensor1)