Skip to content

asc_get_block_idx(废弃)

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

头文件路径为:"c_api/utils/sys_var.h"

该接口已废弃,请使用内置变量block_idx结合asc_get_sub_block_numasc_get_sub_block_id接口替代。

获取当前运行核(逻辑核)的索引。替代时需按逻辑位置计算:

C++
int64_t blockIdx = block_idx * asc_get_sub_block_num() + asc_get_sub_block_id();  // 替代 asc_get_block_idx()
__gm__ float* xGm = x + blockIdx * blockLength;

迁移说明

  • 在非Mix场景下,可直接使用内置变量block_idx,其值等于asc_get_block_idx()的返回值。
  • 在Mix场景(使用__mix__函数执行空间限定符)下,内置变量block_idx仅标识当前组合在整个grid中的位置,逻辑核索引需结合子块信息计算:logic_idx = block_idx * sub_block_num + sub_block_id,即block_idx * asc_get_sub_block_num() + asc_get_sub_block_id();该表达式的值与原接口返回值一致。
  • 使用前请参考内置变量说明确认适用场景。

函数原型

C++
__aicore__ inline int64_t asc_get_block_idx()

参数说明

返回值说明

当前运行核的索引。

流水类型

PIPE_S

约束说明

调用示例

C++
int64_t blockIdx = block_idx * asc_get_sub_block_num() + asc_get_sub_block_id();  // 获取当前运行核的索引,替代 asc_get_block_idx()

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区