目录

HasIdleBuffer

Function Description

Queries whether there are free buffers in the queue.

Function Prototype

__aicore__ inline bool HasIdleBuffer()

Parameters

None

Supported Models

Kirin 9020 series processors

Kirin 9030 series processors

Kirin X90 series processors

Precautions

None

Return Value

Calling Example

// Four buffers have been allocated in the current queue.
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 is not called, and the return is true.
AscendC::LocalTensor<half> tensor1 = que.AllocTensor<half>();
ret = que.HasIdleBuffer(); // One buffer has been allocated by AllocTensor, and the return is 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(); // Four buffers have been allocated by AllocTensor. Currently, there is no idle buffer, and the return is false. An error is reported when AllocTensor is called.