CANN/cannbot-skills排序平铺字段 Sort 族 — TilingData 字段语义【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skillsSort 族各 PatternA/B/C的 TilingData 字段并集。1. 通用基础字段字段类型含义推导出处Nint64总元素数输入shapeKint64Top-K 值输入参数dtypestr数据类型输入参数dtype_bytesint单元素字节数dtype映射patternstrA / B / CN vs tileSize × coreNum判定tile_sizeint64单tile元素数UB容量推导, 工程值4096total_tilesint64总tile数CeilDiv(N, tileSize)core_numint64实际使用核数tiling计算ub_sizeintUB总容量平台获取2. 每核参数 (Pattern B/C)字段含义出现条件推导tiles_per_core(S_c)每核tile数B/CCeilDiv(totalTiles, coreNum)elements_per_core(E_c)单核处理元素数B/CS_c × tileSizefront_core_tiles前coreNum-1核的tile数CCeilDiv(totalTiles, coreNum)last_core_tiles尾核tile数CtotalTiles - (usedCore-1)*frontCoreTileslast_tile_size末tile元素数(≤tileSize)A/B/CN - tileSize × (totalTiles-1)3. 归并参数 (Pattern C)字段含义推导merge_rounds_phase2核内归并轮次ceil(log_M(S_c))merge_rounds_phase3跨核归并轮次ceil(log_M(coreNum)) - 1once_max_mergePhase 2/3单次归并最大元素数(ubSize / 64B) / 32 × 32once_max_outputPhase 4单次输出最大元素数(ubSize / outputBPE) / 32 × 324. UB 预算字段字段含义出现于sort_bytes_per_elemPhase 1每元素UB占用所有Patternmerge_bytes_per_elemPhase 2/3每元素UB占用 (64B)B/Coutput_bytes_per_elemPhase 4每元素UB占用B/C5. Workspace字段字段含义出现条件workspace_bytes跨核workspace总字节数Pattern C公式:usedCore × ((E_c × 8B × 2 31) / 32 × 32)6. 分支—字段交叉表字段Pattern APattern BPattern CN / K / dtype / tile_size✅✅✅total_tiles / core_num✅✅✅tiles_per_core (S_c)11✅elements_per_core (E_c)Ntile_size✅front/last_core_tiles➖➖✅last_tile_sizeN✅✅merge_rounds_phase2/3➖1轮 (Phase 3 only)✅once_max_merge/output➖✅✅workspace_bytes➖➖✅7. 约束检查清单N tileSize × coreNum? (Pattern C前提)tileSize 4096?Phase 2循环:while listNum ! 1Phase 3循环:while listNum MGetCoreWsOffset(i) i × E_c × 2 (直接乘法)truncationFlag在归并执行后设置workspace按核数分配 (非总元素数)【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考