已合并
refactor: clarify SIMT launch and internal option semantics #1774
yrz1027创建于 18 天前
refactor: clarify SIMT launch and internal option semantics #1774
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yrz1027 的贡献)18 天前 添加了label:enhancement
atomgit-bot
18 天前 评论:
18 天前 评论:
变更摘要
该 PR(分支名 fix/rename-simt-dcache-semantics)是一次语义澄清与重命名重构:将 Super Kernel 内部"选项(inner option)"体系重塑为"内部能力(capability)"体系,并将 SIMT 场景下"最小可用 UBUF 大小"的计算语义改为"所有 SIMT 子任务共同允许的最大 DCache 大小(skMaxDcacheSize)"。核心变化包括 SkInnerOptionType 更名为 SkInnerCapability、GetOption(SkInnerOptionType) 接口被 IsInnerCapabilityEnabled(SkInnerCapability) 取代、SkLaunchInfo 字段 minAvailableUbufSize/hasMinAvailableUbufSize 更名为 skMaxDcacheSize/useSimtEntry,同时 ApplySoCSpecificOptions 改为直接依据 SkKernelArch::DAV_3510 判定能力开关,并同步更新了相关单测。
主要改动
- 内部选项枚举与接口重构:
SkInnerOptionType(ENABLE_MIX_KERNEL_SPLIT/ENABLE_SIMT_OP_CHECK/ENABLE_SET_DYN_UBUF_SIZE)更名为SkInnerCapability(MIX_KERNEL_SPLIT/SIMT_OP_CHECK/DYN_UBUF_SIZE),删除GetOption(SkInnerOptionType)的 const/非 const 重载,新增统一的IsInnerCapabilityEnabled(SkInnerCapability)布尔判定接口,innerOptionMap更名为innerCapabilityMap。 - SIMT DCache 语义澄清与重命名:将
GetMinSimtAvailableUbufSize/SimtAvailableUbufInfo重构为CalculateSimtDcacheSize/SimtDcacheSizeResult(字段改为hasSimtTask/skMaxDcacheSize),SetupLaunchKernelCfgWithDynUbuf(minAvailableUbufSize)更名为SetupLaunchKernelCfgWithMaxDcacheSize(skMaxDcacheSize),SkLaunchInfo中minAvailableUbufSize/hasMinAvailableUbufSize更名为skMaxDcacheSize/useSimtEntry,sk_node.cpp的Update与sk_optimizer.cpp日志随之同步更新。 - SoC 能力开关逻辑简化:
ApplySoCSpecificCapabilities直接依据GetCurrentSkKernelArch() == SkKernelArch::DAV_3510批量启用三项能力,移除了原先基于GetSocName()的判定;DEFAULT_INNER_CAPABILITIES表取代DEFAULT_INNER_OPTION_FACTORIES与FindDefaultInnerOptionFactory。 ToJson输出与单测同步调整:inner_options序列化改为遍历DEFAULT_INNER_CAPABILITIES并通过IsInnerCapabilityEnabled输出布尔值;test_sk_options_manager.cpp由基于 socName 的死亡测试改为基于GetCurrentSkKernelArchmock 的能力启停测试,test_sk_node.cpp、test_sk_task_builder.cpp相应改用SetInnerCapability/SetSimtOpCheckCapability辅助并断言新字段。


atomgit-bot
18 天前 评论:
18 天前 评论:
18 天前 添加了label:stat/needs-squash
此处折叠了147条消息 查看更多
XuebinYang
14 天前 评论:
14 天前 评论:
/approve


14 天前 添加了label:lgtmapproved
CANN-robot
14 天前 评论:
14 天前 评论:
The MR can not be merged, because of CodeReview discussion not resolved
If you want to solve this problem, you can click here to do it in the FAQs.


14 天前 解决了最后一个问题
14 天前 合入了pull request,合并节点 SHA:28039b691420e67207f0f0500e97ab5925fd825a
Pull Request
描述
skMaxDcacheSize、useSimtEntry表达最终 launch 信息。SIMT_OP_SUPPORT,统一控制 SIMT 子任务分析、DCache 约束计算和 SIMT entry 配置;MIX_KERNEL_SPLIT继续独立控制 MIX kernel 同步关系构造。SkInnerOptionType和IsInnerOptionEnabled()管理,并通过ApplyArchSpecificOptions()按SkKernelArch启用;DAV3510 启用 MIX kernel split 和 SIMT 支持,DAV2201 保持默认关闭。SuperKernelKernelNode::Update()和SuperKernelMemoryNode::Update()使用局部updateParams构造并提交 Runtime 参数,更新成功后同步到成员taskParams,保证后续 dump 和查询读取到最新任务状态。taskParams。SimtDcacheSizeResult、isValid、skMaxDcacheSize等命名,并补充最终useSimtEntry、skMaxDcacheSize日志,使变量和日志与实际计算语义一致。变更类型
关联的Issue
无。
如何测试
cmake --build build --target super_kernel_aot_utest -j 8,构建通过。build/super_kernel/tests/aot/ut/super_kernel_aot_utest --gtest_filter='SkNodeTest.*',93/93 用例通过。核对清单
其他信息