GetSubBlockIdx【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√Atlas 200I/500 A2 推理产品xAtlas 推理系列产品 AI CorexAtlas 推理系列产品 Vector CorexAtlas 训练系列产品xKirin X90xKirin 9030x功能说明获取当前AIV核的ID。分离架构下一个AI Core由Cube CoreAIC和Vector CoreAIV按照一定比例1N进行组合其中N个AIV的子核ID分别为0, 1, ..., N-1。Matmul::GetSubBlockIdx()与基础API接口AscendC::GetSubBlockIdx().md)的区别在于Matmul::GetSubBlockIdx()用于获取当前AIV核在当前AI Core分组中的ID而AscendC::GetSubBlockIdx()获取的是AIV核在所有AI Core分组中的逻辑ID。例如有10组AI CoreAIC与AIV的比例为1:2共20个AIV核。调用Matmul::GetSubBlockIdx()时20个AIV的获取结果依次为0, 1, 0, 1, 0, 1, ..., 0, 1。调用AscendC::GetSubBlockIdx()时20个AIV的获取结果依次为0, 1, 2, 3, 4, 5, ..., 18, 19。函数原型__aicore__ inline uint8_t GetSubBlockIdx()参数说明无返回值说明当前AIV核的ID。约束说明该接口仅支持在分离架构下使用否则返回随机值。在分离架构中AIV核的ID会在REGIST_MATMUL_OBJ()接口内部自动初始化和赋值。因此需要在调用REGIST_MATMUL_OBJ()接口之后再调用本接口以获取正确的ID。若在算子程序中调用SetSubBlockIdx()后 GetSubBlockIdx()接口将返回由SetSubBlockIdx接口设置的ID值。调用示例typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, half aType; typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, half bType; typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, float cType; typedef AscendC::MatmulTypeAscendC::TPosition::GM, CubeFormat::ND, float biasType; AscendC::MatmulaType, bType, cType, biasType, CFG_NORM mm; REGIST_MATMUL_OBJ(pipe, GetSysWorkSpacePtr(), mm, tiling); mm.GetSubBlockIdx(); // 获取子核ID【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考