跳转至

GPU无法调用

不能调用GPU

首先使用nvidia-smi命令检查GPU的使用情况

pFIjXQI.png

以上红色框标记的分别为显存占用和GPU使用率。如果程序开始运行后:

显存无占用,那么可能是安装的框架为非GPU版本。

检查方法为:

  • 如果你在使用PyTorch
  • 如果版本号中带cu字样,说明是cuda版本,否则是cpu版本
  • 此外:使用Torch官方的conda安装命令在国内安装的一般为非cuda版本,而是cpu版本(有bug),因此推荐用pip安装,并且如果使用torch官方pip命令,去掉-f参数,这样可以走国内的pip源,速度更快
import torch
print(torch.__version__)

如果你在使用 TensorFlow

import tensorflow as tf
sys_details = tf.sysconfig.get_build_info()
sys_details["cuda_version"]

显存有占用,GPU占用率不为0,但是波动较大,此时正常使用了GPU,可以优化程序使GPU利用率更高,参考帮助文档
显存有占用,但是GPU占用率一直为0。这种case可以分两种,一种安培架构的GPU(30系列的卡、A40A100A5000等)需要使用CUDA11.X。另一种case为代码未使用GPU,只不过import框架和构建网络时,框架会分配显存,因此看到的情况就是显存有占用,但是未使用GPU。这种情况可以通过其他代码进行验证:

在终端执行以下命令,然后观察GPU的使用情况(注意该代码是Torch代码) 如果GPU使用率不为0,则证明你的代码可能未调用GPU进行计算,请检查调试代码。如果以下代码执行异常,请联系客服协助处理:

wget http://zscloud-public.ks3-cn-beijing.ksyun.com/debug/dp_res18.py
python dp_res18.py