今天直接拿别人的测试代码来跑的时候,出现了上述问题:
failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
字面意思是GPU不可用。
但是我nvdia-smi了一下,发现服务器几个gpu都是空的啊。不可能啊。而且我的运行有加前缀:
CUDA_VISIBLE_DEVICES=2 python test.py
思来想去,查来查去,还是CUDA_VISIBLE_DEVICES的问题。原来代码隐藏的某处,把这个数值写死了,写成了
CUDA_VISIBLE_DEVICES=-1意为使用cpu。。。
命令行传进去的值被里面覆盖了。好吧。改写后就正常了。