InitBuffer
功能说明
TPipe是用来管理全局内存的框架,用户可以调用TPipe中的InitBuffer接口为TQue/TBuf进行内存分配。
函数原型
- 为TQue分配内存
1 2
template <class T> __aicore__ inline bool InitBuffer(T& que, uint8_t num, uint32_t len)
- 为TBuf分配内存
1 2
template <TPosition bufPos> __aicore__ inline bool InitBuffer(TBuf<bufPos>& buf, uint32_t len)
参数说明
表1 bool InitBuffer(T& que, uint8_t num, uint32_t len) 原型定义参数说明
表2 InitBuffer(TBuf<bufPos>& buf, uint32_t len)原型定义参数说明
支持的型号
约束说明
- InitBuffer申请的内存会在Tpipe对象销毁时通过析构函数自动释放,无需手动释放。
- 如果需要重新分配InitBuffer申请的内存,可以调用Reset,再调用InitBuffer接口。
返回值
返回Buffer初始化的结果。
调用示例
1 2 3 4 5 6 7 8 9 10 11 |
// 为TQue分配内存,分配内存块数为2,每块大小为128Bytes AscendC::TPipe pipe; // Pipe内存管理对象 AscendC::TQue<AscendC::TPosition::VECOUT, 2> que; //输出数据Queue队列管理对象,TPosition为VECOUT uint8_t num = 2; uint32_t len = 128; pipe.InitBuffer(que, num, len); // 为TBuf分配内存,分配长度为128Bytes AscendC::TPipe pipe; AscendC::TBuf<AscendC::TPosition::A1> buf; //输出数据管理对象,TPosition为A1 uint32_t len = 128; pipe.InitBuffer(buf, len); |
父主题: TPipe