目录
- 前言
- 通用配置
-
- [以 5060Ti 16G 为例](#以 5060Ti 16G 为例)
- [Python + CUDA + cuDNN](#Python + CUDA + cuDNN)
- TensorFlow
- PyTorch
- 简单测试
前言
被这些个东西折磨了不知道几次了,现在脱离苦海不搞这些了,但是最近闲来无事在新电脑上又配置了一遍,在之前的经验上又吃了一遍苦,做一下简单总结,希望能帮助到后来的苦命人。
Tensorflow 配置原理主要参考了这篇文章:TensorFlow-GPU安装全指南:避坑与版本匹配,
大家如果想看相关的详细讲解,可以先点进去看一下,我会写得非常简洁,具体操作你们需要自己去找,都不复杂。
通用配置
以 5060Ti 16G 为例
这里我先以我目前的配置为例,后续会再给出各自的通用配置
Python==3.10
CUDA==11.8
cuDNN==8.6
TensorFlow==2.10.0
PyTorch 我直接给出官网复制下来的安装指令:
pip install torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu118
Python + CUDA + cuDNN
一切的前提,是你要先确定自己的 CUDA 版本,以此来锚定其他东西的版本。
至于你装没装 CUDA、装了的怎么看版本、没装的怎么看能装哪些版本,这些具体但随处可见的操作教程,我这边就不赘述了。
这里我给出 Python + CUDA + cuDNN + TensorFlow 版本对应表的参考链接:Tensorflow与Python、CUDA、cuDNN的版本对应表
由于我查到说,TensorFlow 官网自 CUDA 12.0 对应的支持版本之后就不直接提供安装包了,需要自己编译啥的;同时又因为 TensorFlow 默认只识别系统环境变量中配置的 CUDA,所以如果你是刚需 TensorFlow 的,那么 CUDA 本身我只推荐11.8及以下的版本。
CUDA 所有版本的下载链接:CUDA 安装包历史版本
cuDNN 所有版本的下载链接(版本 8.x - 1.x 的安装方式相对复杂,但随便都能查到):cuDNN 安装包历史版本
TensorFlow
就我个人的经验,结合各路文章中的信息,不论你 CUDA 选择了什么版本,TensorFlow 我都只推荐2.10.0及以下的版本。具体原因我也讲不清楚,我只能说比这个高的版本,我试过的基本都识别 GPU 失败了;比这个低的有时候不支持我代码要的功能,但至少还是成功过的。
TensorFlow 可以直接通过 Python 的 pip 包管理工具进行安装,所以如果你的 Python 已经安装配置好了,即可通过以下指令直接安装 TensorFlow:
pip install tensorflow==你要的版本
PyTorch
由于 PyTorch 安装是会自带 cudatoolkit 的,所以不需要和以上版本进行对应。
当然, CUDA 版本还是需要根据自身硬件驱动情况提前确定的,这一步省不了,只是不需要强行和上文中安装的 CUDA 保持完全一致就是了。
比如我的硬件驱动最高能支持到 CUDA 13.1,我上文中为了 TensorFlow 的稳定性在电脑中安装了CUDA 11.8,但是 PyTorch 这边我想体验比较新的版本,我是可以选择执行CUDA 12.5对应的官网安装指令的,这并不会影响 PyTorch 识别到我的 GPU。
PyTorch 所有版本的安装指令:Installing previous versions of PyTorch
简单测试
新建一个test_GPU.py文件,写入以下脚本内容,用 Python 执行一下:
python
import os
# 屏蔽锐龙架构加速 TF 的提醒
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
import tensorflow as tf
print('TF版本:', tf.__version__)
gpus = tf.config.list_physical_devices(device_type="GPU")
cpus = tf.config.list_physical_devices(device_type="CPU")
print(gpus, cpus)
# detect GPUs
strategy = tf.distribute.MirroredStrategy()
print("Number of accelerators: ", strategy.num_replicas_in_sync)
# 输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices("GPU")))
import keras
print('Keras版本:', keras.__version__)
import torch
print(torch.version.cuda) # 读取 CUDA 版本
print(torch.backends.cudnn.version()) # 读取 cudnn 版本
print(torch.cuda.is_available()) # 判断是否可以使用 GPU 计算
print(torch.cuda.device_count()) # 显示 GPU 数量
输出的内容跟我的差不多(版本相关的那几个数字不一样无所谓),那就说明你成功了,至少 TensorFlow 和 PyTorch 都能成功识别到 GPU 了:
TF版本: 2.10.0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')] [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
Number of accelerators: 1
Num GPUs Available: 1
Keras版本: 2.10.0
11.8
90100
True
1