已开启
【API一致性任务】torch.UntypedStorage.to NPU 测试适配方案 #4041
Wo150创建于 8月15日
8月15日 关联了pull request:docs:The test case coverage for the torch.UntypedStorage.to API is incomplete; additional test cases and docs need to be added.
8月17日 添加了label:bot-triaged
TorchNPU-Bot
8月17日 评论:
8月17日 评论:
检测到当前 issue 已关联 PR !44649,自动添加标签:bot-triaged


8月18日 添加了label:help-wantedevent: api-consistency
TorchNPU-Bot
8月18日 评论:
8月18日 评论:
检测到社区任务相关 issue,自动添加标签:event: api-consistency、help-wanted


11 天前 关联了pull request:docs:Complete the documentation for the three APIs: torch.UntypedStorage.to, torch.UntypedStorage.untyped, torch.distributed.tensor.DTensor.placements
torch.UntypedStorage.to NPU 测试适配方案
一、API 功能说明
适用版本:v2.7.1、v2.11.0、v2.12.0、master
当前状态: 有效。
可见性: 公开。
功能:
torch.UntypedStorage.to将无类型存储转移到指定设备;当目标设备与当前设备一致时可直接返回当前存储,否则创建目标设备上的存储并复制原始字节内容。cuda和hpu等存储设备转换入口会复用该方法。参数:
device指定目标设备;non_blocking控制在底层条件允许时是否采用非阻塞复制,默认值为False。返回: 返回位于目标设备、保存相同存储内容的
torch.UntypedStorage。设备约束: 未发现 Python 层显式设备限制;设备能力跟随输入张量并由底层实现决定。
二、PyTorch 社区测试用例情况
适用版本:v2.7.1、v2.11.0、v2.12.0
PyTorch 社区测试中检索到以下与
torch.UntypedStorage.to相关的间接用例:test/test_torch.pytest_storage_all_devicesto调用,验证存储在不同可用设备间转换时的设备属性和内容一致性;相关包装入口包括cuda和hpu。现有社区测试覆盖了通用设备转换路径,但未形成面向 NPU 的非阻塞选项、同设备返回、空存储、跨 NPU 设备和非法参数专项验证。
适用版本:master
PyTorch 社区测试中检索到以下与
torch.UntypedStorage.to相关的直接或间接用例:test/test_torch.pytest_storage_all_devicesto调用,验证存储在不同可用设备间转换时的设备属性和内容一致性;相关包装入口包括cuda和hpu。test/test_xpu.pytest_storage_pin_memory现有社区测试覆盖了通用设备转换和 XPU 固定内存相关路径,但未形成面向 NPU 的非阻塞选项、同设备返回、空存储、跨 NPU 设备和非法参数专项验证。
结论:PyTorch社区已有测试用例,但是测试用例不全
三、API 测试用例补齐及适配方案
适配方案所属版本:v2.7.1、v2.11.0、v2.12.0、master
新增测试文件
test/test_untyped_storage_to.py,补充以下测试用例:test_to_npu_device_typestorch.device等目标设备表示方式,将存储转移到当前 NPU,验证返回类型、目标设备和存储内容。test_to_npu_non_blocking_optionstest_to_cpu_non_blocking_optionsnon_blocking为None、False和True的情况,验证目标设备、非固定内存状态及内容。test_to_same_npu_returns_selftest_to_empty_storagetest_to_another_nputest_to_invalid_argumentsnon_blocking类型,验证抛出TypeError或RuntimeError。测试内容: 测试在 NPU、CPU、固定内存和多设备场景下调用
torch.UntypedStorage.to,覆盖设备参数表示、阻塞与非阻塞复制、同设备快速路径、空存储、跨设备复制和非法参数,并通过对象身份、返回类型、目标设备、固定内存状态、字节内容和异常类型进行断言。辅助方法通过在存储上构造uint8张量统一校验原始字节内容。新增原因及必要性: PyTorch 社区现有相关用例主要覆盖通用设备转换及部分固定内存路径,未直接覆盖上述 NPU 专项行为。新增测试用于确认存储在 NPU 与 CPU 之间、同一 NPU 以及不同 NPU 之间转换时的内容和对象语义,并保护非阻塞复制、空存储及参数校验行为免受后续实现回归影响。
四、资料变更
适用版本:v2.7.1、v2.11.0、v2.12.0、v2.13.0
结论:涉及。
当前API在master分支下的docs / zh / api / native_api 下的各版本文档资料中均未记录,需要补齐。
五、接口变更
适用版本:v2.7.1、v2.11.0、v2.12.0、master
结论:不涉及。
本次提交仅新增
test/test_untyped_storage_to.py测试文件,未修改 API 实现、声明、注册或跨仓依赖,也未改变客户可见的参数、返回值、设备转换语义和运行行为,因此不涉及接口变更。六、功能验证
v2.7.1
执行命令:
结果:
v2.11.0
执行命令:
结果:
v2.12.0
执行命令:
结果:
master
执行命令:
结果:
以下是A5服务器验证结果:
获取芯片型号命令:
执行结果:
参考截图:

v2.7.1
执行命令:
结果:
v2.11.0
执行命令:
结果:
v2.12.0
执行命令:
结果:
master
执行命令:
结果: