Windows CUDA + cuDNN + TensorFlow + PyTorch 识别 GPU 的简单整合

目录

前言

被这些个东西折磨了不知道几次了,现在脱离苦海不搞这些了,但是最近闲来无事在新电脑上又配置了一遍,在之前的经验上又吃了一遍苦,做一下简单总结,希望能帮助到后来的苦命人。

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
相关推荐
love530love2 小时前
突破 ComfyUI 环境枷锁:RTX 3090 强行开启 comfy-kitchen 官方全后端加速库实战
人工智能·windows·python·cuda·comfyui·triton·comfy-kitchen
java_logo3 小时前
PyTorch Docker 容器化部署与生产运行实践
人工智能·pytorch·docker·pytorch部署·pytorch部署文档·pytorch部署教程·pytorch上部署方案
恋爱绝缘体13 小时前
Windows下VSCode集成MinGW与OpenCV:从零搭建计算机视觉开发环境
windows·vscode·计算机视觉
玖釉-3 小时前
[Vulkan 学习之路] 05 - 缔结契约:创建逻辑设备 (Logical Device)
c++·windows·图形渲染
iAkuya3 小时前
(leetcode)力扣100 41二叉树的层序遍历(bfs)
windows·leetcode·宽度优先
私人珍藏库3 小时前
[Windows] 正牌STEAM小黄鸭(给游戏,视频帧数翻倍更丝滑) Lossless Scaling 3.2.2 免安装版
windows·工具·软件·win
tokepson11 小时前
Mysql下载部署方法备份(Windows/Linux)
linux·服务器·windows·mysql
王老邪13 小时前
Windows下利用PowerShell实现Git自动推送
windows·git
知乎的哥廷根数学学派13 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类