Ubuntu20.04+Quadro RTX 5000,3D gaussian环境配置

2024-01-25 20:20

本文主要是介绍Ubuntu20.04+Quadro RTX 5000,3D gaussian环境配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0. 引言
  • 1. cuda安装步骤
    • 1.1显卡驱动安装
      • 禁用系统自带驱动
      • nvidia显卡驱动安装
    • 1.2 CUDA安装
    • 1.3 配置环境变量
  • 2. 3D gaussian安装
  • 3. Viewer安装

0. 引言

2020年,NeRF的出现之际引起了轩然大波,出现了大量相关工作。3D gaussian算是新视角生成领域目前的SOTA,可以进行实时的渲染;最大训练速度上可以与Instant相当,且质量差不多;增加迭代次数后,可以显著提高重建质量,在训练时间51min的情况下,重建效果可以稍微超过Mip-NeRF(48h)。这种好东西谁不想学习下呢,所以我们先进行第一步:配置3D gaussian环境。

我当前的环境为ubuntu 20.04+Quadro RTX 5000。这个项目对显存要求比较高,官方说明需要24G的显存,如果显存不够,可以看github项目主页最下面的FAQ,有对低显存方案进行说明。除此以外Viewer的版本目前好像只支持windows、ubuntu20.04和22.04。

github主页中有一个在windows中安装的youtue教程,非常详细。

目前处于学习阶段,简单用已有数据集进行测试,验证环境可用后准备开始阅读源码。因此还没有安装colmap来处理自己的数据,之后会对colmap的配置进行补充。后边也会新开两篇来讲解论文和代码。

1. cuda安装步骤

1.1显卡驱动安装

禁用系统自带驱动

如果不禁用这个开源驱动,后边安装可能会出现冲突,通过lsmod | grep nouveau来查看该驱动的情况,如果有输出说明该驱动正在工作,否则表示已经禁用。

禁用方法如下:
sudo gedit /etc/modprobe.d/blacklist.conf
在该文件末尾加上

blacklist nouveau
options nouveau modeset=0

在终端输入sudo update -initramfs -u

nvidia显卡驱动安装

显卡是硬件,想要显卡可以正常工作必须找到对应的驱动,否则会出现各种各样显示上的问题,比如显示器不亮,分辨率不正常
ubuntu-drivers devices可以查询推荐安装的驱动版本
以我的输出为例

driver   : nvidia-driver-495 - third-party non-free
driver   : nvidia-driver-535 - third-party non-free recommended
driver   : nvidia-driver-510 - third-party non-free
driver   : nvidia-driver-465 - third-party non-free

可以看到535为当前显卡的适配驱动版本
然后打开Software&Updates进行对应版本的安装
在这里插入图片描述

重启电脑后,如果显示都正常,那就应该大功告成了。但我曾遇到过一个问题,就是已经用了推荐版本的显卡驱动,但无法点亮副屏,然后降了版本才解决的。总而言之显示出了问题,很大可能是显卡驱动的问题,多换几个版本试试。

在终端输入nvidia-smi,如果没报错就ok了,在输出的信息中可以看到当前驱动的版本和支持的最高版本CUDA,后边安装CUDA的时候要注意版本不能超过这个。

1.2 CUDA安装

https://developer.nvidia.com/cuda-toolkit-archive
从这个链接中选择合适的CUDA版本,以我的为例
在这里插入图片描述

选择之后可以看到下边的安装指令,逐条执行即可。但我安装的时候出现了一个问题,有可能系统会自动帮你升级到最新的驱动,有的库需要特殊的CUDA版本,所以我们可以更改最后一行命令,来安装指定版本的CUDA,sudo apt-get -y install cuda-xxx

1.3 配置环境变量

终端输入nvcc -V来检查CUDA是否安装成功,如果出现了命令找不到的问题,先别急,我们还需要配置一下CUDA的环境变量
终端执行sudo gedit ~/.bashrc,在文件的最后加上(路径按自己的来)

export CUDA_HOME=/usr/local/cuda-11.8
if [[ ":$PATH:" != *":/usr/local/cuda-11.8/bin:"* ]]; thenexport PATH=$PATH:/usr/local/cuda-11.8/bin
fi
if [[ ":$LD_LIBRARY_PATH:" != *":/usr/local/cuda-11.8/lib64:"* ]]; thenexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
fi

再输入source ~/.bashrc来使得更改生效,这次在执行nvcc -V,有如下输出,代表安装成功。

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

2. 3D gaussian安装

这个项目的安装没啥难度,问题基本都处在CUDA上边
这部分是对官网加成的梳理https://github.com/graphdeco-inria/gaussian-splatting

  • git clone git@github.com:graphdeco-inria/gaussian-splatting.git --recursive
    最后的–recursive比较重要,不加的话有的东西装不上。
  • 进入clone下来的项目目录,在已经安装anaconda的情况下,执行如下命令
conda env create --file environment.yml
conda activate gaussian_splatting

安装两个子模块的时候,可能会报一些错误,这些错误藏在很长的文本中,并且有时候没有颜色标示,所以需要仔细地找出错误点,比如本地缺少一些库,CUDA环境变量没设置对一类的。

需要非常注意!!!!3dgs对CUDA版本有特殊的要求,安装到本地的完整版CUDA版本是11.8,而安装到conda环境中供pytorch使用的阉割版本是11.6(这个版本不包含nvcc,一些复杂功能也没有),官方的解释如下:

Hi,
there’s two different things. One is the full CUDA SDK, including the compiler (NVCC). We need it to build the PyTorch extensions that we wrote ourselves and that the optimizer uses. The other is the CUDA runtime that PyTorch is built against (the latest CUDA runtime that PyTorch 1.12 works with is 11.6). If you install PyTorch with CUDA with Conda, it installs a small subset of the full CUDA SDK that cannot do compilation. If you install the full 11.6 SDK and try to compile our extensions with it, it can fail because of a known issue with C++14 support in the 11.6 CUDA compilers.

训练代码python train.py -s <path to COLMAP or NeRF Synthetic dataset>

3. Viewer安装

按官方的说法,目前在windows\ ubuntu20.04和22.04上是可用的,其他版本不清楚。

sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# Project setup
cd SIBR_viewers
git checkout fossa_compatibility #如果是22.04就不需要加这行命令
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # add -G Ninja to build faster
cmake --build build -j24 --target install

用从官网下载的训练好的模型进行测试
./<SIBR install dir>/bin/SIBR_gaussianViewer_app -m <path to trained model>
在这里插入图片描述

这篇关于Ubuntu20.04+Quadro RTX 5000,3D gaussian环境配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可