GetBlockIdx
===========

#### 功能说明

获取当前核的index，用于代码内部的多核逻辑控制及多核偏移量计算等。

#### 函数原型

\_\_aicore\_\_ inline int64\_t GetBlockIdx()

#### 参数说明

无

#### 返回值

当前核的index，index的范围为\[0, 开发者配置的block\_dim数量 - 1\]。

#### 支持的型号

Kirin9020系列处理器

KirinX90系列处理器

#### 约束说明

GetBlockIdx为一个系统内置函数，返回当前核的index。

#### 调用示例

#include "kernel\_operator.h"
constexpr int32\_t SINGLE\_CORE\_OFFSET = 256;
class KernelGetBlockIdx {
public:
    \_\_aicore\_\_ inline KernelGetBlockIdx () {}
    \_\_aicore\_\_ inline void Init(\_\_gm\_\_ uint8\_t\* src0Gm, \_\_gm\_\_ uint8\_t\* src1Gm, \_\_gm\_\_ uint8\_t\* dstGm)
    {
        // 根据index对每个核进行地址偏移
        src0Global.SetGlobalBuffer((\_\_gm\_\_ float\*)src0Gm + AscendC::GetBlockIdx() \* SINGLE\_CORE\_OFFSET);
        src1Global.SetGlobalBuffer((\_\_gm\_\_ float\*)src1Gm + AscendC::GetBlockIdx() \* SINGLE\_CORE\_OFFSET);
        dstGlobal.SetGlobalBuffer((\_\_gm\_\_ float\*)dstGm + AscendC::GetBlockIdx() \* SINGLE\_CORE\_OFFSET);
        pipe.InitBuffer(inQueueSrc0, 1, 256 \* sizeof(float));
        pipe.InitBuffer(inQueueSrc1, 1, 256 \* sizeof(float));
        pipe.InitBuffer(selMask, 1, 256);
        pipe.InitBuffer(outQueueDst, 1, 256 \* sizeof(float));
    }
    // ...
};