无root权限安装CUDA10.0以及gcc的降级+FairMOT构建DCNv2踩坑记录

2023-11-10 15:59

本文主要是介绍无root权限安装CUDA10.0以及gcc的降级+FairMOT构建DCNv2踩坑记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

无root权限安装CUDA10.0+FairMOT构建DCNv2踩坑记录

首先介绍一下环境情况
因为比赛CUDA版本要求是10.0,所以本文是在Ubuntu20.04下安装CUDA10.0实现FairMOT的复现;但是Ubuntu20.04自带的gcc版本是9.3,创建虚拟环境创建出来的gcc版本根据python版本各异,而在CUDA10.0编译DCNv2要求gcc版本在7以下,所以还需要做一个gcc的版本降级

  • NVIDIA-SMI 460.80 Driver Version: 460.80 CUDA Version:11.2
  • Ubuntu20.04
  • GPU2080Ti
  • CUDA10.0

因为使用的是服务器,以用户身份登录是没有root权限的


无root权限安装CUDA

非root用户安装cuda与cudnn
非root用户安装cuda10.0和cudnn
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130


gcc版本的降级

非root权限升级(修改当前用户)Linux gcc版本
后来想到我们为什么要那么努力改变主机的gcc版本呢?我们明明是在虚拟环境下运行啊!经过查找发现anaconda创建出来的虚拟环境gcc版本是和主机版本不一致的,我们可以改变anaconda的gcc 版本来运行!!毕竟我们用的是虚拟环境嘛
如何改变anaconda 的 gcc 版本?
最后才发现这么多努力可以只换做一行命令行语句
conda install https://anaconda.org/brown-data-science/gcc/5.4.0/download/linux-64/gcc-5.4.0-0.tar.bz2
通过conda安装gcc5.4.0,它会自动把依赖和环境都给配好
在这里插入图片描述
泪目啊


同时因为版本的问题,大大小小把DCNv2的坑全踩了一遍,记录一下

1. 执行FairMOT demo.py出现Error:ModuleNotFoundError: No module named '_ext’

(fairmot) lyp@ubuntu-server:~/FairMOT-master/src$ python demo.py mot --load_model ../models/fairmot_dla34.pth --conf_thres 0.4
Traceback (most recent call last):File "demo.py", line 14, in <module>from track import eval_seqFile "/home/lyp/FairMOT-master/src/track.py", line 15, in <module>from tracker.multitracker import JDETrackerFile "/home/lyp/FairMOT-master/src/lib/tracker/multitracker.py", line 13, in <module>from models.model import create_model, load_modelFile "/home/lyp/FairMOT-master/src/lib/models/model.py", line 11, in <module>from .networks.pose_dla_dcn import get_pose_net as get_dla_dcnFile "/home/lyp/FairMOT-master/src/lib/models/networks/pose_dla_dcn.py", line 16, in <module>from dcn_v2 import DCNFile "/home/lyp/FairMOT-master/DCNv2/dcn_v2.py", line 13, in <module>import _ext as _backend
ModuleNotFoundError: No module named '_ext'

解决措施:
这是一个深度学习代码运行时报的错,错误原因是/DCNv2/目录下需要重新编译,要把该目录的build文件夹(如果存在的话)删除,然后在命令行运行python setup.py build develop重新生成符合自己环境的build

2. nvcc明明在/cuda/bin/目录下却说找不到

unable to execute ':/home/lyp/cuda-10.0/bin/nvcc': No such file or directory
error: command ':/home/lyp/cuda-10.0/bin/nvcc' failed with exit status 1

解决措施:
(fairmot) lyp@ubuntu-server:~/FairMOT-master/DCNv2$ vim ~/.bashrc
改为export CUDA_HOME=/home/lyp/cuda-10.0
(fairmot) lyp@ubuntu-server:~/FairMOT-master/DCNv2$ source ~/.bashrc

3. 由于/bin:/usr/bin 不在PATH 环境变量中,故无法找到该命令。

(base) lyp@ubuntu-server:~/FairMOT-master/DCNv2$ source ~/.bashrc
命令 'dirname' 可在以下位置找到* /bin/dirname* /usr/bin/dirname
由于/bin:/usr/bin 不在PATH 环境变量中,故无法找到该命令。
dirname:未找到命令
命令 'dirname' 可在以下位置找到* /bin/dirname* /usr/bin/dirname
由于/bin:/usr/bin 不在PATH 环境变量中,故无法找到该命令。
dirname:未找到命令

解决措施:
不要改PATH,改的是CUDA_HOME

4. error: ‘THFloatBlas_gemv’ was not declared in this scope;

/home/lyp/FairMOT-master/DCNv2/src/cpu/dcn_v2_cpu.cpp:224:9: error: ‘THFloatBlas_gemv’ was not declared in this scope; did you mean ‘THFloatBlas_axpy’?224 |         THFloatBlas_gemv('t', k_, m_, 1.0f,|         ^~~~~~~~~~~~~~~~|         THFloatBlas_axpy
error: command 'g++' failed with exit status 1

解决措施:
在这里插入图片描述

5. 没有root权限,权限不够

(fairmot) lyp@ubuntu-server:~/FairMOT-master/DCNv2$  ./make.sh
-bash: ./make.sh: 权限不够
(fairmot) lyp@ubuntu-server:~/FairMOT-master/DCNv2$ chmod +x ./make.sh
(fairmot) lyp@ubuntu-server:~/FairMOT-master/DCNv2$ ./make.sh
running build
running build_ext
building '_ext' extension

6. #error – unsupported GNU version! gcc versions later than 7 are not supported!

/home/lyp/cuda-10.0/include/crt/host_config.h:129:2: error: #error -- unsupported GNU version! gcc versions later than 7 are not supported!129 | #error -- unsupported GNU version! gcc versions later than 7 are not supported!|  ^~~~~
error: command '/home/lyp/cuda-10.0/bin/nvcc' failed with exit status 1

归根到底,还是gcc版本太高了,Ubuntu20.04自带的gcc版本是9.3,现在需要对gcc版本做一个降级
! ! ! ! ! !不要直接将Ubuntu的gcc版本,我们只需要改变anaconda虚拟环境的gcc版本就可以啦 血泪教训

7. gcc: error trying to exec ‘cc1plus’: execvp: no such file or directory
存在问题:
gcc与g++的版本没有对应
解决措施:

 conda install https://anaconda.org/brown-data-science/gcc/5.4.0/download/linux-64/gcc-5.4.0-0.tar.bz2

大家如果还有问题可以看看这篇博客FairMOT构建DCNv2踩坑记录

最近又遇到了一个新问题

(redet) lyp@ubuntu-server:~$ bash compile.sh
/home/lyp/anaconda3/envs/redet/compiler_compat/ld: cannot find -lpthread
/home/lyp/anaconda3/envs/redet/compiler_compat/ld: cannot find -lc
collect2: 错误: ld 返回 1
error: command ‘gcc’ failed with exit status 1
解决办法:
https://www.cnblogs.com/zhangly2020/p/14213866.html

这篇关于无root权限安装CUDA10.0以及gcc的降级+FairMOT构建DCNv2踩坑记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383732

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

Linux编译器--gcc/g++使用方式

《Linux编译器--gcc/g++使用方式》文章主要介绍了C/C++程序的编译过程,包括预编译、编译、汇编和链接四个阶段,并详细解释了每个阶段的作用和具体操作,同时,还介绍了调试和发布版本的概念... 目录一、预编译指令1.1预处理功能1.2指令1.3问题扩展二、编译(生成汇编)三、汇编(生成二进制机器语

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装