RTX5090配置DGL

**前言:**豆包真是蠢猪啊,当然,用豆包的我......总之,经过层层误导,终于解决问题了。最近想复现一篇24年的文章,环境真是非常古早呀,感觉是在21年的上面改的,每次跑以前项目的代码,环境就要搞半天(哭)。今年实验室换了50系列的显卡,一直遇到项目的dgl与torch与CUDA不兼容的情况!

豆包给我乱说乱说,严格训斥后才给我最终结论:

1.首先,RTX 5090 是sm_120 新架构,如无对应计算内核,会导致no kernel image错误

2.PyTorch 2.4.0+仅支持到sm_90架构,不管是cu121还是124

3.DGL到目前为止是更新到了2.4.0(昨天晚上刚查过官网)

CUDA

CUDA (Compute Unified Device Architecture,计算统一设备架构)是由英伟达(NVIDIA)公司于2006年推出的一个通用并行计算平台和编程模型。是一套技术和工具的集合,允许开发者利用GPU(图形处理器)强大的并行计算能力来加速各种通用计算任务。

GPU 架构与算力

每款 NVIDIA GPU 都有一个 算力(Compute Capability, CC) 值,代表了 GPU 的架构代际和功能集。

较新的 GPU 架构需要较新的 CUDA 版本才能支持。例如,RTX 50 系列 (Blackwell 架构) 强制要求 CUDA 12.4 或更高版本,而老的 GTX 1080 Ti (Pascal 架构) 则无法使用最新的 CUDA。

NVIDIA 显卡驱动

显卡驱动是操作系统与 GPU 硬件通信的桥梁,决定了能安装的最高 CUDA 版本。

在命令行输入nvidia-smi ,右上角显示的 CUDA Version 是驱动所支持的最高 CUDA 版本(非当前安装的版本)。

PyTorch

PyTorch 是一个构建在 C++ 后端和 CUDA 加速层之上的 Python 包。需要确保Pytorch 框架、Python 版本和底层 CUDA 环境三者对齐。

每个 PyTorch 版本都支持一个特定的 Python 版本范围。例如,PyTorch 2.5.x 支持 Python 3.9 到 3.12。

安装Pytorch时,必须使用与 CUDA 版本对应的安装命令。例如,为 CUDA 12.4 安装 PyTorch,需要使用包含 cu124 标识的 pip 命令或 conda 命令。

以下是一个PyTorch测试的Python脚本

复制代码
import torch
print("PyTorch 版本:", torch.__version__)
print("CUDA 是否可用:", torch.cuda.is_available())  # 必须为 True
print("PyTorch 编译所用 CUDA 版本:", torch.version.cuda)
print("GPU 名称:", torch.cuda.get_device_name(0))
print("GPU 算力:", torch.cuda.get_device_capability(0))
x = torch.randn(2, 3).cuda()
print("GPU 张量创建成功:", x.device)

在安装torch相关库时,必须严格匹配版本。如**torchvision (视觉配件包)、torchaudio (音频配件包** )两个库在安装时必须严格匹配torch版本,因为torchvisiontorchaudio 在底层直接调用了 torch 的内部接口和 C++ 扩展。

官方为每个 torch 版本都指定了严格兼容的 torchvisiontorchaudio 版本。

最可靠的方法是一次性安装 ,并使用官方推荐的命令。这样可以确保 pipconda 自动为你拉取版本完全匹配的三个库。

复制代码
# 使用 pip 安装
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121

切记:不要分开安装

DGL

**DGL 必须严格适配 PyTorch 版本。**因为 DGL 是构建在 PyTorch 之上的图神经网络库,它大量调用了 PyTorch 的底层 C++ API 和 CUDA 算子。

需要适配的三个维度:

  1. PyTorch 版本范围

  2. CUDA 版本对齐

  3. Python 版本对齐

RTX5090配置DGL

总之,我主要遇到的问题,就是torch、DUDA、DGL的兼容问题,最后在千问的指引下,看到了csdn上的一篇文章(在联网搜索技术这块,好像还是千问强一点)

我的NVIDIA GPU 设备状态>nvidia-smi

创建的conda环境是python3.9 ,经查阅 Pytorch2.8.0 是稳定适配版

复制代码
pip install torch==2.8.0 torchvision torchdata --index-url https://download.pytorch.org/whl/cu128

dgl官网标明最高支持到PyTorch 2.4.0的版本,而pip install dgl会自动下载配套的 torch2.4.0,这又会变回torch、cuda与GPU算力匹配问题的报错。

但可以通过--no-deps限制,禁止其下载配套torch。

复制代码
pip install dgl -f https://data.dgl.ai/wheels/torch-2.4/cu124/repo.html --no-deps

已测试上述版本的dgl可以和torch2.8.0一起使用。

校验环境

复制代码
python -c "
import torch
print('torch version:', torch.__version__)
print('cuda available:', torch.cuda.is_available())
print('gpu name:', torch.cuda.get_device_name(0))
print('compute capability:', torch.cuda.get_device_capability(0))
import dgl
print('dgl version:', dgl.__version__)"

备份 conda 完整环境

复制代码
conda env export > my_5090_torch2.8_dgl2.4_py310.yml

transformers、datasets、tokenizers、numpy、tqdm、scipy等属于纯 CPU 业务库, 不自带 GPU 底层代码,不编译 CUDA 内核。只负责:读数据、分词、数值计算、进度条,只需要跟你的 Python版本兼容就行。

天呐!训练真的成功启动了!我真的在训练了!!!

相关推荐
荣码4 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
用户83562907805119 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱3 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot3 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海3 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱3 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django