编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本

news/2025/1/11 18:50:15/文章来源:https://www.cnblogs.com/kevin-matrix/p/18199741

在跑一些深度学习代码的时候,如果需要使用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了。

参考博客:
https://blog.csdn.net/Mr__George/article/details/106984574

https://blog.csdn.net/zhaozebin666/article/details/129817030

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原型设计工具

当下主流的原型设计工具有Axure、Figma、Pixso、墨刀。 一.Axure Axure,全称叫做 Axure RP 。Axure是一款功能强大的原型设计工具,被广泛用于用户体验(UX)和用户界面(UI)设计。这算是目前原型图领域最常用的工具,有着丰富的交互设计功能,可创建各种高保真、低保真的交互…

前端传递不同格式时间后端统一转化

这几天遇到了一个问题,就是我后端再接受查询条件的时候,关于条件我都是用 TimeQuery 来接受的,但是因为前端的比较混乱,就导致了有些传参是年月日,有些传参是年月日时分秒格式,就导致我后端一直出转化异常的错误,当时就是叫前端传参都用下统一的格式 package com.state.…

XYCTF2024

XYCTF2024 warm up 又是md5 源码 <?php include next.php; highlight_file(__FILE__); $XYCTF = "Warm up"; extract($_GET);if (isset($_GET[val1]) && isset($_GET[val2]) && $_GET[val1] != $_GET[val2] && md5($_GET[val1]) == md5(…

一文彻底整明白,基于Ollama工具的LLM大语言模型Web可视化对话机器人部署指南

在上一篇博文中,我们在本地部署了**Llama 3 8B**参数大模型,并用 Python 写了一个控制台对话客户端,基本能愉快的与 Llama 大模型对话聊天了。但控制台总归太技术化,体验不是很友好,我们希望能有个类似 ChatGPT 那样的 Web 聊天对话界面,本博文就安排起来……在上一篇博文…

常见Windows图标和缩略图问题的解决方法 steam图标变白、变地球

常见Windows图标和缩略图问题的解决方法 steam图标变白、变地球原文地址:https://itxiaozhang.com/common-windows-icon-thumbnail-issues-solutions/ 此教程配合视频学习效果最佳,视频教程在文章末尾。Windows桌面图标问题指南 在使用Windows操作系统时,我们经常会遇到各种…

使用GET方法访问网站

使用GET方法访问网站 服务器接收get参数 server.pyimport flask app = flask.Flask(__name__) @app.route(/) def index():province = flask.request.args.get(province)city = flask.request.args.get(city)print(province, city)return province+","+citydebug=Tru…

m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长

1.算法仿真效果 matlab2022a仿真结果如下:2.算法涉及理论知识概要低密度奇偶校验码(Low-Density Parity-Check, LDPC)是一种高效的前向纠错码,因其优越的纠错性能和近似香农限的接近程度而广泛应用于现代通信系统中。LDPC码的编译码算法众多,其中Belief Propagation(BP)…

免费解锁Windows 11的HEVC支持:轻松播放4K电影的详细步骤

Windows 11的HEVC支持Windows 11 安装完成后,用电影和电视这个应用打开4K或者8K的MP4文件时,提示缺少解码器 以下就是本人解决过程 第一步:查找HEVC扩展的Microsoft Store页面 (本人直接浏览器打开:https://apps.microsoft.com/,搜索HEVC扩展,得到以下页面)复制地址栏的…

轻松玩转Python文件操作:移动、删除

哈喽,大家好,我是木头左!Python文件操作基础 在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。这两个模块包含了许多与文件和目录操作相关的函数。 理解os模块 os模块是Python中…

解决Python执行命令时路径空格引发的困扰

哈喽,大家好,我是木头左!在编程实践中,常常需要通过Python执行系统命令,这包括调用外部程序、脚本或是其他命令行工具。然而,一个看似简单却常被忽视的细节——文件路径中的空格,可能会导致程序意外崩溃或行为异常。本篇文章将深入探讨当路径中包含空格时,如何在Python…

Winform窗体的属性页没有显示筛选框

新建一个Wiform项目,在新窗体中添加了一些Button、TextBox,然后查看这个窗体的属性页,发现属性页上方没有属性筛选框 如果你装了Dev Express,那么在窗体上放置一些Dev的控件,发现属性出现了筛选框 然后尝试一下创建一个Dev窗体DevExpress.XtraEditors.XtraForm,仍然不会出…

视觉Mamba的多向扫描策略真的有效吗?

前言 本文对主流的扫描方向及其组合对遥感图像语义分割的影响进行了全面的实验研究。通过在LoveDA、ISPRS Potsdam和ISPRS Vaihingen数据集上广泛的实验,我们证明了无论其复杂性或扫描方向的数量,没有一个扫描策略能够显著优于其他策略。所以对于高分辨率遥感图像的语义分割,…