已合并
修复logspace算子报错信息不一致和非连续精度问题 #4235
maoyuanpeng1创建于 2月10日
修复logspace算子报错信息不一致和非连续精度问题 #4235
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 maoyuanpeng1 的贡献)2月10日 创建了 pull request,commit a0a62450
AtlasAccount
2月10日 评论:
2月10日 评论:
ascend-robot
2月10日 评论:
2月10日 评论:
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
以下是根据您提交的修改文件推荐的Reviewer和Committer序列,需各模块评审通过后方可合入.
| Module List | Reviewers | Committers |
|---|---|---|
| repo-Ascend/op-plugin | li_jing_hw, liwei386, zqwenn, wanglijun55, dilililiwhy | zqwenn, guoqi1024, wangmin0104, liwei386, shaoyf |


2月10日 修改了pull request 的描述
2月10日 修改了pull request 的描述
此处折叠了111条消息 查看更多
2月13日 修改了pull request 的描述
wangmin0104
2月13日 评论:
2月13日 评论:
/approve


2月13日 添加了label:approved
ascend-robot
2月13日 评论:
2月13日 评论:
Review Guide
This pull-request passes review.
Committers who wrote a comment of /approve are: wangmin0104.
Reviewers who wrote a comment of /lgtm are: liangsongwei, wanglijun55, liangchenghui, wangmin0104.


2月13日 合入了pull request
【合入来源】
API一致性问题:
【修改方案】
问题一:
复现脚本:
原因:
原生logspace算子走的是组合算子流程。
- func: logspace(Scalar start, Scalar end, int steps, float base=10.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor dispatch: CompositeExplicitAutograd: logspace原生实现:
原生实现在
linspace_logspace_infer_options进行了类型检测,并最终调用了empty和logspace_out算子。解决方法:
删除 aten::logspace 在 privateuse1 上的注册和实现,改为复用原生 torch 在 CompositeExplicitAutograd 上的实现。
问题二:
复现脚本:
原因:
out=x.narrow(1,1,2)是一个非连续视图,元数据是size=[2,2], stride=[3,1], storage_offset=1,正确写入位置应是物理索引[1,2,4,5]。当前实现里
CheckOut(..., {steps})在out.shape != {steps}时会触发resize_,把out重排成一维连续张量(stride 变成连续),写入映射变成[1,2,3,4]。因此
4,8被写到了第二行前两列,结果变成[[0,1,2],[4,8,0]],而不是[[0,1,2],[0,4,8]]。本质是resize_破坏了原非连续视图的stride语义。解决方法:
out.numel() != steps时才out.resize_({steps})(容量不匹配才重置)。out.numel() == steps时保持原out的 shape/stride,不要改元数据;LogSpaceD对输出要求为1维,当out不为1维时,使用view生成临时1维张量。问题三:
解决方法:
优化 linalg_qr 在输入维度 <= 2 时的报错信息。
【资料变更】
【接口变更】
【功能验证】
【CheckList】