已合并
test: add torch.QInt32Storage.dtype validation cases #44071
test: add torch.QInt32Storage.dtype validation cases #44071
已合并
gcw_rZ2ZS0CZ创建于 16 天前
gcw_rZ2ZS0CZ
16 天前

【合入来源】

关联任务issue: https://gitcode.com/Ascend/pytorch/issues/3529

【修改方案】

torch.QInt32Storage.dtype
PyTorch 官方社区在 test/test_torch.py::TestTorch::test_storage_error(master 第 7814 行起,v2.7.1 第 7767 行起)中对
legacy storage 类有遍历式错误路径测试,将 torch.QInt32Storage 列入 quantized_storages 列表。但该测试遍历
torch._storage_classes 全局注册表,在 NPU 环境下会混入 torch.cuda.* 与 torch_npu.npu.* 等设备相关 storage 类,无法针对
QInt32Storage 做聚焦验证;且 test_torch.py 为大型社区文件,不宜叠加改动。因此新增独立测试文件
test/test_qint32_storage_dtype.py。
该 API 为设备无关的纯 Python legacy Storage 类(torch.storage._LegacyStorage 子类,对应 torch.qint32 量化 dtype)的
dtype 属性,不涉及 NPU 适配,不需要代码修改。
新增 test/test_qint32_storage_dtype.py,验证 torch.QInt32Storage.dtype 的类属性与实例属性(空 / size / 序列构造)。

【资料变更】

不涉及资料修改。torch.QInt32Storage 为 legacy typed storage 类,PyTorch 官方已在 dtype 属性上调用
_warn_typed_storage_removal 标记弃用,native_api 文档无需补充;非计算类 API 与数据类型无关。

【接口变更】

不涉及

【功能介绍】

torch.QInt32Storage.dtype 返回 torch.QInt32Storage 对应的量化 dtype(torch.qint32)。QInt32Storage 是
torch.storage._LegacyStorage 的量化子类,dtype 同时为类属性与实例属性,为设备无关的纯 Python 元数据。

【功能验证】

test_qint32_storage_dtype.py (torch.QInt32Storage.dtype)

  • test_class_dtype — 类属性 dtype 为 torch.qint32
  • test_instance_dtype — 空 / size(4) / 序列([0,1,2]) 三种构造的实例 dtype 均为 torch.qint32,且与类属性一致

运行命令:
python -m pytest /workspace/user_data/pytorch-v2.7.1/test/test_qint32_storage_dtype.py -v
运行结果:

========================= test session starts =========================
platform linux -- Python 3.12.13, pytest-8.3.2, pluggy-1.6.0 -- /workspace/envs/torch-npu-test/bin/python
cachedir: .pytest_cache
rootdir: /workspace/user_data/pytorch-v2.7.1
configfile: pyproject.toml
plugins: xdist-3.6.1
collected 2 items                                                     

../workspace/user_data/pytorch-v2.7.1/test/test_qint32_storage_dtype.py::TestQInt32StorageDtype::test_class_dtype PASSED [ 50%]
../workspace/user_data/pytorch-v2.7.1/test/test_qint32_storage_dtype.py::TestQInt32StorageDtype::test_instance_dtype PASSED [100%]

========================== warnings summary ===========================
test/test_qint32_storage_dtype.py::TestQInt32StorageDtype::test_class_dtype
 /workspace/user_data/pytorch-v2.7.1/test/test_qint32_storage_dtype.py:30: UserWarning: TypedStorage is deprecated. It will be removed in the future and UntypedStorage will be the only storage class. This should only matter to you if you are using storages directly.  To access UntypedStorage directly, use tensor.untyped_storage() instead of tensor.storage()
   self.assertIs(torch.QInt32Storage.dtype, torch.qint32)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
==================== 2 passed, 1 warning in 4.25s =====================

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 gcw_rZ2ZS0CZ 的贡献)
Ggcw_rZ2ZS0CZ
16 天前 创建了 pull request,commit 5913a2a9
Ggcw_rZ2ZS0CZ
16 天前 关联了issue:【社区任务】7月社区任务第四期-Ascend for PyTorch API 一致性开发(47)
atomgit-bot
atomgit-bot
16 天前 评论:

变更摘要

本次变更新增独立测试文件 test/test_qint32_storage_dtype.py,聚焦验证 torch.QInt32Storage.dtype 的类属性与实例属性。由于 PyTorch 社区测试 test_storage_error 在遍历 torch._storage_classes 全局注册表时会混入 torch.cuda.*torch_npu.npu.* 等设备相关 storage 类,无法在 NPU 环境下对 QInt32Storage 做针对性验证,因此新增该独立测试文件。该 API 为设备无关的纯 Python legacy Storage 类,不涉及代码逻辑修改。

主要改动

  • 新增测试文件 test/test_qint32_storage_dtype.py:创建独立的测试模块,包含 TestQInt32StorageDtype 测试类,继承自 TestCase,用于聚焦验证 torch.QInt32Storage.dtype 属性。
  • 新增 test_class_dtype 测试用例:通过 assertIs 断言 torch.QInt32Storage.dtype 类属性值为 torch.qint32,覆盖类级别 dtype 的验证。
  • 新增 test_instance_dtype 测试用例:覆盖空构造 torch.QInt32Storage()、指定大小 torch.QInt32Storage(4) 和序列构造 torch.QInt32Storage([0, 1, 2]) 三种实例化方式,验证每种方式下实例的 dtype 均为 torch.qint32,且与类属性 torch.QInt32Storage.dtype 一致。
likedislike
atomgit-bot
atomgit-bot
16 天前 评论:

代码审查

