已合并
test: add put_metric coverage #42800
lgxxx创建于 26 天前
test: add put_metric coverage #42800
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 lgxxx 的贡献)atomgit-bot
26 天前 评论:
26 天前 评论:
变更摘要
此 PR 为 torch.distributed.elastic.metrics 模块的 put_metric 接口新增了单元测试覆盖。变更仅涉及 test/distributed/elastic/metrics/test_metrics_api.py 一个文件,在 ElasticMetricsApiTest 测试类中添加了 test_put_metric 测试方法,验证默认分组与自定义分组的指标发送、MetricData 记录字段的正确性以及 handler 的调用次数。同时补充了 put_metric 的导入声明,并修复了文件末尾的换行符缺失问题。
主要改动
- 新增
test_put_metric测试方法:在ElasticMetricsApiTest中新增测试用例,分别通过默认分组(torchelastic)和自定义分组(custom_group)调用put_metric,验证MetricHandler的emit被正确调用,且MetricData记录的group_name、name、value、timestamp字段与预期一致。 - 扩展导入声明:从
torch.distributed.elastic.metrics的导入中增加了put_metric,使测试用例可直接引用该函数。 - 修复文件末尾格式:补全了
run_tests()调用后的换行符,消除文件末尾缺失换行的格式问题。


ascend-robot
26 天前 评论:
26 天前 评论:
atomgit-bot
26 天前 评论:
26 天前 评论:
此处折叠了75条消息 查看更多
li_jing_hw
8 天前 评论:
8 天前 评论:
/approve


8 天前 添加了label:approvedlgtm
8 天前 删除了label:ci-pipeline-passed
8 天前 合入了pull request
ascend-robot
8 天前 评论:
8 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#13929 [ commitID:e8909970 ] 已完成


【合入来源】
https://gitcode.com/Ascend/pytorch/issues/3216
【修改方案】
API 与交付结论
torch.distributed.elastic.metrics.put_metric。put_metric处理结果的测试。test/distributed/elastic/metrics/test_metrics_api.py。test_upstreampatch:不涉及。put_metric是纯 Python、非计算类指标接口。分支
任务书 Issue:
Ascend/pytorch#3216。四个目标分支的 PR 均关联该 Issue。官方用例调查
PyTorch 官方存在
test/distributed/elastic/metrics/api_test.py,但现有用例只覆盖MetricHandler、MetricStream、prof等行为,没有直接调用并验证put_metric的处理器结果。另有
test/distributed/elastic/agent/server/test/api.py通过 mock 间接验证put_metric被调用,但不验证put_metric的默认metric_group、自定义metric_group、metric_name、metric_value或实际MetricData。因此需要在 torch-npu 现有 metrics 测试文件中新增直接行为用例,属于场景 1.3。
修改内容
新增
test_put_metric,覆盖:metric_group时使用默认torchelastic组。custom_group时使用自定义处理器。metric_name、空metric_name。metric_value。MetricData,验证group_name、name、value和timestamp。setUp/addCleanup恢复全局默认 handler 和 metrics map。修改文件:
【资料变更】
已检查 master 分支下以下资料条目:
五个版本均已有
torch.distributed.elastic.metrics.put_metric条目,支持状态一致为“是,暂不支持 Ascend 950DT”,因此不创建无意义资料 PR。该 API 为非计算类接口,资料中不涉及数据类型支持。【接口变更】
不涉及。本次不修改 PyTorch API 实现、函数签名、返回类型或跨仓接口,只新增直接测试覆盖。
【功能验证】
本地验证环境
执行命令
本地验证结果
v2.12.0 及 master 源码兼容性预验证中有 CuTeDSL 可选依赖缺失提示;该提示与纯 Python metrics 测试无关,未影响测试结果或退出码。
【CheckList】
NPU 功能验证补充
以下为当前 PR head commit 对应的单卡 NPU 实测环境、命令和结果: