AllocTensor
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
√ |
|
√ |
|
x |
|
√ |
|
x |
功能说明
从Que中分配Tensor,Tensor所占大小为InitBuffer时设置的每块内存长度。
函数原型
参数说明
参数名 |
说明 |
---|---|
T |
Tensor的数据类型。 |
参数名称 |
输入/输出 |
含义 |
---|---|---|
tensor |
输入 |
inplace接口需要传入LocalTensor作为内存管理的对象。 |
约束说明
- non-inplace接口分配的Tensor内容可能包含随机值。
- non-inplace接口,需要将TQueBind的depth模板参数设置为非零值;inplace接口,需要将TQueBind的depth模板参数设置为0。
返回值说明
non-inplace接口返回值为LocalTensor对象,inplace接口没有返回值。
调用示例
- non-inplace接口
1 2 3 4 5 6
AscendC::TPipe pipe; AscendC::TQueBind<AscendC::TPosition::VECOUT, AscendC::TPosition::GM, 2> que; int num = 4; int len = 1024; pipe.InitBuffer(que, num, len); // InitBuffer分配内存块数为4,每块大小为1024Bytes AscendC::LocalTensor<half> tensor1 = que.AllocTensor<half>(); // AllocTensor分配Tensor长度为1024Bytes
- inplace接口
1 2 3 4 5 6 7
AscendC::TPipe pipe; AscendC::TQueBind<AscendC::TPosition::VECOUT, AscendC::TPosition::GM, 0> que; int num = 2; int len = 1024; pipe.InitBuffer(que, num, len); // InitBuffer分配内存块数为2,每块大小为1024Bytes AscendC::LocalTensor<half> tensor1; que.AllocTensor<half>(tensor1); // AllocTensor分配Tensor长度为1024Bytes
父主题: TQueBind