已关闭
[Feature]: msprechecker 工具增加对环境变量HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT的预检 #394
Mitchell创建于 2月26日关闭于 3月10日
2月26日 添加了label:triaged
2月26日 添加了label:feature
3月10日 关联了pull request:fix(mindie): add system page size validation for HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT variable
3月10日 关联了pull request:fix(mindie): add system page size validation for HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT variable
刘家旺
3月10日 评论:
3月10日 评论:
Feature 已合入,修改内容详见:https://gitcode.com/Ascend/msit/pull/4988


刘家旺
3月10日 评论:
3月10日 评论:
/label add resolved


3月10日 添加了label:resolved
3月10日 issue状态由 TODO 改变为 DONE
3月10日 关闭了 issue
提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
💻 需求背景、当前现状、期望实现的功能内容、具体的设计方案、以及测试方案
由于一些历史问题,在MindIE镜像内置的推荐环境变量配置和性能基线复现配置中均有HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT=TRUE。
按照HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT - CANN文档说明,此环境变量仅对Host侧小页内存页表大小非4KB的场景生效,若Host侧小页内存页表大小是4KB,无论此环境变量取值如何,都采用PCIe Direct的方式提交RDMA任务。
openeuler和Ubuntu系统基本都是4KB内存分页,在绝大多数情况下该变量是不生效的;少数情况下,部分机器为了提高训练性能,裸金属上更换了64k分页系统内核。此时该变量生效,会导致内存逐渐碎片化,申请不到整块内存,服务拉起过程中会发生OOM。
综上,MindIE推理服务上配置HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT=TRUE,或变量不生效,或导致服务OOM。需要msprechecker 工具增加相应的预检逻辑。
替代方案
补充说明
可以通过命令
getconf PAGESIZE检测系统分页大小,docker容器内是使用的裸金属系统内核,命令是否在容器内执行不重要。回显为4096时,该环境变量不生效;回显为其他数字如65536时,存在OOM风险,服务不可用。补充:对于64KB (65536)分页大小的系统内核,不配置HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT变量会导致通过HDC的方式提交RDMA任务,存在大幅度的性能劣化。建议提示更换分页大小为4096的系统内核。
欢迎加入社区,感谢您对社区的贡献 🎉!