实验笔记之——Ubuntu20.04配置nvidia以及cuda并测试3DGS与SIBR_viewers

之前博文测试3DGS的时候一直用服务器进行开发,没有用过笔记本,本博文记录下用笔记本ubuntu20.04配置过程~

学习笔记之——3D Gaussian Splatting源码解读_3dgs运行代码-CSDN博客文章浏览阅读3.2k次,点赞34次,收藏62次。高斯模型的初始化,初始化过程中加载或定义了各种相关的属性使用的球谐阶数、最大球谐阶数、各种张量(_xyz等)、优化器和其他参数。self.active_sh_degree = 0 #球谐阶数self.max_sh_degree = sh_degree #最大球谐阶数# 存储不同信息的张量(tensor)self._xyz = torch.empty(0) #空间位置self._scaling = torch.empty(0) #椭球的形状尺度。_3dgs运行代码https://blog.csdn.net/gwplovekimi/article/details/135500438?spm=1001.2014.3001.5501实验笔记之——基于COLMAP的Instant-NGP与3D Gaussian Splatting的对比_colmap导出相机坐标到instant-ngp-CSDN博客文章浏览阅读1.6k次,点赞25次,收藏24次。之前博客进行了COLMAP在服务器下的测试实验笔记之——Linux实现COLMAP-CSDN博客学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。_colmap导出相机坐标到instant-ngphttps://blog.csdn.net/gwplovekimi/article/details/135406537?spm=1001.2014.3001.5501实验笔记之——Gaussian Splatting_gaussian splatting viwer快捷键-CSDN博客文章浏览阅读1.6k次,点赞36次,收藏20次。之前博客对NeRF-SLAM进行了调研学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客NeRF 所做的任务是 Novel View Synthesis(新视角合成),即在若干已知视角下对场景进行一系列的观测(相机内外参、图像、Pose 等),合成任意新视角下的图像。传统方法中,通常这一任务采用三维重建再渲染的方式实现,NeRF 希望不进行显式的三维重建过程,仅根据内外参直接得到新视角渲染的图像。_gaussian splatting viwer快捷键https://blog.csdn.net/gwplovekimi/article/details/135349210?spm=1001.2014.3001.5501

目录

一、配置nvidia

关闭系统自带的nouveau

安装NVIDIA驱动

二、安装CUDA

多个cmake版本共存

测试3DGS

编译SIBR_viewers

结果可视化

参考资料


一、配置nvidia

关闭系统自带的nouveau

nouveau是Ubuntu自带的显卡驱动,要安装nvidia之前需要把它禁掉。通过下面命令来查看nouveau驱动的启用情况,如果有输出表示nouveau驱动正在工作,如果没有内容输出则表示已经禁用了nouveau。

lsmod | grep nouveau

有输出,表示nouveau启动了,下面进行nouveau的禁用。在终端输入下面命令弹出blacklist.conf文件:

sudo gedit /etc/modprobe.d/blacklist.conf

在blacklist.conf文件末尾加上这两行,并保存:

blacklist nouveau
options nouveau modeset=0

然后重启,再次查看nouveau

安装NVIDIA驱动

ubuntu20.04 安装NVIDIA驱动很容易,只需要打开系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。安装个高一点的,525吧,可以向下兼容

NVIDIA(英伟达)显卡驱动安装完成后,在终端输入nvidia-smi输出如下图所示的结果就表示安装成功了。下图中,安装的驱动支持的CUDA最高版本为12.0(注意这里需要重新启动电脑)。

然后输入nvidia-smi

查看GPU信息

二、安装CUDA

进入cuda的网站:CUDA Toolkit Archive | NVIDIA Developer

如下图所视,采用runfile模式安装

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.runsudo sh cuda_11.7.0_515.43.04_linux.run

!注意:需要取消驱动的选项,已经安装过了~

然后选择install~

CUDA安装完成后,需要配置变量环境才能正常使用。首先在终端输入sudo gedit ~/.bashrc打开如下图所示的.bashrc文件。
然后,如下图所示在.bashrc文件的最后添加以下CUDA环境变量配置信息(我从不同的文章中看到这里添加的信息不仅相同,目前还不太清楚具体含义,所以这里仅仅罗列出它们):

export PATH=$PATH:/usr/local/cuda/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64  
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

成功了!

多个cmake版本共存

当前的cmake版本如下。

升级为3.22

下载地址:Index of /files

找到对应的Linux版本,一般叫cmake-x.xx.x-linux-x86_64.tar.gz x.xx.x这个是版本。下载后之后解压,如下图

建立软连接

sudo ln -sf ~/cmake-3.22.0-Linux-x86_64/bin* /usr/bin/ 

然后在/.bashrc文件中加入

export PATH=~/cmake-3.22.0-linux-x86_64/bin:$PATH

再次查看cmake的版本

升级Cmake的版本可以避免编译3DGS的时候存在的各种问题,比如找不到“CUDAToolkit”等等,目前测试3.22是可以的,更低的版本(3.17及以下)都不行

测试3DGS

编译SIBR_viewers

遇到libgtk-3问题或者No package 'gtk+-3.0' found参考:(ubuntu20.04安装libgtk-3遇到的问题_libgtk-3-0:amd64-CSDN博客)

