Skip to content

InitBuffer

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:支持
  • Kirin X90:支持
  • Kirin 9030:支持

功能说明

头文件路径为:"basic_api/kernel_tpipe.h"

调用TBufPool::InitBuffer接口为TQue/TBuf进行内存分配。

函数原型

  • 为TQue分配内存
    C++
    template <class T>
    __aicore__ inline bool InitBuffer(T& que, uint8_t num, uint32_t len)
    
  • 为TBuf分配内存
    C++
    template <TPosition pos>
    __aicore__ inline bool InitBuffer(TBuf<pos>& buf, uint32_t len)
    

参数说明

表1 为TQue分配内存的函数原型-模板参数说明

参数名称含义
Tque参数的类型。

表2 为TQue分配内存的函数原型-接口参数说明

参数名称

输入/输出

含义

que

输入

需要分配内存的TQue对象

num

输入

分配内存块的个数

len

输入

每个内存块的大小,单位为Bytes,非32Bytes对齐会自动向上补齐至32Bytes对齐

表3 为TBuf分配内存的函数原型-模板参数说明

参数名称含义
posBuffer逻辑位置,可以为VECIN、VECOUT、VECCALC、A1、B1、C1。关于TPosition的具体介绍请参考TPosition

表4 为TBuf分配内存的函数原型-接口参数说明

参数名称

输入/输出

含义

buf

输入

需要分配内存的TBuf对象

len

输入

为TBuf分配的内存大小,单位为Bytes,非32Bytes对齐会自动向上补齐至32Bytes对齐

约束说明

声明TBufPool时,可以通过bufIDSize指定可分配Buffer的最大数量,默认上限为4,最大为16。TQue或TBuf的物理内存需要和TBufPool一致。

返回值说明

调用示例

参考InitBufPool

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区