已关闭
【API一致性验证】torch.overrides.is_tensor_like、torch.utils.checkpoint.checkpoint、torch.utils.checkpoint.checkpoint_sequential #2529
yulin520创建于 6月27日关闭于 7月7日
6月27日 添加了label:usage
6月28日 修改了issue 的描述
6月28日 修改了issue 的描述
6月28日 修改了issue 的描述
6月29日 修改了issue 的描述
6月29日 修改了issue 的描述
6月29日 修改标题为 “【API一致性验证】torch.overrides.is_tensor_like、torch.utils.checkpoint.checkpoint、torch.utils.checkpoint.checkpoint_sequential”,原标题为“[Usage]: 【API一致性验证】checkpoint 与 is_tensor_like 相关 API”
6月29日 修改标题为 “【API一致性验证】torch.overrides.is_tensor_like、torch.utils.checkpoint.checkpoint、torch.utils.checkpoint.checkpoint_sequential”,原标题为“[Usage]: 【API一致性验证】checkpoint 与 is_tensor_like 相关 API”
6月29日 修改了issue 的描述
群青世界
7月7日 评论:
7月7日 评论:
根据已知信息,针对 torch.overrides.is_tensor_like、torch.utils.checkpoint.checkpoint 和 torch.utils.checkpoint.checkpoint_sequential 三个 API 在 Ascend NPU 环境下的 API 一致性验证工作已完成,总结如下:
一、验证范围
本次验证了 3 个 API 在 NPU Tensor 输入下的功能正确性,涵盖:
torch.overrides.is_tensor_like:验证 NPU Tensor 输入时返回 True。torch.utils.checkpoint.checkpoint:验证 NPU Tensor 输入下前向计算和反向传播正常。torch.utils.checkpoint.checkpoint_sequential:验证 NPU Tensor 输入和 NPU Module 场景下前向计算和反向传播正常。
二、修改方案
本任务仅涉及上游测试 patch 适配,不修改 torch_npu 功能实现代码:
test_upstream/test/test_autograd.py.patch:补充checkpoint_sequentialNPU 适配(Tensor 和 Linear 模块迁移至 NPU)。test_upstream/test/dynamo/test_misc.py.patch:补充is_tensor_likeNPU 适配(Tensor 迁移至 NPU)。- 保留已有
checkpointNPU 适配,同步覆盖验证。
三、验证结果
在 Ascend 910B4 NPU 环境下,5 个目标版本(v2.7.1、v2.9.0、v2.10.0、v2.11.0、v2.12.0)均验证通过,三个 API 功能正常。
四、结论
- 上述 3 个 API 功能本体无需新增 torch_npu 对齐代码。
- 已针对 5 个目标版本分别提交测试适配 PR,仅修改目标 patch 文件。
- 不涉及资料补齐,无需新增 doc PR。
- 已完成本地 NPU 运行验证及提交前静态审计,所有 API 行为与 PyTorch 官方社区一致。


