AllocTensor
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          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