计算底层任务调度的核数。
uint32_t CalcTschBlockDim(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.CalcTschBlockDim(sliceNum, aicNum, aivNum)); return ret; }