已合并
[docs] Support pinned_max_round_threshold_mb and pinned_max_cached_size_mb #41563
liujunzhu创建于 7月13日
[docs] Support pinned_max_round_threshold_mb and pinned_max_cached_size_mb #41563
已合并
liujunzhu创建于 7月13日
liujunzhu
liujunzhu成员
7月13日

【合入来源】

如有社区issue,请关联issue链接
请勿携带内部流程信息(需求链接、问题单、内部issue等)

【修改方案】

请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列
如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容)

PyTorch 社区在 AcceleratorAllocatorConfig 中新增了 pinned_max_round_threshold_mb 和 pinned_max_cached_size_mb 两个 pinned memory 分配器配置选项,用于缓解大块 pinned memory 的内存浪费问题:

  • pinned_max_round_threshold_mb:分配尺寸向上取整到 2 的幂次的上限阈值(MB)。超过此阈值的分配使用精确请求大小,跳过 power-of-2 取整。默认 size_t::max()(即禁用)。
  • pinned_max_cached_size_mb:缓存到 free list 的块大小上限阈值(MB)。超过此阈值的块在释放时立即归还给 OS,不再进入 free list 缓存。默认 size_t::max()。

torch_npu 的 NPUCachingHostAllocatorImpl 继承自 PyTorch 的 CachingHostAllocatorImpl,基类 allocate() 与 maybe_cache_block() 中已实现这两个阈值的核心逻辑(通过虚方法读取配置)。torch_npu 需在配置层与运行时层完成对接,使社区新增选项能在 NPU pinned memory 路径生效。

【资料变更】

请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及”

是,环境变量PYTORCH_NPU_ALLOC_CONF新增 pinned_max_round_threshold_mb 和 pinned_max_cached_size_mb 配置项。

【接口变更】

请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及”

环境变量PYTORCH_NPU_ALLOC_CONF新增 pinned_max_round_threshold_mb 和 pinned_max_cached_size_mb 配置项。

【功能验证】

说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤
新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图

本PR仅修改资料,不涉及功能验证。

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 liujunzhu 的贡献)
liujunzhuliujunzhu成员
7月13日 创建了 pull request,commit ee8eb825
liujunzhuliujunzhu成员
7月13日 关联了issue:[Feature]: 支持pinned_max_round_threshold_mb和pinned_max_cached_size_mb内存优化项
atomgit-bot
atomgit-bot
7月13日 评论:

变更摘要

此 PR 属于文档类型(docs)更新,主要为两个与 pinned 内存相关的配置参数补充说明文档。新增内容涉及 pinned_max_round_threshold_mb 和 pinned_max_cached_size_mb 两个配置项,共新增 17 行文档描述,无代码逻辑变更。

主要改动

  • 新增 pinned_max_round_threshold_mb 文档说明:为 pinned 内存轮次阈值参数添加配置文档,描述其用途与作用。
  • 新增 pinned_max_cached_size_mb 文档说明:为 pinned 内存最大缓存大小参数添加配置文档,描述其用途与作用。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月13日 评论:

代码审查

审查总结

对唯一变更文件 docs/zh/environment_variable_reference/PYTORCH_NPU_ALLOC_CONF.md 的审查已完成。

发现统计:

  • P0: 0
  • P1: 0
  • P2: 0
  • P3: 1(pinned_max_round_threshold_mb 和 pinned_max_cached_size_mb 缺少版本要求说明)

各文件审查结论:

  • docs/zh/environment_variable_reference/PYTORCH_NPU_ALLOC_CONF.md:新增的两个选项文档内容与 PR 设计方案一致,描述准确,示例无问题,交互约束说明正确。唯一不足是未标注版本要求。

