跳到主要内容

HasIdleBuffer

功能说明

查询队列中是否有空闲的内存块。

函数原型

__aicore__ inline bool HasIdleBuffer()

参数说明

支持的型号

Kirin9020系列处理器

KirinX90系列处理器

注意事项

返回值

  • true:表示Queue中存在空闲内存。
  • false:表示Queue中不存在空闲内存。

调用示例

// 当前Queue中已经分配了4块内存
AscendC::TPipe pipe;
AscendC::TQueBind<AscendC::TPosition::VECOUT, AscendC::TPosition::GM, 4> que;
int num = 4;
int len = 1024;
pipe.InitBuffer(que, num, len);
bool ret = que.HasIdleBuffer(); // 没有AllocTensor的操作,返回值为true
AscendC::LocalTensor<half> tensor1 = que.AllocTensor<half>();
ret = que.HasIdleBuffer(); // AllocTensor了一块内存,返回值为true
AscendC::LocalTensor<half> tensor2 = que.AllocTensor<half>();
AscendC::LocalTensor<half> tensor3 = que.AllocTensor<half>();
AscendC::LocalTensor<half> tensor4 = que.AllocTensor<half>();
ret = que.HasIdleBuffer(); // AllocTensor了四块内存,当前无空闲内存,返回值为false,继续AllocTensor会报错