当前位置:   article > 正文

CUDA error: device-side assert triggered_loss.backward cuda error: device-side assert trigg

loss.backward cuda error: device-side assert triggered

用nn.parallel.DistributedDataParallel 跑Diffusion模型的时候报错如图,感觉以前也报过类似的错,困扰了一天不知道原因是什么,感觉是跟DDP有关。

在这里插入图片描述
看了一下别人的Blog,不使用GPU,“CUDA_VISIBLE_DEVICES”:“”,可以让CUDA抛出详细错误,但是我的模型是DDP形式的,没办法直接使用CPU,要改的地方比较多。

发现在运行python脚本之前,加一句CUDA_LAUNCH_BLOCKING=1能抛出详细错误:

CUDA_LAUNCH_BLOCKING=1 python Diff_VPS/train_diffusion.py
  • 1

这是因为CUDA_LAUNCH_BLOCKING是CUDA的环境变量,设为1可以disable CUDA执行的异步性。

在这里插入图片描述

报错显示数据无法载入到GPU上。

最终解决:是timestep数据超载问题,设置了betas在200内采样,但是后面的timesteps取到了1000,正确写法应该如下,数字对应上:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/879754
推荐阅读
相关标签
  

闽ICP备14008679号