Conda安装Pytorch和CUDA/GCC(服务器非root权限安装CUDA/GCC)

news2024/12/26 19:23:50

在实验室服务器上的时候,一般是没有 root 权限的,而服务器可能只安装了特定版本的 CUDA 和 GCC,我们就需要自己安装自己需要版本的 CUDA/GCC 来满足安装包时的环境要求。

而 Conda 除了安装 Python 的包以外,其还提供了很多其他库——比如CUDA、GCC甚至还有 COLMAP ,那么我们就可以很方便的安装自己的环境的啦!

而官方的 Conda 比较慢,一般还得自己改 channel 到 conda-forge,所以推荐使用 Mamba 来替代,其比 Conda 更快,而且命令与 Conda 一致,只需把通常用的 conda 替换成 mamba 即可。Mamba 安装地址:https://github.com/conda-forge/miniforge

1 快速安装环境

这里先附上各个版本Pytorch和CUDA的安装命令合集:

  • Pytorch:https://pytorch.org/get-started/previous-versions/
  • CUDA:https://anaconda.org/nvidia/cuda-toolkit

但是注意,不要直接使用里面的命令,要想获得良好的体验,请参考下面的例子

一个简单的例子安装 Pytorch 2.3.0、CUDA 12.1、GCC/G++ 11.4:

  1. 安装 mamba(比 conda 更快)

    wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
    bash Miniforge3-$(uname)-$(uname -m).sh
    
  2. 创建环境(注意我这里修改了官方的 CUDA 版本 Pytorch 的安装命令,改变了channel 为 -c nvidia/label/cuda-12.1.0

    mamba create -n h_gs python=3.12 -y
    mamba activate h_gs
    mamba install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=12.1 -c pytorch -c nvidia/label/cuda-12.1.0
    
  3. 安装 GCC/G++

    mamba install gcc=11.4
    mamba install gxx=11.4
    
  4. 安装 CUDA(注意我这里修改了官方的 CUDA 安装命令,多了一个 -c nvidia/label/cuda-12.1.0

    mamba install nvidia/label/cuda-12.1.0::cuda-toolkit -c nvidia/label/cuda-12.1.0
    

可以看到以上操作有两个地方特别注意的 channel 修改,是因为混乱的 Conda 环境管理会导致原版命令出现 bug

  • Pytorch 安装的 channel 修改是为了使 pytorch-cuda 与之后我们安装的 CUDA 兼容

  • CUDA 安装的 channel 添加是为了防止其安装与版本不一样的其他CUDA库

    安装 cuda-toolkit 即是安装很多个 CUDA 相关的库,直接使用官方命令安装会导致其首先查看在默认频道并安装最新版本,而不是 nvidia/label/cuda-12.1.0 中的软件包,就会安装一些最新版本的 CUDA 库,有一定出 bug 的风险。

2 环境路径问题

注意:Conda 的 CUDA,经常出现找不到 CUDA 环境的问题,以下操作可以通过将环境变量设置为激活步骤的一部分:

  1. 进入Conda环境目录并创建以下子目录和文件

    cd $CONDA_PREFIX
    mkdir -p ./etc/conda/activate.d
    mkdir -p ./etc/conda/deactivate.d
    touch ./etc/conda/activate.d/env_vars.sh
    touch ./etc/conda/deactivate.d/env_vars.sh
    
  2. 编辑 ./etc/conda/activate.d/env_vars.sh 如下

    #!/bin/sh
    
    export CUDA_HOME=$CONDA_PREFIX
    export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
    
  3. 编辑 ./etc/conda/deactivate.d/env_vars.sh 如下

    #!/bin/sh
    
    unset CUDA_HOME
    unset LD_LIBRARY_PATH
    

当运行 mamba activate analytics 时,环境变量 CUDA_HOMELD_LIBRARY_PATH 将设置为写入文件的值。当运行 mamba deactivate 时,这些环境变量将被删除。

这样确保了 Conda 环境激活的时候,程序可以正确找到 Conda 安装的包/库的位置

参考

https://stackoverflow.com/questions/72684130/how-to-set-the-cuda-path-in-the-conda-environment

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#saving-environment-variables

https://stackoverflow.com/questions/78484090/conda-cuda12-incompatibility/78843983#78843983

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2253802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第31天:安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测

时间轴: 演示案例: 打包器-WebPack-使用&安全 第三方库-JQuery-使用&安全 打包器-WebPack-使用&安全 参考:https://mp.weixin.qq.com/s/J3bpy-SsCnQ1lBov1L98WA Webpack 是一个模块打包器。在 Webpack 中会将前端的所有资源…

开发者如何使用GCC提升开发效率Opencv操作

看此篇前请先阅读 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144216351?spm=1001…

使用PaddlePaddle实现线性回归模型

目录 ​编辑 引言 PaddlePaddle简介 线性回归模型的构建 1. 准备数据 2. 定义模型 3. 准备数据加载器 4. 定义损失函数和优化器 5. 训练模型 6. 评估模型 7. 预测 结论 引言 线性回归是统计学和机器学习中一个经典的算法,用于预测一个因变量&#xff0…

图像处理网络中的模型水印

论文信息:Jie Zhang、Han Fang、Weiming Zhang、Wenbo Zhou、Hao Cui、Hao Cui、Nenghai Yu:Model Watermarking for Image Processing Networks 本文首次提出了图像处理网络中深度水印问题,将知识产权问题引入图像处理模型 提出了第一个深…

全面UI组件库Telerik 2024 Q4全新发布——官方宣布支持.NET 9

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供最完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Ken…

计算机毕业设计hadoop+spark民宿推荐系统 民宿数据分析可视化大屏 民宿爬虫 民宿大数据 知识图谱 机器学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

工业—使用Flink处理Kafka中的数据_ChangeRecord1

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30

【Android】从事件分发开始:原理解析如何解决滑动冲突

【Android】从事件分发开始:原理解析如何解决滑动冲突 文章目录 【Android】从事件分发开始:原理解析如何解决滑动冲突Activity层级结构浅析Activity的setContentView源码浅析AppCompatActivity的setContentView源码 触控三分显纷争,滑动冲突…

消息中间件-Kafka2-3.9.0源码构建

消息中间件-Kafka2-3.9.0源码构建 1、软件环境 JDK Version 1.8Scala Version 2.12.0Kafka-3.9.0 源码包 下载地址:https://downloads.apache.org/kafka/3.9.0/kafka-3.9.0-src.tgzGradle Version > 8.8Apache Zookeeper 3.7.0 2、源码编译 打开源码根目录修改…

【ElasticSearch】倒排索引与ik分词器

ElasticSearch,简称ES(后文将直接使用这一简称),是一款卓越的开源分布式搜索引擎。其独特之处在于其近乎实时的数据检索能力,为用户提供了迅速、高效的信息查询体验。 它能够解决全文检索,模糊查询、数据分析等问题。那么它的搜索…

【开源免费】基于Vue和SpringBoot的洗衣店订单管理系统(附论文)

博主说明:本文项目编号 T 068 ,文末自助获取源码 \color{red}{T068,文末自助获取源码} T068,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

CAN接口设计

CAN总线的拓扑结构 CAN总线的拓扑结构有点像485总线,都是差分的传输方式,总线上都可以支持多个设备,端接匹配电阻都是120Ω。 485和CAN通信方面最大的区别:网络特性。485是一主多从的通讯方式,CAN是多主通讯,多个设备都可以做主机。那多个设备都相要控制总线呢?…

Keil5配色方案修改为类似VSCode配色

1. 为什么修改Keil5配色方案 视觉习惯:如果你已经习惯了VSCode的配色方案,尤其是在使用ESP-IDF开发ESP32时,Keil5的默认配色可能会让你感到不习惯。减少视觉疲劳:Keil5的默认背景可能过于明亮,长时间使用可能会导致视…

C++设计模式之外观模式

动机 下图中左边方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。 如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统…

矩阵转置        ‌‍‎‏

矩阵转置 C语言代码C 语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 输入一个n行m列的矩阵A,输出它的转置 A T A^T AT。 输入 第一行包含两个整数n和m,表示矩阵A的行数和列数。…

Linux输入设备应用编程

本章学习输入设备的应用编程,首先要知道什么是输入设备?输入设备其实就是能够产生输入事件的设备就称为输入设备,常见的输入设备包括鼠标、键盘、触摸屏、按钮等等,它们都能够产生输入事件,产生输入数据给计算机系统。…

STM32MX 配置CANFD收发通讯

一、环境 MCU:STM32G0B1CEU6 CAN收发器:JIA1042 二、MX配置 配置SYS 配置canfd并开启中断,我开了两个FDCAN,配置是一样的,这里贴一下波特率的计算公式: 也就是:CAN时钟频率/预分频器/&…

第100+32步 ChatGPT学习:时间序列EMD分解

基于Python 3.9版本演示 一、写在前面 之前我们介绍过时间序列的季节性分解。 最近又学到了好几种骚操作分解,且可以用这些分解优化时间序列预测性能。 首先,我们来学一学经验模态分解(Empirical Mode Decomposition,EMD&#…

Spring Shell如何与SpringBoot集成并快速创建命令行界面 (CLI) 应用程序

Spring Shell 介绍 Spring Shell 是一个强大的工具,可用于构建命令行应用程序,提供了简单的方式来创建和管理交互式 CLI。它适合那些希望通过命令行与 Java 应用程序进行交互的开发者,尤其是在需要自动化、交互式输入或与 Spring 生态系统集…

后端返回前端的数据量过大解决方案

后端返回前端的数据量过大解决方案 性能面板(Performance) chrome调试指南 原因 遇到一个页面有好几个表格,部分表格采用虚拟滚动条 数据量有点大 接近快60s了,看一下是哪里导致的慢 后台请求方法执行并不慢 2024-12-04 15:21:52.889 INFO 69948 …