CANN/torchtitan-npu测试指南
测试使用指南
【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu
常用命令
单元测试
# 运行全部单元测试,并生成报告 sh build.sh -u --generate-report # 只运行本仓 `torchtitan-npu` 的单元测试 RUN_TORCHTITAN_UT=false sh build.sh -u --generate-report冒烟测试
# 运行默认 smoke 套件(core + extended) sh build.sh -s --generate-report # 只运行 core smoke ONLY_CORE_SMOKE=true sh build.sh -s --generate-report # 只运行 extended smoke ONLY_EXTENDED_SMOKE=true sh build.sh -s --generate-report # 只运行 upstream smoke ONLY_UPSTREAM_SMOKE=true sh build.sh -s --generate-report集成测试 (Integration Test)
tests/smoke_tests/integration_test.py是端到端集成测试入口,用于验证:
- 新增模型功能支持情况
- 特性兼容性
- 并行策略兼容性
运行方式
# 通过 build.sh 运行(默认运行 core + extended smoke) ONLY_CORE_SMOKE=true sh build.sh -s --generate-report # 独立运行 integration_test.py python tests/smoke_tests/integration_test.py output_dir \ --test_name all \ --ngpu 2命令行参数
| 参数 | 默认值 | 说明 |
|---|---|---|
output_dir | 无(必填) | 测试输出目录 |
--config_path | ./tests/smoke_tests/base_test.toml | 基础配置文件路径 |
--test_name | all | 指定测试用例名称 |
--ngpu | 2 | 最大 GPU 数 |
OverrideDefinitions 使用说明
OverrideDefinitions是定义集成测试用例的配置类:
OverrideDefinitions( override_args=[[...]], # 必填:命令行参数列表 test_descr="...", # 必填:测试描述 test_name="...", # 必填:测试名称 ngpu=2, # 可选:所需 GPU 数 disabled=False, # 可选:是否禁用 )新增测试用例步骤
- 打开
tests/smoke_tests/integration_test.py - 在
generate_smoke_tests()函数的smoke_cases列表中添加新配置:
OverrideDefinitions( [ [ "--model.name your_model", "--model.flavor your_flavor", "--parallelism.tensor_parallel_degree 2", ], ], "Your Model TP Test", "your_model_tp", ngpu=2, )- 运行测试验证:
python tests/smoke_tests/integration_test.py ./outputs --test_name your_model_tpbase_test.toml 配置文件
tests/smoke_tests/base_test.toml是集成测试的基础配置,所有测试都会基于这个配置文件运行,override_args中的参数会覆盖基础配置中的同名参数。
模型并行专项命令
# 基础模型并行冒烟测试 python3 -m pytest -v tests/smoke_tests/model_parallel/ # 多进程模型并行冒烟测试 RUN_MODEL_PARALLEL_MULTI_RANK=true torchrun --nproc_per_node=4 -m pytest -v tests/smoke_tests/model_parallel/什么时候用哪个命令
| 命令 | 适用场景 |
|---|---|
build.sh -u | 修改的是硬件无关逻辑,比如 converter、config、helper、patch |
build.sh -s | 修改的是真实 NPU 执行链路或 wrapper 行为,并希望跑默认的 core + extended smoke |
ONLY_CORE_SMOKE=true | 修改了最小训练主链路(即 integration_test 中定义的端到端集成测试) |
ONLY_EXTENDED_SMOKE=true | 修改了本仓特性或模型并行行为 |
ONLY_UPSTREAM_SMOKE=true | 修改依赖上游 torchtitan 集成链路的逻辑,或需要单独跑更重的 upstream smoke |
快速判断
- 只改了硬件无关逻辑:先跑
build.sh -u - 改了 NPU 特性链路或 wrapper:跑
build.sh -s - 改了训练主链路接线:至少跑
ONLY_CORE_SMOKE=true build.sh -s - 改了模型并行行为:跑
ONLY_EXTENDED_SMOKE=true build.sh -s - 需要检查上游集成兼容性:单独跑
ONLY_UPSTREAM_SMOKE=true build.sh -s
测试报告
- 输出目录:
test_reports/ - 常见产物:
*.xml:JUnit 结果*.html:开启--generate-report后生成的 HTML 报告coverage/:单元测试覆盖率报告README.md:自动生成的报告索引
使用建议
- 先跑和改动最匹配的最小命令。
- 不依赖 NPU 的改动,优先跑
build.sh -u。 - 能定向跑 smoke 子集时,就不要默认全量跑。
- 如果测试布局或执行方式变了,记得同步更新文档。
【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
