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版本,因为torchvision 和 torchaudio 在底层直接调用了 torch 的内部接口和 C++ 扩展。

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

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

复制代码
# 使用 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版本兼容就行。

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

相关推荐
海绵宝宝转agent4 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭4 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT4 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
2601_962071575 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境6 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路6 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师6 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师6 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
Zootopia6266 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y3815326626 小时前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