在跑一些深度学习代码的时候,如果需要使用mmdetection3d框架,下载的pytorch的cudatoolkit最好需要和本机的cuda版本是一样的,即输入nvcc -V命令后显示的版本一样。

但是如果是在学校里,一般是服务器管理员装的cuda驱动是啥版本,cudatoolkit就是啥版本,且非root用户改变不了。

但是有非root用户也能为自己用户下的虚拟环境更改cudatoolkit版本的操作。

本文是实现进入该虚拟环境后便切换成该环境下专属的cudatoolkit版本的教程。

一、装好CUDA

首先去下面链接中下载你想要的版本的cuda:

https://developer.nvidia.com/cuda-toolkit-archive

以11.3为例,那么就是这样:

在命令行中输入该wget指令

然后下载的时候,Driver要取消勾选

因为没有root权限,所以要进入Options,然后更改toolkit的安装位置,然后比如下载到/home/username/cuda/cuda-11.3 (要自己在cuda文件夹内新建一个cuda-11.3)

username替换为自己的用户名,cuda-11.3视版本更改。

2 更改虚拟环境中默认的nvcc命令指向的位置

首先要知道虚拟环境的配置文件都放在哪儿:

conda activate 虚拟环境名
echo ${CONDA_PREFIX}

假设得到的是:/home/username/.conda/envs/CRN,在本文示例中

然后然后conda deactivate 退出虚拟环境(重要!)

使用以下命令创建脚本(注意用上面找到的路径替换下面的,下面的是在本文具体情况下的示例)

//创建文件夹
mkdir -p /home/username/.conda/envs/CRN/etc/conda/activate.d
//新写一个虚拟环境启动的时候的脚本
vi /home/username/.conda/envs/CRN/etc/conda/activate.d/activate.sh

往脚本中写入(注意替换username与版本号)

ORIGINAL_CUDA_HOME=$CUDA_HOME
ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
ORIGINAL_PATH=$PATH
export CUDA_HOME=/home/username/cuda/cuda-11.3
export PATH=/home/username/cuda/cuda-11.3/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

然后就是编写退出虚拟环境时的脚本:

mkdir -p /home/username/.conda/envs/CRN/etc/conda/deactivate.d
vi /home/username/.conda/envs/CRN/etc/conda/deactivate.d/deactivate.sh

往里写入:

export CUDA_HOME=$ORIGINAL_CUDA_HOME
export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
export PATH=$ORIGINAL_PATH
unset ORIGINAL_CUDA_HOME
unset ORIGINAL_LD_LIBRARY_PATH
unset ORIGINAL_PATH

3 再安装一下cuDNN(给CUDA加速用的)

在链接中下载对应的cudnn

https://developer.nvidia.com/rdp/cudnn-archive

然后随便解压到某一个temp文件夹中,举例:

tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz -C ./temp/

在该temp文件夹中:

cp ./include/cudnn* /home/username/cuda/cuda-11.3/include
cp ./lib/libcudnn* /home/username/cuda/cuda-11.3/lib64
chmod a+r /home/username/cuda/cuda-11.3/include/cudnn* /home/chen_shihang/cuda/cuda-11.7/lib64/libcudnn*

这样就可以了,最后conda activate CRN进入虚拟环境后,输入nvcc -V的时候显示的就是所需要的版本,就可以去编译mmdetection3d了。