安装sudo apt install xorg-dev解决cannot find -lXxf86vm

如果出现embree相关的报错需要额外手动连接到embree3.6.1(GitHub - embree/embree at v3.6.1)

source embree-3.6.1.x86_64.linux/embree-vars.shcmake -Bbuild .
cmake --build build --target install --config RelWithDebInfo

结果可视化

3DGS cpp-version GPU3060, 277.084 seconds, 6000 Iterations, 数据:train, psnr 21.30

参考资料

ubuntu 多版本cmake共存的终极方法_ubuntu多版本制作软件-CSDN博客

Ubuntu20.04下CUDA、cuDNN的详细安装与配置过程(图文)_ubuntu cudnn安装-CSDN博客

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

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

相关文章

5.WEB渗透测试-前置基础知识-常用的dos命令

内容参考于: 易锦网校会员专享课 上一篇内容:4.WEB渗透测试-前置基础知识-快速搭建渗透环境(下)-CSDN博客 常用的100个CMD指令 1.gpedit.msc—–组策略 2. sndrec32——-录音机 3. Nslookup——-IP地址侦测器 ,是一个…

★【递归】【链表】Leetcode 21. 合并两个有序链表

★【递归】【链表】Leetcode 21. 合并两个有序链表 解法1 :递归链表 简直是好题啊好题多做做 ---------------🎈🎈题目链接🎈🎈------------------- 解法1 :递归链表 简直是好题啊好题多做做 >>>…

Tomcat架构分析

Tomcat的核心组件 Tomcat将请求器和处理器分离,使用多种请求器支持不同的网络协议,而处理器只有一个。从而网络协议和容器解耦。 Tomcat的容器 Host:Tomcat提供多个域名的服务,其将每个域名都视为一个虚拟的主机,在…

Zookeeper基础入门-1【集群搭建】

Zookeeper基础入门-1【集群搭建】 一、Zookeeper 入门1.1.概述1.2.Zookeeper工作机制1.3.Zookeeper特点1.4.数据结构1.5.应用场景1.5.1.统一命名服务1.5.2.统一配置管理1.5.3.统一集群管理1.5.4.服务器动态上下线1.5.5.软负载均衡 1.6.Zookeeper官网1.6.1.Zookeeper下载1.6.2.历…

技术派数据库表自动初始化(学习)

不需要在db中手动创建或者导入相关的schema、data&#xff0c;项目启动自动创建对应的表&#xff0c;并初始化。实现该过程。 Liquibase数据库版本管理 依赖配置 在paicoding-web模块中&#xff0c;pom.xml 文件中添加 <dependency><groupId>org.liquibase</g…

练习 1 Web EasySQL极客大挑战

CTF Week 1 EasySQL极客大挑战 BUUCTF 典中典复习 Web SQL 先尝试输入&#xff0c;找一找交互页面 check.php 尝试万能语句 a’ or true SQL注入&#xff1a;#和–的作用 get传参只能是url编码&#xff0c;注意修改编码&#xff0c;输入的字符串要改成url格式。 POST请求和…

YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说&#xff0c;巨大的模型很难达到实时检测的要求。而且&#xff0c;由大量深度可分离卷积层构…

Python GUI开发库之nicegui使用详解

概要 在 Python 中,创建图形用户界面(GUI)应用程序通常需要大量的代码和时间。然而,随着 Python 生态系统的不断发展,出现了一些简化 GUI 开发过程的工具和库。其中之一就是 NiceGUI 库。本文将深入探讨 NiceGUI 库的功能、用法以及如何利用它来创建漂亮而功能丰富的 GUI…

LabVIEW水下温盐深数据一体化采集与分析

LabVIEW水下温盐深数据一体化采集与分析 开发一个基于LabVIEW的水下温盐深数据一体化采集与分析系统&#xff0c;实现海洋环境监测的自动化和精确化。通过集成温度、盐度和深度传感器&#xff0c;结合USB数据采集卡&#xff0c;利用LabVIEW软件开发的图形化界面&#xff0c;实…

iOS App冷启动优化:二进制重排

原理 二进制文件中方法的加载顺序&#xff0c; 取决于方法在代码文件中的书写顺序&#xff0c;而不是调用顺序。 应用程序启动时会调用到的方法是有限的&#xff0c;但可能分散在很多个。 由于内存是分页管理的&#xff0c;要加载就要 整页加载。 这就导致很多完全还用不到的方…

LeetCode 刷题 [C++] 第148题.排序链表

题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 题目分析 根据题意&#xff0c;可以使用归并排序来对链表进行排序。归并排序是基于分治的思想&#xff0c;比较容易实现的就是自顶向下的递归方式来实现。 先找出链表的中点&#x…

自学Python笔记总结(2——了解)

网络了解 网络调试助手 NetAssist.exe NetAssist.exe 使用方法请自行寻找 UDP协议 &#xff08;只能一来一回的的发消息&#xff0c;不可连续发送&#xff09; UDP 是User Datagram Protocol的简称&#xff0c; 中文名是用户数据报协议。在通信开始之前&#xff0c;不需要建…