- 本工具是
ditorch
的测试工具,用于在不同的国产设备上运行PyTorch
官方的测试用例。 - 目前只适配了
torch_npu
。
由于PyTorch
官方的测试用例主要是针对CUDA设备的,所以需要一些改动才能适配国产设备。
通过运行如下命令,即可完成对PyTorch测试脚本的处理。
python main.py
main.py主要进行以下工作:
a. 克隆PyTorch
官方仓库(以下称为origin_torch)
b. 过滤部分origin_torch中不必要的测试脚本,并将剩余的测试脚本拷贝到processed_tests路径下
c. 对processed_tests路径中的测试脚本进行处理
使用的测试框架是unittest
,支持以下的命令行选项:
- 执行单个测试脚本
以test_nn.py为例
python test_nn.py
- 测试单个测例
可以通过以下命令来运行某个特定的测例
python -m unittest test_file.Test_Class.test_method
- -k
只运行匹配模式或子字符串的测试方法和类。
以test_autocast.py为例:
python test_autocast.py -v -k test_autocast_nn_fp32
- -f --failfast
当出现第一个错误或者失败时,停止运行测试。
-
测试Error和Failure自动记录
测试结果为Error和Failure的测例会被自动记录到unsupported_test_cases下的json文件
记录格式为:
"{test_name}": ["{Error type}", ["{error reason}"]]
可以手动对json文件进行编辑。 -
根据DISABLED_TESTS_FILE跳过测例
export DISABLED_TESTS_FILE=./unsupported_test_cases/.pytorch-disabled-tests.json
如果不是在test目录下运行测试用例,需要传入.pytorch-disabled-tests.json的绝对路径。