mega-nerf安装流程

news/2024/11/6 13:32:29/

我之前记得mega-nerf要求的cuda版本是大于11.3,我手头只有一台服务器符合,就只在那上面安了。昨天一看似乎只要>=11.1了,这样一来我手头的服务器就都可以用了。或者我有什么细节没记清,还有什么要求导致我之前只在一台服务器上安mega-nerf?不记得了,之前也没有做笔记,这次就边安变做个笔记吧。

1,这是台新服务器,所以先安装anaconda,过程不赘述,看链接就好。

如何在Linux服务器上安装Anaconda(超详细)「建议收藏」 - 腾讯云开发者社区-腾讯云

安装完之后记得source ~/.bashrc,不然conda -V会显示找不到conda命令。

2,下载

git clone https://github.com/cmusatyalab/mega-nerf.git

注意environment中的pytorch安装时对cuda有版本要求,在安装环境时通过nvcc -V命令查看cuda版本是否正确,更改服务器cuda版本的链接[2]

查看显卡驱动对应的cuda版本如[1]

在这个服务器上我准备安装cuda版本为11.3,对应的gcc版本应为9.3以上,这里选择安装版本为11,参考链接[3]

更新cmake版本,用cmake --version查看cmake版本。

安装过程参考[4],在进行./config的时候报错

 由于缺少openssl引起,看了一下source安装比较麻烦,参考[5]直接用apt-get安装。

经历了这么多,下午4点半了,终于开始安装环境了。似乎还不行看到Solving environment半天没动,我才想起来,我cuda还没安。

2022年11月9日19:26:05,cuda安装出现了问题,希望早点出成果,目前先暂停,有时间再安。

11.18,我回来了。Mega-NeRF我怀疑是他给的代码就有问题,结果老是复现不出来,明明是按照他的步骤走的。可他有什么必要挖个坑呢?或许就是我菜吧,为了不让进度太难看,有个可以给别人看的东西,采用B计划:用他给的数据集验证我的想法。最终肯定要回归到使用自己数据集的方法上来,只是可能要涉及到对作者给的代码本身上的修改,这个不能轻易达成。这个代码到底能不能复现出来,似乎有一个人复现出来了,也不能确定,应该要联系他才能更好吧。

cuda运行sh XXX 的时候出现

Existing package manager installation of the driver found. It is strongly    │
│ recommended that you remove this before continuing.

选择continue后,程序中止,出现信息

Failed to verify gcc version. See log at /tmp/cuda-installer.log for details.

按照[7]中建议,使用--override命令,成功安装cuda。可参考[2]中方法,选择安装位置。

此时开始按照mega-nerf建议进行安装,输入命令

conda env create -f environment.yml

出现报错

ResolvePackageNotFound:- libstdcxx-ng==9.3.0=hd4cf53a_17- __glibc[version='>=2.17']- libgcc-ng==9.3.0=h5101ec6_17- __glibc[version='>=2.17']

出现了版本号问题,这个问题我之前也遇到过,我记得原因似乎是生成环境文件的时候系统不同[6]。按照他的建议把出问题的包的详细信息去掉,依然报错。

UnsatisfiableError: The following specifications were found to be in conflict:- _libgcc_mutex==0.1=main- tensorboard-data-server==0.6.0=py39h3da14fd_0 -> libgcc-ng[version='>=9.3.0'] -> _libgcc_mutex==0.1=conda_forge

执行命令conda update conda后,开始安装环境。

环境安装的异常顺利,等了大概20分钟安装完成,完全想象不出我之前配这个环境是怎么配了一个多星期的。

既然安了mega-nerf环境,接下来顺手把mega-nerf-viewer环境[8]也安装完吧(这个才是主要目的)。

git clone代码,并按照指示安装,出现错误。

gcc: fatal error: cannot execute ‘cc1plus’: execvp: No such file or   directory

参考[9]确定原因为GCC与G++版本不匹配,参考[10]升级g++版本后,再次cmake  ..出现错误

error: #error -- unsupported GNU version! gcc versions later than 10 arenot supported! The nvcc flag '-allow-unsupported-compiler' can be used tooverride this version check; however, using an unsupported host compilermay cause compilation failure or incorrect run time execution.  Use at yourown risk.

根据[11]可知是由gcc与g++版本太高出的问题。尝试了他提供的命令方法,不行。还是要采用软链接的方式。

再次cmake  ..出现错误

Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)

参考我之前的经验[12]安装glfw。这篇文章有点小错误,需要读者自己改正。

再参考[13]安装libtorch。

看错了,原来是GLEW,参考[14]

运行cmake ..出现报错

Could not find a package configuration file provided by "Torch" with any ofthe following names:TorchConfig.cmaketorch-config.cmake

按照[15]提供方法解决问题。

继续运行cmake .. 报错

CMake Error at /home/group/lxl/3rdparty/libtorch/libtorch/share/cmake/Caffe2/public/cuda.cmake:185 (message):PyTorch requires cuDNN 7 and above.

参考[16],结合[2]中的安装流程可知是在

cp /home/zb/cuda/tem/cuda/include/cudnn.h  /home/zb/cuda/cuda-8.0/include/  

时没有把cudnn_version.h拷过去,复制过去后成功运行,有个小warning,不碍事。

cmake成功后,进行make,报错

/usr/include/c++/10/chrono:428:27: internal compiler error: Segmentation fault 428 | _S_gcd(intmax_t __m, intmax_t __n) noexcept

