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)