7月7日 issue状态由 TODO 改变为 DONE
7月7日 关闭了 issue
7月7日 添加了label:resolved
任务背景
本 Issue 用于跟踪以下 PyTorch API 在 Ascend NPU 场景下的 API 一致性验证工作:
torch.overrides.is_tensor_liketorch.utils.checkpoint.checkpointtorch.utils.checkpoint.checkpoint_sequential验证目标是检查上述 API 在 NPU Tensor 场景下是否具备对应测试覆盖,并补充上游测试用例在 NPU 环境下的适配。
环境信息
操作系统
昇腾硬件信息
torch.npu.is_available() == Truetorch.npu.device_count() == 1CANN 软件版本
/usr/local/Ascend/ascend-toolkit/set_env.shcann-9.1.0-beta.1acl.get_soc_name() == Ascend910B4安装的对应软件版本
本任务针对 5 个 PyTorch 版本分支分别进行验证,对应安装版本如下:
v2.7.12.7.12.7.1.post4v2.9.02.9.02.9.0.post2v2.10.02.10.02.10.0v2.11.02.11.02.11.0rc1v2.12.02.12.02.12.0rc1说明:当前环境可从华为 PyPI 源获取
torch_npu 2.11.0rc1和torch_npu 2.12.0rc1,因此v2.11.0与v2.12.0分支采用对应 rc 版本进行本地运行验证。API 范围
torch.overrides.is_tensor_liketorch.overrides.is_tensor_like返回结果是否正确。torch.utils.checkpoint.checkpointtorch.utils.checkpoint.checkpoint在 NPU Tensor 输入下是否能够正常前向计算和反向传播。torch.utils.checkpoint.checkpoint当前已有相关 NPU 适配,本次验证中继续覆盖该 API。torch.utils.checkpoint.checkpoint_sequentialtorch.utils.checkpoint.checkpoint_sequential在 NPU Tensor 输入和 NPU 模块场景下是否能够正常前向计算和反向传播。修改方案
本任务仅涉及
test_upstream上游测试 patch 适配,不修改torch_npu功能实现代码,不改变客户可见 API 行为。计划修改内容如下:
在
test_upstream/test/test_autograd.py.patch中补充torch.utils.checkpoint.checkpoint_sequential相关用例的 NPU 适配:torch.nn.Linear模块迁移到 NPU;torch.utils.checkpoint.checkpoint_sequential在 NPU Tensor 输入和 NPU 模块场景下前向计算和反向传播正常。在
test_upstream/test/dynamo/test_misc.py.patch中补充torch.overrides.is_tensor_like相关用例的 NPU 适配:torch.overrides.is_tensor_like返回结果正确。保留已有
torch.utils.checkpoint.checkpoint相关 NPU 适配,并在本地验证中同步覆盖。验证计划
计划分别在以下目标分支提交测试适配 PR:
v2.7.1v2.9.0v2.10.0v2.11.0v2.12.0每个目标分支均进行对应版本的本地 NPU 运行验证,验证内容包括:
torch.utils.checkpoint.checkpoint_sequential NPU validation PASSEDtorch.overrides.is_tensor_like NPU validation PASSEDtorch.utils.checkpoint.checkpoint NPU validation PASSED当前验证结果
已在 Ascend 910B4 NPU 环境完成 5 个目标版本的本地运行验证,结果均通过:
v2.7.1:PASSEDv2.9.0:PASSEDv2.10.0:PASSEDv2.11.0:PASSEDv2.12.0:PASSED测试用例适配说明
经检查,上述 3 个 API 的功能本体不需要新增
torch_npuAPI 对齐代码。本任务仅补充 PyTorch 官方上游测试用例在 NPU 场景下的适配。涉及的测试 patch 文件如下:
test_upstream/test/test_autograd.py.patchtest_upstream/test/dynamo/test_misc.py.patch主要适配内容如下:
torch.utils.checkpoint.checkpoint_sequentialtorch.nn.Linear模块迁移到 NPU;torch.overrides.is_tensor_liketorch.overrides.is_tensor_like返回结果正确。torch.utils.checkpoint.checkpointtorch.utils.checkpoint.checkpoint在 NPU Tensor 输入下前向计算和反向传播正常。资料检查
已检查
docs/zh/native_apis中相关 API 的资料支持情况。以下 3 个 API 在目标版本资料中均已有说明:
torch.overrides.is_tensor_liketorch.utils.checkpoint.checkpointtorch.utils.checkpoint.checkpoint_sequential因此本任务不涉及资料补齐,不需要新增 doc PR。
验证方式
本地验证基于 Ascend 910B4 NPU 环境,针对 5 个目标版本分别创建独立 Python 环境,并安装对应版本的
torch与torch_npu。验证内容包括:
torch.utils.checkpoint.checkpoint_sequentialtorch.overrides.is_tensor_liketorch.overrides.is_tensor_like返回 True。torch.utils.checkpoint.checkpoint各版本验证结果如下:
torch.utils.checkpoint.checkpointtorch.utils.checkpoint.checkpoint_sequentialtorch.overrides.is_tensor_likev2.7.12.7.12.7.1.post4v2.9.02.9.02.9.0.post2v2.10.02.10.02.10.0v2.11.02.11.02.11.0rc1v2.12.02.12.02.12.0rc1说明:当前华为 PyPI 源可获取
torch_npu 2.11.0rc1与torch_npu 2.12.0rc1,因此v2.11.0与v2.12.0分支采用对应 rc 版本完成本地运行验证。相关 PR
测试 PR:
v2.7.1:https://gitcode.com/Ascend/pytorch/pull/39482v2.9.0:https://gitcode.com/Ascend/pytorch/pull/39483v2.10.0:https://gitcode.com/Ascend/pytorch/pull/39484v2.11.0:https://gitcode.com/Ascend/pytorch/pull/39485v2.12.0:https://gitcode.com/Ascend/pytorch/pull/39486提交前审计结果
已完成提交前静态审计:
torch/torch_npu环境中完成本地 NPU 运行验证。测试 PR 中仅包含以下目标文件修改:
test_upstream/test/test_autograd.py.patchtest_upstream/test/dynamo/test_misc.py.patch验证结论
上述 3 个 API 均已完成 NPU 场景下的一致性验证:
torch_npu对齐代码;torch.utils.checkpoint.checkpoint_sequential相关测试已完成 NPU Tensor 与 NPU Module 适配;torch.overrides.is_tensor_like相关测试已完成 NPU Tensor 适配;torch.utils.checkpoint.checkpoint已在本地验证中同步覆盖;CheckList