Skip to content

SetSubBlockIdx

产品支持情况

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

功能说明

设置当前AIV核的ID。分离架构下,一个AI Core由Cube Core(AIC)和Vector Core(AIV)按照一定比例1:N进行组合,其中N个AIV核的ID分别为0, 1, ..., N-1。

函数原型

Text
__aicore__ inline void SetSubBlockIdx(uint8_t subBlockIdx)

参数说明

表1 参数说明

参数名输入/输出描述
subBlockIdx输入当前AIV核的ID。

返回值说明

约束说明

  • 该接口仅支持在分离架构下使用。
  • 在分离架构中,AIV核的ID会在REGIST_MATMUL_OBJ()接口内部自动初始化和赋值。如果在算子程序中使用了REGIST_MATMUL_OBJ()接口,则不建议调用此接口;若未使用REGIST_MATMUL_OBJ()接口,则请调用此接口并将子核ID设置为0。

调用示例

Text
#define ASCENDC_CUBE_ONLY
#include "lib/matmul_intf.h"

typedef AscendC::MatmulType<AscendC::TPosition::GM, CubeFormat::ND, half> aType;
typedef AscendC::MatmulType<AscendC::TPosition::GM, CubeFormat::ND, half> bType;
typedef AscendC::MatmulType<AscendC::TPosition::GM, CubeFormat::ND, float> cType;
typedef AscendC::MatmulType<AscendC::TPosition::GM, CubeFormat::ND, float> biasType;

Matmul<aType, bType, cType, biasType, CFG_NORM> mm;
mm.SetSubBlockIdx(0); // 子核ID设置为0

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