调试Whisper时,不管执行什么命令都会报错RuntimeError: CUDA error: device-side assert triggered
问题
这个错误通常意味着CUDA运行时检测到了某些问题,例如尝试访问不存在的内存地址或尝试在CUDA内核中进行非法操作等。可能的原因包括:
-
CUDA设备内存不足,因此无法分配所需的张量。您可以尝试使用更小的张量或释放其他不必要的内存来解决此问题。
-
确保您的PyTorch和CUDA版本兼容。如果它们不兼容,可能会导致设备错误或不一致的行为。
-
如果您在多个GPU上运行程序,可能会出现设备错误。请确保您的程序正确设置了CUDA_VISIBLE_DEVICES环境变量,以指定要使用的GPU设备。
-
可能存在其他硬件或驱动程序问题。您可以尝试重新启动计算机或更新GPU驱动程序来解决问题。
解决
释放cuda内存
-
使用
nvidia-smi
命令查看正在运行的CUDA进程,并使用kill PID
命令终止它们- nvidia-smi后发现没有进程号,但是内存占用很大,如下图
- 改用使用
fuser -v /dev/nvidia*
:
apt-get install fuser
失败,pip install fuser
后仍报错bash: fuser: command not found
改为使用apt-get install psmisc
,psmisc包包括fuser命令,之后可以成功使用。使用kill -9 杀死进程
- 最后检查一下
- nvidia-smi后发现没有进程号,但是内存占用很大,如下图
-
清空缓存
import torch torch.cuda.empty_cache()
原因总结
可能是在跑模型是使用ctrl c强行终止了两次,内存没有释放
标签:randn,triggered,torch,fuser,CUDA,使用,device,内存 From: https://www.cnblogs.com/qwangg/p/17191163.html