整体风险评估: 低风险。这是纯文档变更,不涉及代码逻辑修改。文档内容事实正确,唯一的小缺陷是版本要求遗漏,但不影响正确使用——用户在低版本上使用时会收到框架已有的 "not support key" 警告,不会导致崩溃或数据损坏。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
不准确?
此处折叠了69条消息 查看更多
ascend-robotascend-robot成员
7月15日 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
7月15日 评论:
流水线 PR-pipeline_pytorch#45677 [ commitID:b4a1760f ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 🛑 >>>
Build_ARM 🛑 >>>
Build_LibTorch_x86 🛑 >>>
Build_LibTorch_ARM 🛑 >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
patch_test 🛑 >>>
恶意代码检查 Antipoison ✅ >>>
编码安全与规范检查 CodeCheck ✅ >>>
check_error ✅ >>>
CodeCheck_lintrunner ✅ >>>
开源片段检查 SCA ✅ >>>
开发者测试 UT_X86_Part_01 🛑 >>>
UT_X86_Part_02 🛑 >>>
UT_ARM_A3_Part_01 🛑 >>>
UT_ARM_A3_Part_02 🛑 >>>
UT_ARM_A2_Part_01 🛑 >>>
UT_ARM_A2_Part_02 🛑 >>>
UT_ARM_A2_Part_03 🛑 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_DIST_ARM_Part_01 🛑 >>>
UT_DIST_ARM_Part_02 🛑 >>>
UT_DIST_ARM_Part_03 🛑 >>>
UT_DIST_ARM_Part_04 🛑 >>>
UT_ARM_A2_Select_Part_01 🛑 >>>
UT_ARM_A2_Select_Part_02 🛑 >>>
流水线 PR-pipeline_pytorch ✅ >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, huangjingwei, liangsongwei, yashi999, culechan, Dring, wuyouqi1, L1919_snow, qq_52711437, WhiteNight12, nomiz, xiu_21, ffmh, wanglijun55, hss-shuai, husichao, smallsilly, lanshaozuishuai, jimmyisme1, lzy0920232, alpha-junh, Sunshine_Youngster, wei_zhuoyi, zhangyihuiben, zyw-hw, zzzkeke, rmch, yangch0324, LucciC, AACAES, renyujin, wjlflyer, senzhen-town, pengjingyou, qsc97, limuan, yule100, xiaoqi-zhou, kuhn7, chenxingying, hanye02, zichun_ye, anyrenwei, kkjocker, wangzili121, Lu_G, yvjc, puddingfjz, HandsoemLemon, bigprestigee1, huawuyi, zhenyu10, dairenjie, du-jin-hang, zou-jieyu, adelaideliu, TrHan, wanlinan, Windwindzzz, pengqihw, kisnwang, yuheng_wang, honghao_wang, jizewei, zhangguoguang, sunyu-xuan, chenrayray, hbhu_bin, liujunzhu, c_34, LiNuoh, maoyuanpeng1, zzhongmin, zhaoyu65, bellatan, jiabaolin, zhuofanshen, wencaiwen, lu_zhuge, caoshuyang, molly12, lyx324521, LQ1206, gitcode-chenjiao, cai-weiwei1989, CHDong, ogqin, yuanlipingGit, xuqinglin1, lqz2, zouwei1, chaoluoa, paradox325, jackzhang1116, yaoyao, akh, yujiacheng, dengjie0116, Hubert11111, Shine_Ws, wslhj555, longqiand, OYtao666, JiaqingQiang, luyyyy, Kingbelial, zhanghaiyu0101, wenxp1018, yanliu-luoluo, ksun_sekiro, liyong328, wgzheng, tangky, vivi_is_coding, aoiaoisola, weixin_44494597, wangmengmengwang65667, hid57809721, qq_35468730, comeonup, C547032, gcw_m5OQChA4, yao_yao_ling_xian, cnnbwcy, szqfes_12, cora_19, cann_lilin, can, shawnylee233, fanglanyue0916, hhz0, LiNuohang, taohuoquan]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
ascend-robotascend-robot成员
7月15日 关闭了关联的issue
ascend-robotascend-robot成员
7月15日 合入了pull request
ascend-robot
ascend-robot成员
7月15日 评论:
流水线 pytorch_gitcode_PR_multiVersion#12613 [ commitID:b4a1760f ] 已完成
likedislike