编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本的更多相关文章

  1. gcc 4.9 编译安装 in Ubuntu 18.04(主要用于在无root权限下,进行更新系统 gcc 版本)

    gcc 4.9 编译安装教程,因为项目编译过程中,需要采用特定的gcc版本来进行编译,所以进行简要记录,进行备忘: 下载:curl -O -L https://mirrors.tuna.tsinghu ...

  2. MySQL5.7.20 二进制包无ROOT权限下安装, 滴滴云服务器

    01, 下载安装包 =>  https://dev.mysql.com/downloads/mysql/ 02, 上传到linux系统, 笔者这里使用的 滴滴云服务器 安装在 home/dc2- ...

  3. 非[无]root权限 服务器 下安装perl以及perl模块--转载

    转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1. ...

  4. 非[无]root权限 服务器 下安装perl以及perl模块

    转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1. ...

  5. 8、非root权限下安装perl以及perl模块

    转载:http://www.cnblogs.com/nkwy2012/p/6418669.html 转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无roo ...

  6. Linux下在root权限下临时使用其它用户运行命令

    一.简述 当我们在使用Linux时,经常需要在root权限下执行某些命令,或者在/etc/rc.d/rc.local中写一些角本.而如果某些角本必须使用非root用户时,直接su是不行的,比如Elas ...

  7. Debian下无root权限使用Python访问Oracle

    这篇文章的起因是,在公司的服务器上没有root权限,但是需要使用 Python 访问 Oracle,而不管是使用 pip 安装组件还是安装 Oracle 的 client,都需要相应权限.本文即解决该 ...

  8. python 安装 easy_intall 和 pip python无root权限安装

    http://www.cnblogs.com/haython/p/3970426.html easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装e ...

  9. 无root权限安装python

    http://lujialong.com/?p=150 pipe 安装第三方包 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip http://www.cn ...

  10. Android 上实现非root的 Traceroute -- 非Root权限下移植可运行二进制文件 脚本文件

    作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 演示样例代码下载 : -- CSDN : h ...

随机推荐

  1. python读取ini配置文件-configparser使用方法

    我们在操作 ini 配置文件的时候 可以使用 Python 的 configparser 库 具体使用方法如下: from configparser import ConfigParser # 初始化 ...

  2. JDBC驱动连接MogDB/opengauss

    JDBC 驱动连接 MogDB/opengauss 一.环境说明 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release 7.6.18 ...

  3. openGauss数据库源码解析——慢SQL检测

    openGauss 数据库源码解析--慢 SQL 检测 慢 SQL 检测的定义: 基于历史 SQL 语句信息进行模型训练,并用训练好的模型进行 SQL 语句的预测,利用预测结果判断该 SQL 语句是否 ...

  4. Flutter笔记 - 布局类组件

    布局类组件 Row水平方向排列 textDirection 水平方向子组件布局顺序. mainAxisSize 占用空间,默认MainAxisSize.MAX mainAxisAligment 对齐方 ...

  5. 微信小程序,本地和真机测试都是好的,但体验版扫码显示空白页

    大概率是缓存导致的,删除掉你手机上的小程序[开发版] 和 [体验版],然后再扫码进入体验版就好了.

  6. Java面试题:请谈谈对ThreadLocal的理解?

    ThreadLocal是一种特殊的变量存储机制,它提供了一种方式,可以在每个线程中保存数据,而不会受到其他线程的影响.这种机制在多线程编程中非常有用,因为它允许每个线程拥有自己的数据副本,从而避免了数 ...

  7. 【pytorch学习】之概率

    6 概率 简单地说,机器学习就是做出预测.根据病人的临床病史,我们可能想预测他们在下一年心脏病发作的概率.在飞机喷气发动机的异常检测中,我们想要评估一组发动机读数为正常运行情况的概率有多大.在强化学习 ...

  8. CF1832B Maximum Sum 题解

    [题目描述] 给定一个长度为 \(n\) 的数列,其中每个元素互不相同,进行 \(k\) 次操作,每次可以选择删除序列中最小的两个数或最大的一个数.求操作后剩余数的和的最大值. [思路] 我们构造一组 ...

  9. 我在阿里巴巴做 Serverless 云研发平台

    简介: Serverless 云研发平台经过这半年多的蜕变,已经从简单的解决工程链路的平台演进成一个面向研发.上线.运维的全生命周期研发平台,后续要解决的命题会集中在用户低门槛上. 作者 | 林昱(苏 ...

  10. 埃森哲携手阿里云,采用K8s容器云服务为客户提供无限弹性

    简介: 埃森哲作为全球领先的专业服务公司,在数字化.云计算等领域拥有全球领先的能力,我们在多年的实际客户项目中,找到并沉淀出了适合企业数字化转型的方法论,积累了丰富的落地经验. 作者:姚迪.周警伟 随 ...