asc.language.fwk.TBuf.get

TBuf.get(dtype: DataType, shape: TensorShape | None = None) LocalTensor
TBuf.get(dtype: DataType, len: int = None, shape: TensorShape | None = None) LocalTensor

从TBuf上获取指定长度的Tensor,或者获取全部长度的Tensor。

对应的Ascend C函数原型

template <typename T>
__aicore__ inline LocalTensor<T> Get()
template <typename T>
__aicore__ inline LocalTensor<T> Get(uint32_t len)

参数说明

  • dtype:待获取Tensor的数据类型。

  • len:需要获取的Tensor元素个数。

返回值说明

获取到的LocalTensor。

约束说明

len的数值是Tensor中元素的个数,len*sizeof(T)不能超过TBuf初始化时的长度。

调用示例

# 为TBuf初始化分配内存,分配内存长度为1024字节
pipe = asc.Tpipe()
calc_buf = asc.TBuf(asc.TPosition.VECCALC)
byte_len = 1024
pipe.init_buffer(calc_buf, byte_len)
# 从calc_buf获取Tensor,Tensor为pipe分配的所有内存大小,为1024字节
temp_tensor1 = calc_buf.get(asc.int32)
# 从calc_buf获取Tensor,Tensor为128个int32_t类型元素的内存大小,为512字节
temp_tensor1 = calc_buf.get(asc.int32, 128)