当前位置: 首页 > news >正文

手把手教你离线搞定CUDA和cuDNN:从下载到配置,再到打包迁移完整流程(含超算实战)

手把手教你离线搞定CUDA和cuDNN:从下载到配置,再到打包迁移完整流程(含超算实战)

在科研机构或企业内部,经常会遇到需要在内网服务器或超算平台上部署深度学习环境的场景。这些环境通常严格限制外网访问,甚至完全隔离,给依赖大量开源工具和库的深度学习工作带来了不小挑战。本文将详细介绍如何在完全离线的Linux系统中,从零开始搭建CUDA和cuDNN环境,创建隔离的Anaconda虚拟环境,并最终将整个环境打包迁移到其他机器上使用。

1. 准备工作与环境检查

在开始安装之前,我们需要做好充分的准备工作。首先确认目标机器的硬件配置和操作系统版本,这将直接影响后续软件版本的选择。

关键检查项:

  • GPU型号与驱动版本:nvidia-smi命令可以查看
  • Linux发行版与内核版本:cat /etc/*releaseuname -r
  • 系统架构:uname -m(通常为x86_64)

注意:CUDA Toolkit需要与NVIDIA驱动版本匹配。驱动版本过低可能导致无法安装最新CUDA。

推荐使用以下命令收集系统信息:

# 查看GPU信息 nvidia-smi # 查看系统信息 cat /etc/*release uname -a

版本匹配参考表:

NVIDIA驱动版本支持的CUDA最高版本
450.80.02CUDA 11.0
470.82.01CUDA 11.4
515.65.01CUDA 11.7
525.85.12CUDA 12.0
535.86.10CUDA 12.2

2. 离线安装CUDA Toolkit

2.1 下载合适的CUDA版本

在有网络连接的机器上,访问 NVIDIA开发者网站 下载对应版本的CUDA Toolkit。选择"Linux"→"x86_64"→"Runfile(local)"格式的安装包。

下载示例:

wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run

2.2 传输安装包到目标机器

将下载好的.run文件通过U盘或内网传输工具(如scp)复制到目标机器:

scp cuda_12.2.2_535.104.05_linux.run username@remote_host:/path/to/destination

2.3 安装CUDA Toolkit

在目标机器上执行以下步骤:

  1. 赋予执行权限:

    chmod +x cuda_12.2.2_535.104.05_linux.run
  2. 运行安装程序:

    ./cuda_12.2.2_535.104.05_linux.run

安装过程中需要注意:

  • 输入"accept"接受许可协议
  • 取消勾选所有组件,只保留"CUDA Toolkit"
  • 修改安装路径到有写入权限的目录(如家目录下)
  • 不安装驱动(通常由系统管理员维护)

2.4 配置环境变量

编辑~/.bashrc文件,添加以下内容:

export PATH="/path/to/cuda/bin:$PATH" export LD_LIBRARY_PATH="/path/to/cuda/lib64:$LD_LIBRARY_PATH"

使配置生效:

source ~/.bashrc

验证安装:

nvcc --version

3. 离线安装cuDNN

3.1 下载匹配的cuDNN版本

访问 NVIDIA cuDNN下载页面 ,下载与已安装CUDA版本对应的cuDNN Library for Linux。

版本匹配原则:

  • CUDA 12.x → cuDNN 8.x
  • CUDA 11.x → cuDNN 8.x
  • CUDA 10.x → cuDNN 7.x

3.2 安装cuDNN

将下载的压缩包传输到目标机器后,执行以下步骤:

  1. 解压文件:

    tar -xzvf cudnn-linux-x86_64-8.9.4.25_cuda12-archive.tar.xz
  2. 复制文件到CUDA目录:

    cp cudnn-*-archive/include/cudnn*.h /path/to/cuda/include/ cp -P cudnn-*-archive/lib/libcudnn* /path/to/cuda/lib64/ chmod a+r /path/to/cuda/include/cudnn*.h /path/to/cuda/lib64/libcudnn*

4. 离线创建Anaconda环境

4.1 安装Miniconda

下载Miniconda安装脚本并传输到目标机器:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装命令:

bash Miniconda3-latest-Linux-x86_64.sh -b -p /path/to/miniconda

初始化conda:

source /path/to/miniconda/bin/activate conda init

4.2 创建离线虚拟环境

  1. 在有网络的机器上准备环境:

    conda create -n myenv python=3.9 conda activate myenv conda install numpy pandas scipy
  2. 导出环境配置:

    conda env export > environment.yml
  3. 下载所有依赖包:

    conda pack -n myenv -o myenv.tar.gz
  4. 在目标机器上恢复环境:

    mkdir -p /path/to/envs/myenv tar -xzf myenv.tar.gz -C /path/to/envs/myenv

5. 环境打包与迁移实战

5.1 使用conda-pack打包环境

conda install -c conda-forge conda-pack conda pack -n myenv -o myenv.tar.gz --ignore-editable-packages

5.2 跨机器传输环境包

使用scp命令传输打包好的环境:

scp myenv.tar.gz username@remote_host:/path/to/destination

5.3 在目标机器上恢复环境

  1. 创建环境目录:

    mkdir -p ~/.conda/envs/myenv
  2. 解压环境包:

    tar -xzf myenv.tar.gz -C ~/.conda/envs/myenv
  3. 激活环境:

    source ~/.conda/envs/myenv/bin/activate

5.4 验证环境完整性

import torch print(torch.cuda.is_available()) # 应返回True print(torch.backends.cudnn.version()) # 应显示cuDNN版本

6. 超算平台实战技巧

在超算平台上部署深度学习环境有其特殊性,这里分享几个实用技巧:

  1. 模块系统集成:许多超算使用环境模块系统,可以创建自定义模块文件:

    # 示例模块文件 #%Module1.0 prepend-path PATH /path/to/cuda/bin prepend-path LD_LIBRARY_PATH /path/to/cuda/lib64
  2. 作业脚本配置:在提交作业时正确加载环境:

    #!/bin/bash #SBATCH --gres=gpu:1 source /path/to/miniconda/bin/activate conda activate myenv python your_script.py
  3. 存储优化:超算通常有临时存储空间,合理利用:

    # 使用$TMPDIR加速IO密集型任务 cp /slow/storage/data $TMPDIR/ cd $TMPDIR
  4. 多节点注意事项:确保环境在所有计算节点上可用:

    # 使用rsync同步环境到所有节点 rsync -avz /path/to/env/ compute-node:/same/path/

在实际项目中,我发现将CUDA安装在用户目录而非系统目录可以避免权限问题,特别是在没有root权限的超算环境中。另外,定期使用conda clean -a可以节省宝贵的存储空间。

http://www.zskr.cn/news/1436270.html

相关文章:

  • Gemini跨境数据脱敏策略失效真相:动态掩码密钥轮转机制(附AWS KMS+HashiCorp Vault双活配置模板)
  • 基于TCS3200与Arduino的智能画框灯光反馈系统实战
  • Gemini服务条款变更实录:从免费试用到商用收费的3个临界点,及替代方案迁移时间窗(仅剩18天)
  • 构建高可用音乐播放器:洛雪音乐多平台音源集成实战指南
  • 2026年10款论文降AI率网站横评:从90%降至10%的宝藏之选
  • 解锁2026浪琴官方售后新体验:实地鉴证服务全面革新新址及售后热线启用 - 资讯纵览
  • 深度学习生成模型(五)—— 自回归生成与 Normalizing Flow(五十三)
  • 2026年8月四川7天6晚纯玩团推荐|用户评价、费用参考与避坑指南 - 随峰国旅
  • 微信聊天记录永久保存完全指南:告别数据丢失的终极解决方案
  • JDK源码学习从入门到精通!
  • 如何快速配置ok-ww鸣潮自动化工具:面向新手的完整实践指南
  • 告别依赖Vivado!手把手教你用Modelsim独立仿真Vivado IP核(附PLL报错解决方案)
  • ArcGIS Enterprise 10.8 Linux部署后,如何用命令行高效运维?这些脚本和诊断工具你得知道
  • 携程0510笔试真题【删除】
  • Java架构六大核心专题面试宝典公开,程序员突击必备!
  • 影视制片人紧急通告:AI剧本审核新规落地(Gemini辅助写作合规白皮书首发),错过将影响成片备案资质
  • Arduino超声波测距与分级报警系统:从HC-SR04到社交距离提醒器
  • 2026年4月硅酸镁铝生产厂家推荐,锂基膨润土/活性白土脱霉剂/油性涂料膨润土/化妆品膨润土,硅酸镁铝企业哪个好 - 品牌推荐师
  • 有哪些真正好用的降AI率网站?能同时不降文笔还能清零AI疑似率的那种
  • 基于SpringBoot的中小企业绩效管理系统设计与实现
  • 【限时解密】谷歌内部流出的Gemini竞对防御路线图(含2024–2026技术卡点与反制时间窗)
  • 基于Arduino与3D打印的桌面机械臂:从电位器教学到运动回放
  • 2026劳力士售后网络焕新|官方维修新址全公布最新服务热线同步生效 - 资讯纵览
  • Parsec-vdd虚拟显示器:游戏串流与远程办公的完美解决方案
  • Arduino与Visuino图形化编程:电位器模拟仪表OLED显示项目实践
  • 高效游戏安全防护实战:全面反作弊系统深度解析
  • 终极Windows防撤回指南:如何让微信QQ消息永远可见
  • 口碑好的永康软件开发企业 - 企业推荐官【官方】
  • 2026年实用降AI率工具:实测AI率从90%降至4%的靠谱方案 - 降AI小能手
  • 【Redis】线上并发三大灾难