77 Star 593 Fork 1.1K

Ascend/pytorch

想对torch_npu 算子的调用进行修改,但找不到reshape算子

DONE
需求
创建于  
2024-11-26 19:28

torch_npu版本: v2.1.0-5.0.rc3
CANN: 7.0.RC1

对torch_npu 的源码pytorch/third_party/op-plugin/op_plugin/ops/base_ops/opapi路径下进行修改算子,再使用源码编译安装torch_npu插件,输出算子的某些信息达到目的

例如修改pytorch/third_party/op-plugin/op_plugin/ops/base_ops/opapi/AddKernelNpuOpApi.cpp这个文件(如下图所示),测试脚本会在
torch_npu.npu.set_compile_mode(jit_compile=False)的模式下使用add,最终会在终端输出某些信息。
输入图片说明
输入图片说明

现在我构建的一个脚本中有调用到reshape算子,但是没有在pytorch/third_party/op-plugin/op_plugin/ops/base_ops/opapi下找到reshape算子,在pytorch/third_party/op-plugin/op_plugin/ops/base_ops/aclops中找到了,但是修改后,在torch_npu.npu.set_compile_mode(jit_compile=False)的模式下不会调用。

请问torch_npu.npu.set_compile_mode(jit_compile=False)状态下,reshape应该在哪里找呢!!!!!不仅仅是reshape,transpose、permute、expand 这几个算子都找不到

还有个疑问,torch_npu 的作用是衔接pytorch,让算子在能够在npu上下发且执行,如果脚本能够在npu上正常运行,可否说明脚本中所有算子都在torch_npu上有实现,应该不存在torch上的算子没有经过torch_npu就可以在npu上执行吧

评论 (10)

lishunsheng 创建了需求 6个月前

reshape是view操作,使用的原生逻辑,其他算子也有类似情况,可以通过profiling观察算子调用信息
https://www.hiascend.com/document/detail/zh/canncommercial/80RC3/devaids/devtools/profiling/atlasprofiling_16_0006.html

请问原生逻辑指的是pytorch中原本定义的操作,不需要通过torch_npu吗

如果我想输出算子的输入输出地址需要修改pytorch的源码吗

profiling能看到算子调用的顺序,我看到后面有些算子最后去调用aclnnXX算子去实现aten:XX。但有些算子一开始是调用aten:XX,最终还是aten:XX,这是不是就意味着使用了pytorch的原生逻辑

是的,不需要torch_npu处理

python侧应该也可以打印tensor地址,如果你需要查看c++侧调用各阶段的地址,那需要修改pytorch的源码

大概可以这么理解,如果有torch_npu适配逻辑对应会有torch_npu这边的调用栈,如果在pytorch社区代码中完成调用就不会走到torch_npu这边

感谢您的回复,那这些view操作走的是原生逻辑的话,是说明pytorch是可以在npu上修改张量吗,也就是某些算子可以直接从pytorch下发给torch_npu

您好,针对之前的问题还有些疑问,那这些view操作走的是原生逻辑的话,是说明pytorch是可以在npu上修改张量吗,也就是某些算子可以直接从pytorch下发给npu执行吗?还是说他们是在cpu侧进行执行的,再把结果返回给npu。

view操作不会实际修改tensor的实际内存也就是storage,他只会修改上层的描述性信息
https://stackoverflow.com/questions/42479902/what-does-view-do-in-pytorch

huangyunlong 任务状态TODO 修改为WIP 6个月前
huangyunlong 任务状态WIP 修改为DONE 6个月前

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
优先级
预计工期 (小时)
开始日期   -   截止日期
-
置顶选项
参与者(2)
huangyunlong-huangyunlong2022 lishunsheng-q121811682
Python
1
https://gitee.com/ascend/pytorch.git
git@gitee.com:ascend/pytorch.git
ascend
pytorch
pytorch

搜索帮助