问题描述
- 在anaconda虚拟环境下运行程序时,报错
failed call to cuInit: CUDA_ERROR_NO_DEVICE
.- 单独测试
import tensorflow
,可以成功调用GPU。- 用ncvv -V,或nvidia-smi,都可以正常看到CUDA安装版本,及GPU使用情况。
问题原因
上述分析说明,并非是GPU硬件、CUDA或TensorFlow-gpu安装问题,而应该是程序中的问题。
经检查,原因是在程序中,设置了
CUDA_VISIBLE_DEVICES
为1
,但所使用的工作站没有设备号为1的GPU。
原之所以这样设置,是因为之前用的是公司工作站,有多个GPU大家分工来用。
解决方法
将
CUDA_VISIBLE_DEVICES
设置为0
,或者直接注释掉该设置语句即可。