| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 30 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
amct_ops 测试说明
tests/amct_ops 中的测试依赖已编译好的 amct_ops Python 包和算子 .so。执行测试前需要先构建 amct_ops。
方式一:使用 staging 运行(推荐开发使用)
bash amct_ops/ops_build.sh <op_name>
PYTHONPATH=amct_ops/staging python3 -m unittest <test_module>
其中 <op_name> 为 amct_ops 下的算子目录名,<test_module> 为
tests.amct_ops 下的 unittest 模块名,例如 tests.amct_ops.test_hifloat8_cast。
如果算子需要特定 SOC 或其他构建参数,按算子 README 或 ops_build.sh --help
补充对应参数。例如 SVDQuant 当前仅在 ascend950 SOC 上构建,运行方式为:
bash amct_ops/ops_build.sh --soc ascend950 svd_quant
PYTHONPATH=amct_ops/staging python3 -m unittest tests.amct_ops.test_svd_quant
方式二:安装 wheel 后运行
bash amct_ops/ops_build.sh <op_name>
pip install amct_ops/dist/amct_ops-*.whl
python3 -m unittest <test_module>
SVDQuant 的 wheel 安装运行示例:
bash amct_ops/ops_build.sh --soc ascend950 svd_quant
pip install amct_ops/dist/amct_ops-*.whl
python3 -m unittest tests.amct_ops.test_svd_quant
环境要求
- 已 source CANN 环境变量,例如
$ASCEND_HOME_PATH/set_env.sh - 当前环境可用
torch、torch_npu - 当前机器可访问 NPU,测试会调用
torch.npu.set_device(0) - 特定算子可能有额外依赖或平台约束;例如
test_svd_quant依赖已构建或已安装的 SVDQuant 自定义算子,当前构建脚本仅在ascend950SOC 上构建该算子
HiFloat8 dtype 冒烟验证
run_hifloat8_dtype_smoke.py 使用固定的 FP16/BF16 输入验证 dtype 层的原生
HiFloat8 cast、amct_ops fallback 和自动路由。脚本会覆盖零值、正负数、幂次值、
边界值及固定随机数据,并输出包含 shape/dtype/device 契约和误差指标的 JSON。
# 仅验证 torch_npu 原生 HiFloat8 cast
python3 tests/amct_ops/run_hifloat8_dtype_smoke.py --backend native
# 仅验证 amct_ops hifloat8_cast
PYTHONPATH=amct_ops/staging \
python3 tests/amct_ops/run_hifloat8_dtype_smoke.py --backend amct_ops
# 原生优先,失败时自动尝试 amct_ops
PYTHONPATH=amct_ops/staging \
python3 tests/amct_ops/run_hifloat8_dtype_smoke.py --backend auto
可通过 --device npu:1 指定设备。成功时退出码为 0,并设置
hardware_path_verified: true;shape、dtype 或 device 契约失败时退出码为 1;
缺少 NPU、torch_npu、amct_ops 或后端执行失败时输出错误 JSON 并以非零状态退出。
仅通过 py_compile、--help 或 CPU 单元测试不能证明硬件路径可用。未在真实 NPU
环境执行上述命令时,原生和 amct_ops 路径均应记录为“硬件路径未验证”。