✅ 未发现问题

likedislike
ascend-robotascend-robot成员
16 天前 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
16 天前 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
test li_jing_hw, huangjingwei (2/2) li_jing_hw (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

gcw_rZ2ZS0CZ, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
ascend-robot
ascend-robot成员
16 天前 评论:

当前仓库存在以下 保护分支

Protected Branch Version Release
master
v2.10.0
v2.12.0
v2.7.1
v2.9.0
v2.11.0
v2.7.1-26.1.0
v2.11.0-26.1.0
v2.12.0-26.1.0
v2.10.0-26.1.0
v2.9.0-26.1.0
ci-test

评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作

注意:

  1. /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
  2. 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭
likedislike
ascend-robotascend-robot成员
16 天前 添加了label:ci-pipeline-running
ascend-robot
ascend-robot成员
16 天前 评论:

ascend docs pipeline is running...

likedislike
ascend-robotascend-robot成员
16 天前 添加了label:docs-ci-pipeline-running
ascend-robot
ascend-robot成员
16 天前 评论:

✅ 跳过 docs ci 检查,没有需要检查的文档文件

likedislike
ascend-robotascend-robot成员
16 天前 删除了label:docs-ci-pipeline-running
ascend-robotascend-robot成员
16 天前 添加了label:docs-ci-pipeline-success
ascend-robotascend-robot成员
16 天前 删除了label:ci-pipeline-running
ascend-robotascend-robot成员
16 天前 添加了label:ci-pipeline-passed
ascend-robot
ascend-robot成员
16 天前 评论:
流水线 PR-pipeline_pytorch#56951 [ commitID:d3480514 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_X86 >>>
Build_ARM >>>
Build_LibTorch_x86 >>>
Build_LibTorch_ARM >>>
Build_X86_torchair 🛑 >>>
Build_ARM_torchair 🛑 >>>
patch_test 🛑 >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 codecheck_pre-commit >>>
check_error >>>
lintrunner >>>
开源片段检查 SCA >>>
开发者测试 UT_ARM_A3_Part_01 >>>
UT_ARM_A3_Part_02 >>>
UT_ARM_A2_Part_01 >>>
UT_ARM_A2_Part_02 >>>
UT_ARM_A2_Part_03 >>>
UT_inductor_Part_01 🛑 >>>
UT_inductor_Part_02 🛑 >>>
UT_inductor_Part_03 🛑 >>>
UT_inductor_Part_04 🛑 >>>
UT_DIST_ARM_Part_01 🛑 >>>
UT_DIST_ARM_Part_02 🛑 >>>
UT_DIST_ARM_Part_03 🛑 >>>
UT_DIST_ARM_Part_04 🛑 >>>
UT_ARM_A2_Select_Part_01 >>>
UT_ARM_A2_Select_Part_02 >>>
流水线 PR-pipeline_pytorch >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员[wujinyuan1, huangjingwei, liangsongwei, yashi999, culechan, Dring, wuyouqi1, L1919_snow, qq_52711437, WhiteNight12, nomiz, xiu_21, ffmh, wanglijun55, hss-shuai, husichao, smallsilly, lanshaozuishuai, jimmyisme1, lzy0920232, alpha-junh, Sunshine_Youngster, wei_zhuoyi, zhangyihuiben, zyw-hw, zzzkeke, rmch, yangch0324, LucciC, AACAES, renyujin, wjlflyer, senzhen-town, pengjingyou, qsc97, limuan, yule100, xiaoqi-zhou, kuhn7, chenxingying, hanye02, zichun_ye, anyrenwei, kkjocker, wangzili121, Lu_G, yvjc, puddingfjz, HandsoemLemon, bigprestigee1, huawuyi, zhenyu10, dairenjie, du-jin-hang, zou-jieyu, adelaideliu, TrHan, wanlinan, Windwindzzz, pengqihw, kisnwang, yuheng_wang, honghao_wang, jizewei, zhangguoguang, sunyu-xuan, chenrayray, hbhu_bin, liujunzhu, c_34, LiNuoh, maoyuanpeng1, zzhongmin, zhaoyu65, bellatan, jiabaolin, zhuofanshen, wencaiwen, lu_zhuge, caoshuyang, molly12, lyx324521, LQ1206, gitcode-chenjiao, cai-weiwei1989, CHDong, ogqin, yuanlipingGit, xuqinglin1, lqz2, zouwei1, chaoluoa, paradox325, jackzhang1116, yaoyao, akh, yujiacheng, dengjie0116, Hubert11111, Shine_Ws, wslhj555, longqiand, OYtao666, JiaqingQiang, luyyyy, Kingbelial, zhanghaiyu0101, wenxp1018, yanliu-luoluo, ksun_sekiro, liyong328, wgzheng, tangky, vivi_is_coding, aoiaoisola, weixin_44494597, wangmengmengwang65667, hid57809721, qq_35468730, comeonup, C547032, gcw_m5OQChA4, yao_yao_ling_xian, cnnbwcy, szqfes_12, cora_19, cann_lilin, can, shawnylee233, fanglanyue0916, hhz0, LiNuohang, taohuoquan, Jesse, WSs_321]评论有效
  • compile、compile_inductor、compile_torchair : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
li_jing_hw成员
11 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
11 天前 添加了label:approved
Jingwei Huang
Jingwei Huang成员
9 天前 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
9 天前 添加了label:lgtm
ascend-robotascend-robot成员
9 天前 删除了label:ci-pipeline-passed
ascend-robotascend-robot成员
9 天前 合入了pull request
ascend-robot
ascend-robot成员
9 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#14050 [ commitID:d3480514 ] 已完成
likedislike