【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 检索并安装。

相关推荐
HollowKnightZ2 小时前
目标姿态估计综述:Deep Learning-Based Object Pose Estimation: A Comprehensive Survey
人工智能·深度学习
加油吧zkf3 小时前
Conda虚拟环境管理:从入门到精通的常用命令
图像处理·深度学习·计算机视觉·conda
小哥谈4 小时前
论文解析篇 | YOLOv12:以注意力机制为核心的实时目标检测算法
人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
水龙吟啸5 小时前
从零开始搭建深度学习大厦系列-2.卷积神经网络基础(5-9)
人工智能·pytorch·深度学习·cnn·mxnet
HollowKnightZ6 小时前
论文阅读笔记:VI-Net: Boosting Category-level 6D Object Pose Estimation
人工智能·深度学习·计算机视觉
yzx9910136 小时前
AI大模型平台
大数据·人工智能·深度学习·机器学习
Better Rose7 小时前
人工智能与机器学习暑期科研项目招募(可发表论文)
人工智能·深度学习·机器学习·论文撰写
慕婉03078 小时前
深度学习中的常见损失函数详解及PyTorch实现
人工智能·pytorch·深度学习
神经星星8 小时前
在线教程丨一句话精准P图,FLUX.1 Kontext可实现图像编辑/风格迁移/文本编辑/角色一致性编辑
人工智能·深度学习·机器学习
UQI-LIUWJ8 小时前
论文略读:Prefix-Tuning: Optimizing Continuous Prompts for Generation
人工智能·深度学习