Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》
我在RTX 3090(mindtorch0.2.1+mindspore2.2.14)上测试了我的代码,可以正常运行,但是在Ascend云脑的训练任务中就遇到了
E40021:Failed to compile Op
和$61001:input number is too much
等错误。我应该怎么解决这个问题呢,有点不知道从何入手?在CUDA上能成功运行的代码在迁移到Ascend平台上的时候有什么需要额外注意的地方吗?我查看过相关的文档,但是没有找到一个比较清晰的解决方案。谢谢谢谢你好,可以提供个简化的代码吗,从这个报错信息上看像是自动微分报的错,有可能是框架bug导致。一般如果期望GPU和NPU进行比较的时候,最好保持mindspore以及mindtorch的版本是一致的,可以快速排查是框架还是具体硬件算子的影响
我在官网上找到的GPU最新版本是mindtorch0.2.1+mindspore2.2.14(我在AutoDL上调试的),而Ascend调试任务只有mindtorch0.3版本的镜像可用。所以版本不一致,我晚点提供一个简化版的代码。
Ascend调试任务中,并且在图模式下,模型可以正常训练。但相同的环境,到训练任务中,训练就失败了。(我之前没有设置
ms.set_context
,用的应该是默认的配置)。报错有点区别:如果是自动微分报错的话,我把我的模型训练的代码,也就是
train_step
函数相关的代码。提了出来然后再做测试,输入用torch.rand
生成的和我输入数据一致的随机张量。发现可以正常运行。那应该不是微分的问题?还是说是特定的数值(比如我的训练集)会导致这样的报错?这里的调试任务和训练任务的差异点是什么?不是很理解这个描述,是说云脑镜像申请的模式吗?
配置ms.set_context(device_target="CPU")试试呢?先看下其他硬件条件下流程是否正常。
是的,就是云脑中分的那些调试任务、训练任务、推理任务等。如下图:
配置
ms.set_context(device_target="CPU",mode=0)
会报错:配置
ms.set_context(device_target="CPU")
会报错:你在调试环境中是直接执行训练程序,没有对环境做出过修改么,看到你训练模式下的这个报错应该是数据格式算子不支持,那在同样环境下,调试任务应该也是不支持会报错才对。
@davislee 以调试模式的结果为准。mindtorch0.3的镜像在训练模式没有做过正式的测试。在训练模式中是通过docker run启动的任务,并没有进入到bash的环境,可能会出现意料之外的错误。
安装过其他的python依赖包(通过python执行shell脚本的方式),但是在训练任务和测试任务中程序运行的过程都是一模一样的,不知道为什么调试环境没有报错但是训练环境报错了
可是调试模式有4小时的限制,我想训练模型的话好像只能到训练任务中,但训练任务会报这个错误。
又复现了bug
报错
环境: