【conda】使用 conda 安装的 cuda-toolkit 时,安装的版本与指定版本不一致

【conda】使用 conda 安装的 cuda-toolkit 时,安装的版本与指定版本不一致

  • [1 问题描述](#1 问题描述)
  • [2 channel 介绍](#2 channel 介绍)
    • [2.1 conda-forge](#2.1 conda-forge)
    • [2.2 nvidia](#2.2 nvidia)
      • [2.2.1 cuda-toolkit](#2.2.1 cuda-toolkit)
  • [3 原因](#3 原因)
  • [4 解决方法](#4 解决方法)

1 问题描述

参考博客: Link

与参考博客的问题相似,我本机是 cuda 11.8,使用 conda 安装 cuda-toolkit 12.1,但最终 nvcc -V 显示为 12.6

执行 conda list 后发现安装 cuda 相关的包来自不同的 channel:

  • nvidia
  • nvidia/label/cuda-12.1.0
  • conda-forge

2 channel 介绍

2.1 conda-forge

参考文档: Link

conda-forge 是一个社区项目,为各种软件提供 conda 包,所有 conda-forge 包都可以在这里找到: Link

2.2 nvidia

nvidia 的所有包都可以在这里找到: Link

2.2.1 cuda-toolkit

安装 cuda-toolkit 后会改变虚拟环境中的 cuda 版本,所有版本 cuda-toolkit 的 conda channel: Link

如果要指定版本安装,应该选择相应的 channel,否则会安装最新的版本。

3 原因

参考文档: Link

我使用 .yml 文件来创建环境并安装各个包

bash 复制代码
conda env create -f /path/to/environment.yml

下面是我初始的 .yml 文件内容:

yaml 复制代码
channels:
  - pytorch
  - nvidia
  - nvidia/label/cuda-12.1.0
  - conda-forge
  - defaults
dependencies:
  - python=3.10
  - faiss-gpu=1.8.0
  - cuda-toolkit=12.1
  - pytorch=2.1.2
  - pytorch-cuda=12.1 
  - torchvision=0.16.2

默认情况下,conda 会优先选择来自高优先级 channel 的包,所以由于优先级的问题,导致 cuda-toolkit 中各个包安装的来源不同,版本不一致。

4 解决方法

  1. 删除原环境
bash 复制代码
conda remove -n xxx --all
  1. 修改 .yml 文件,将 nvidia/label/cuda-12.1.0 的优先级提前
yml 复制代码
channels:
  - pytorch
  - nvidia/label/cuda-12.1.0
  - nvidia
  - conda-forge
  - defaults
dependencies:
  - python=3.10
  - faiss-gpu=1.8.0
  - cuda-toolkit=12.1
  - pytorch=2.1.2
  - pytorch-cuda=12.1 
  - torchvision=0.16.2
  1. 创建环境并安装
bash 复制代码
conda env create -f environment.yml

如果过程中出错造成中断,可以通过 update 继续安装

bash 复制代码
conda activate xxx
conda env update -f environment.yml

安装完成后,就是 cuda 12.1 了

其中 cuda-version 这个包的 channel 为 conda-forge 的原因是在 conda 的 nvidia/label/cuda-12.1.0 这个 channel 中找不到 cuda-version 12.1.0,所以在低优先级的 channel 检索并安装。

相关推荐
服务器硬件项目经理11 分钟前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
tellmewhoisi26 分钟前
深度学习28:PyTorch:参数更新方法(AdaGrad和RMSProp)
人工智能·pytorch·深度学习
一切皆是因缘际会1 小时前
当模型足够大
人工智能·深度学习·机器学习
Rocky Ding*2 小时前
【三年面试五年模拟】2026-10-26 携程 AI Agent一面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·ai agent
奈落244 小时前
工程界讲角色边界,控制论讲博弈与稳定性:从 Swarms 的实践清单到《自动化学报》的协同综述,多智能体‘协同‘这件事有两套语言
人工智能·深度学习·自动化·ai 编程
椒颜皮皮虾྅4 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
richard_first4 小时前
第21章 训练一个简单的 GPT
人工智能·gpt·深度学习
Blockbuater_drug4 小时前
10 分钟居家信号采集判别睡眠疾病:LRIA 耦合矩阵方法的验证与落地
深度学习·auroc·阻塞性睡眠呼吸暂停·lria·分数阶动力学·耦合矩阵·多导睡眠监测
雨晨源码(同名B站)5 小时前
深度学习毕业设计选题推荐:基于卷积神经网络的无人机影像建筑裂缝裂纹检测分类与分割系统(LeNet-5 二分类模型、GCN-Res50分割模型)
深度学习·信息可视化·分类·cnn·毕业设计·无人机·课程设计
Zzj_tju15 小时前
准确率不变,概率质量也不变吗?
人工智能·深度学习·机器学习·语言模型