使用Python-TensorFlow获取AWS GPU实例详情及GPU无法识别解决方案
问题描述
- 已创建实例类型为
g4dn.xlarge的AWS GPU实例,完成Python与Jupyter-notebook环境安装。 - 在Jupyter notebook中运行GPU检测代码时,TensorFlow仅识别到CPU设备,所有GPU检测方法均返回无GPU结果。
初始检测代码:
import tensorflow as tf tf.config.list_physical_devices()
运行输出:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
后续尝试的3种检测方法均未识别到GPU:
- 方法1代码
import tensorflow as tf gpus = tf.config.list_physical_devices('GPU') for gpu in gpus: print("Name:", gpu.name, " Type:", gpu.device_type)
- 方法2代码
from tensorflow.python.client import device_lib device_lib.list_local_devices()
- 方法3代码
from tensorflow.python.client import device_lib def get_available_gpus(): local_device_protos = device_lib.list_local_devices() return [x.name for x in local_device_protos if x.device_type == 'GPU'] get_available_gpus()
可行修复方案
按以下顺序逐一排查,全部配置完成后即可正常访问实例GPU:
- 验证NVIDIA驱动状态
登录实例终端执行nvidia-smi命令:- 如果返回
command not found,说明未安装NVIDIA驱动,安装适配g4dn实例搭载的T4显卡的官方驱动即可 - 如果命令执行报错,说明驱动安装存在异常,卸载现有驱动后重新安装对应版本,安装完成后重启实例,再次执行
nvidia-smi,确认输出结果中能看到T4显卡信息、对应CUDA版本号即为正常
- 如果返回
- 对齐TensorFlow、CUDA、cuDNN版本
普通pip源默认安装的TensorFlow为CPU版本,且GPU版本的TensorFlow对CUDA、cuDNN版本有严格匹配要求,版本不兼容时无法识别GPU:- 若使用TensorFlow 2.11及以上版本,直接执行
pip install tensorflow[and-cuda],命令会自动安装匹配版本的CUDA、cuDNN依赖,无需手动单独部署 - 若使用低版本TensorFlow,提前核对版本对应关系,安装和现有CUDA版本匹配的TensorFlow、cuDNN包
- 若使用TensorFlow 2.11及以上版本,直接执行
- 核对Jupyter内核对应环境
多Python环境场景下常出现环境错配问题:系统终端中安装了GPU版TensorFlow,但Jupyter使用的是其他虚拟环境的内核,内核内安装的是CPU版TensorFlow。
在Jupyter单元格执行以下代码查看当前内核使用的Python路径:
如果输出路径和终端中安装GPU版TensorFlow的Python路径不一致,给目标Python环境安装import sys print(sys.executable)ipykernel并注册到Jupyter,切换到对应内核后再做检测。 - 排查实例配置问题
- 停掉实例后重新启动,确认实例启动过程中没有出现硬件挂载异常,g4dn.xlarge默认挂载1块T4显卡,无手动修改硬件配置的情况下会自动挂载
- 若使用自定义镜像部署环境,优先替换为AWS官方提供的深度学习镜像,这类镜像预装了适配实例硬件的驱动、CUDA、深度学习框架,启动后无需额外配置即可识别GPU。
配置完成后重启Jupyter内核,执行tf.config.list_physical_devices('GPU'),返回GPU设备信息即为配置成功。
内容的提问来源于stack exchange,提问作者Subbu VidyaSekar
相关产品推荐
相关产品推荐

