viable/strict/1788272892: [Test] Generalize `test_mkldnn.py` tests and enable on XPU (#191740)
PyTorch 的 PR #191740 重构并泛化了 test_mkldnn.py 测试,使其支持多种加速设备(如 CUDA、XPU),而非仅限 CUDA。具体改动包括:清理 TestMkldnn 类,移除过时空行和未使用的设备参数;将 TestMkldnn 重构为参数化类,用 @parametrize 替换 @dtypes,用 instantiate_parametrized_tests 替换 instantiate_device_type_tests,并为 CPU-only 测试硬编码 device = "cpu";将设备相关测试(如 test_unsupported)提取到单独的 TestMkldnnDevice 类,并通过 instantiate_device_type_tests 实例化。
发展脉络
- 首次出现viable/strict/1788272892: [Test] Generalize `test_mkldnn.py` tests and enable on XPU (#191740)PyTorch Core
- 当前判断PyTorch 持续扩展对非 CUDA 加速器(如 XPU)的支持,反映了 AI 硬件生态的多元化趋势。测试框架的泛化是这一趋势的基础工作,有助于降低新硬件适配的门槛,推动更多硬件厂商接入 PyTorch 生态。Agent Pulse · 分析
PyTorch 的 PR #191740 重构了 test_mkldnn.py 测试,使其不再硬编码 CUDA,而是支持多种加速设备(如 XPU)。改动包括清理代码、将 TestMkldnn 类参数化以支持多设备,并将设备相关测试提取到独立类。这有助于在 XPU 等新硬件上启用测试,提升测试覆盖率和可维护性。
该 PR 展示了 PyTorch 测试框架的演进:通过参数化测试类(@parametrize)和 instantiate_parametrized_tests 替代传统的 instantiate_device_type_tests,使得测试可以更灵活地适配多设备。同时,将设备相关测试与 CPU-only 测试分离,明确了测试的适用范围。这为其他模块的测试泛化提供了参考模式。
PyTorch 持续扩展对非 CUDA 加速器(如 XPU)的支持,反映了 AI 硬件生态的多元化趋势。测试框架的泛化是这一趋势的基础工作,有助于降低新硬件适配的门槛,推动更多硬件厂商接入 PyTorch 生态。
该 PR 降低了 PyTorch 对 CUDA 的依赖,增强了其对多种硬件的兼容性,有助于吸引更多硬件厂商和用户,扩大生态影响力。对于依赖特定硬件的企业,这提供了更多选择,可能降低长期成本。
未来,PyTorch 可能进一步推广这种参数化测试模式,覆盖更多模块和设备。随着 XPU 等硬件的成熟,相关测试的启用将加速,但需关注测试覆盖率和维护成本。