asc.language.fwk.TPipe.init_buf_pool
- TPipe.init_buf_pool(buf_pool: TBufPool, len: int = 0, share_buf: TBufPool = None) None
初始化TBufPool内存资源池。本接口适用于内存资源有限时,希望手动指定UB/L1内存资源复用的场景。本接口初始化后在整体内存资源中划分出一块子资源池。
对应的Ascend C函数原型
template <class T> __aicore__ inline bool InitBufPool(T& bufPool, uint32_t len) template <class T, class U> __aicore__ inline bool InitBufPool(T& bufPool, uint32_t len, U& shareBuf)
参数说明
buf_pool:新划分的资源池,类型为TBufPool。
len:新划分资源池长度,单位为Byte,非32Bytes对齐会自动补齐至32Bytes对齐。
share_buf:被复用资源池,类型为TBufPool,新划分资源池与被复用资源池共享起始地址及长度。
约束说明
新划分的资源池与被复用资源池的硬件属性需要一致,两者共享起始地址及长度;
输入长度需要小于等于被复用资源池长度;
其他泛用约束参考TBufPool。
调用示例
src0_global.set_global_buffer(src0_gm) src1_global.set_global_buffer(src1_gm) dst_global.set_global_buffer(dst_gm) pipe.init_buf_pool(tbuf_pool1, 196608) pipe.init_buf_pool(tbuf_pool2, 196608, tbuf_pool1)