
CalcTschNumBlocks【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明针对Cube、Vector分离模式用于计算Cube、Vector融合算子的numBlocks。针对Vector/Cube融合计算的算子启动时按照AIV和AIC组合启动numBlocks用于设置启动多少个组合执行比如某款AI处理器上有40个Vector核20个Cube核一个组合是2个Vector和1个Cube核建议设置为20此时会启动20个组合即40个Vector和20个Cube核。使用该接口可以自动获取合适的numBlocks值。获取该值后使用SetBlockDim进行numBlocks的设置。函数原型uint32_t CalcTschNumBlocks(uint32_t sliceNum, uint32_t aicCoreNum, uint32_t aivCoreNum) const参数说明参数输入/输出说明sliceNum输入数据切分的份数。aicCoreNum输入如果算子实现使用了矩阵计算API请传入GetCoreNumAic返回的数量否则传入0。aivCoreNum输入如果算子实现使用了矢量计算API请传入GetCoreNumAiv返回的数量否则传入0。返回值说明返回用于底层任务调度的核数。约束说明无调用示例ge::graphStatus TilingXXX(gert::TilingContext* context) { auto ascendcPlatform platform_ascendc::PlatformAscendC(context-GetPlatformInfo()); auto aicNum ascendcPlatform.GetCoreNumAic(); auto aivNum ascendcPlatform.GetCoreNumAiv(); // ..按照aivNum切分数据并进行计算 uint32_t sliceNum aivNum; context-SetBlockDim(ascendcPlatform.CalcTschNumBlocks(sliceNum, aicNum, aivNum)); return ret; }【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考