查看[17]可知,这是10.3版本自有的一个bug,通过[10]中的方法,将gcc和g++版本改为9后解决。(下次装的时候或许可以按照他推荐的版本来装,这样遇到的错误会少一点,我因为gcc版本这个问题放了好多错。)

更改gcc版本后成功make。运行命令

./mega-nerf-viewer $DATASET_PATH/rubble/octree/octree-rubble-pixsfm-8.npz --model_path $DATASET_PATH/rubble/model/rubble-pixsfm-8.pt

出现报错

GLX: Failed to create context: GLXBadFBConfigSegmentation fault (core dumped)

按照[18]中的说法,似乎是关于显卡设置的问题。通过远程服务器无法显示画面,我是直接在服务器上接显示器搞定的(→_→)。

完结撒花(冷知识,这个梗来自来自《樱花庄的宠物女孩》)

参考资料:

[1]:Release Notes :: CUDA Toolkit Documentation

[2]:非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)_随性拂尘倾心的博客-CSDN博客[3]:Ubuntu升级GCC版本_quxuexi的博客-CSDN博客_ubuntu升级gcc

[4]:cmake 升级_梦醒时分1218的博客-CSDN博客_cmake 升级

[5]:openssl安装与使用_WuYuJun's blog的博客-CSDN博客_openssl

[6]:Conda导入环境时 ResolvePackageNotFound错误_哦啦哦啦!的博客-CSDN博客

[7]:Linux安装CUDA GCC版本不兼容_氵文大师的博客-CSDN博客

[8]:GitHub - cmusatyalab/mega-nerf-viewer

[9]:gcc: error trying to exec 'cc1plus': execvp: no such file or directory - mydebug - 博客园

[10]:Linux下升级gcc/g++版本_运妙心藏的博客-CSDN博客

[11]:unsupported GNU version! gcc versions later than 6 are not supported!_littlehaes的博客-CSDN博客[12]:01 ubuntu 安装 glfw_魔尊moon的博客-CSDN博客

[13]:Ubuntu18.04 配置 LibTorch_john_bh的博客-CSDN博客

[14]:Package | 解决Could NOT find GLEW (missing: GLEW_INCLUDE_DIRS GLEW_LIBRARIES)_1LOVESJohnny的博客-CSDN博客

[15]:Could not find a package configuration file provided by "Torch" with any of the following names: · Issue #12449 · pytorch/pytorch · GitHub

[16]:高版本cudnn(cudnn8以上版本)下编译spconv的问题和解决方法_dawn_chen123的博客-CSDN博客_pytorch requires cudnn 7 and above.

[17]:nccl errors after moving to gcc 10.3.0 · Issue #494 · NVIDIA/nccl · GitHub

[18]:Cuda_assert: unknown error · Issue #6 · cmusatyalab/mega-nerf-viewer · GitHub


http://www.ppmy.cn/news/404189.html

相关文章

配置mega环境

第一次尝试按照官网环境配置一步一步配置报错 运行train_net的时候报ImportError: libcudart.so.10.1: cannot open shared object file: No such file or directory 环境 第二次尝试下载cuda版本10.1及对应的pytorch环境 下载cuda10.1按照官网教程,没有下载dr…

【转】MEGA构建系统进化树的步骤(以MEGA7为例)

本文是看中国慕课山东大学生物信息学课程总结出来的 分子进化的研究对象是核酸和蛋白质序列。研究某个基因的进化,是用它的DNA序列,还是翻译后的蛋白质序列呢?序列的选取要遵循以下原则:1)如果DNA序列的两两间的一致度…

Mega-Nerf学习笔记

Mega-NeRF:Scalable Construction of Large-Scale NeRFs for Virtual Fly-Throughs 主页:https://meganerf.cmusatyalab.org/ 论文:https://meganerf.cmusatyalab.org/resources/paper.pdf 代码:https://github.com/cmusatyalab/mega-nerf …

Mega软件操作教程

Mega软件操作教程 001-a 进化树基本概念知识点讲解(理论讲解) 001-b 进化树原理和建树方法的选择(理论讲解) 001-c 进化树结构术语等(理论讲解) 001-d 分子系统进化分析流程(理论讲解&#xff…

019_mega

title 019《MEGA》网盘可以良心到什么程度? 试试MEGA吧! MEGAsync的特色 没有限速的概念(真的被百度盘的限速策略恶心到了)在国内可用(google虽好, 但国内用不了, MEGAsync亲测国内可用)云端加密, 资源不会被封杀官方提供了Linux客户端 关于流量限制(对比坚果云的流量计费策略…

MEGA的使用

一.获得meg的文件 1.获得序列(没有的可以找我) 序列链接:链接:https://pan.baidu.com/s/1dhhn_W4ys-VEo5fxB1Z9ow 提取码:1234 复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的…

HTML基础测试

HTML基础测试 一. 单选题(共16 题,80.0分)二. 判断题(共7 题,35.0分)三. 多选题(共7 题,35.0分) 一. 单选题(共16 题,80.0分) (单选题…

什么是指标拆解树?指标拆解树怎么做数据分析?

指标拆解树能够通过对指标进行拆解,帮助分析定位影响指标的关键因素。 通过指标拆解树,您可以方便查看各个维度中各个成员对指标的贡献情况和占比,也可以将指标分解到一个或多个维度,分析每个维度对指标的影响。 指标拆解树的数据…