当前位置:   article > 正文

Ubuntu20.04安装LibTorch并完成高斯溅射环境搭建_ubuntulibtorch使用gpu

ubuntulibtorch使用gpu

0. 简介

最近受到优刻得的使用邀请,正好解决了我在大模型和自动驾驶行业对GPU的使用需求。UCloud云计算旗下的CompshareGPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。暂时已经满足我的使用需求了,同时支持访问加速,独立IP等功能,能够更快的完成项目搭建。
在这里插入图片描述
而且在使用后可以写对应的博客,可以完成500元的赠金,完全可以满足个人对GPU的需求。
在这里插入图片描述

对应的环境搭建已经在《如何使用共享GPU平台搭建LLAMA3环境(LLaMA-Factory)》介绍过了。高斯溅射是最近在SLAM领域最火的一块工作,因为其和深度学习结合,这导致有一定的上手门槛。基于python的高斯溅射已经有很多了,现在我们这里来讲一下如何使用C++完成环境搭建以及代码训练。如果使用了优刻得平台我们可以省去搭建CUDA这些环境,可以直观关注算法层面的使用。

在这里插入图片描述

1. 检查显卡驱动

查看是否安装NVIDIA显卡

lspci | grep -i nvidia
  • 1

查看显卡信息

nvidia-smi
  • 1

在这里插入图片描述

如果出现这个样式,说明已经安装显卡驱动了。通常装好的Ubuntu中都有显卡驱动。如果在配置的过程中遇到了没有显卡驱动。如果没有驱动,那么就需要手动安装显卡驱动了。

先添加源:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
  • 1
  • 2

检查可安装的驱动:

ubuntu-drivers devices
  • 1

在这里插入图片描述

找到最适合的驱动安装,安装recommended标记的,通常也是数字版本最大的那个。

sudo apt install nvidia-driver-XXX
  • 1

也可以自动安装系统推荐那个

sudo ubuntu-drivers autoinstall
  • 1

如果没有遇到报错,说明安装成功,此时调用nvidia-smi指令可能还是看不到显卡信息,不要担心,重启系统之后就能看到了。

2. 安装CUDA

英伟达官网(最新版):CUDA Toolkit 12.5 Update 1 Downloads | NVIDIA Developer

CUDA历史版本下载地址:CUDA Toolkit Archive | NVIDIA Developer

这里是nvidia给出的官方安装指南(遇到问题时可以查阅):

NVIDIA CUDA Installation Guide for Linux

2.1 选择 runfile 按照官网提示的输入到终端中的代码执行安装

我们在打开上面的CUDA历史版本下载地址找到CUDA 12.1版本后
在这里插入图片描述

然后复制命令到命令行

wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
  • 1

这里必须先关图形界面,如果不关,运行下面安装的命令之后会报错,装不上(我们这里不需要,这个需要带图形化界面的Ubuntu)

systemctl isolate multi-user.target
  • 1

关闭图形界面之后会重启,输入如下命令(我们这里不需要,这个需要带图形化界面的Ubuntu)

 modprobe -r nvidia-drm
  • 1

2.2 安装驱动

sudo sh cuda_12.1.0_530.30.02_linux.run
  • 1

稍等一会。会在弹出的安装界面中选“continue”,如果选了会跳出安装,就说明安装失败,给了失败日志的路径,自己查看原因,一般是gcc版本问题,降级方法如下:

sudo apt-get install gcc-7 g++-7
 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
 
sudo update-alternatives --display gcc     //查看默认版本
 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1
 
sudo update-alternatives --display g++
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

如果没问题继续安装:


之后就继续,输入accept
在这里插入图片描述
之后就继续,把第一个选择驱动,给他回车取消,因为我们已经有驱动了
在这里插入图片描述
在安装完毕后,我们再开启图形界面(我们这里不需要,这个需要带图形化界面的Ubuntu)

sudo systemctl start graphical.target
  • 1

2.3 配置CUDA的环境变量

成功后需要配置一下环境变量,这步很关键。这里需要在.bashrc里配置环境变量。

sudo gedit ~/.bashrc
  • 1

在打开文件的最后一行加上:

export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 1
  • 2

特别注意文件夹路径,有时候文件夹直接是/usr/local/cuda,有时候是别的版本号,要确保文件夹存在。

source ~/.bashrc
  • 1

2.4 检查是否安装成功

检查一下CUDA是否安装正确:(注意文件夹路径一定要存在,需要跟上面设置环境变量的路径保持一致)

cat /usr/local/cuda-12.1/version.txt
  • 1

一开始的时候,我对CUDA不是很了解,执行这句话没有任何反应,我以为是该方法失效了。我使用nvidia-sminvcc --version指令都看到了CUDA版本号。但是CUDA环境没有配置好,这两个也是能拿到版本号的,所以不准确。还是应该用上面的方法检查CUDA版本。

在这里插入图片描述

2.5 卸载cuda

先进入安装目录下的bin文件夹中

cd /usr/local/cuda-12.2/bin
  • 1

然后勾选我们要卸载的12.2版本,选择done
在这里插入图片描述

3. 安装cuDNN

cuDNN比CUDA安装简单,下载对应版本压缩包,拷贝文件到指定目录,给予权限就好了。

下载cudnn相应版本.
最新版下载地址:Log in | NVIDIA Developer
cudnn历史版本: cuDNN Archive | NVIDIA Developer

官方安装指南: Installation Guide - NVIDIA Docs
在这里插入图片描述

3.1 下载
https://developer.nvidia.com/rdp/cudnn-archive
#找到https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
  • 1
  • 2

3.2 安装cuDNN库

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
  • 1
  • 2

3.3 更新APT仓库并安装cuDNN运行时库、开发库和示例库

sudo apt-get update
sudo apt-get install libcudnn8=8.9.6.50-1+cuda12.2
sudo apt-get install libcudnn8-dev=8.9.6.50-1+cuda12.2
sudo apt-get install libcudnn8-samples=8.9.6.50-1+cuda12.2
  • 1
  • 2
  • 3
  • 4

3.4 安装成功

cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

#显示“Test passed!”或类似的消息,表示cuDNN运行正常。

- 如果编译报错fatal error: FreeImage.h: No such file or directory
    1 | #include "FreeImage.h"
      |          ^~~~~~~~~~~~~
- 解决方法:sudo apt-get install libfreeimage3 libfreeimage-dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

4. 安装libtorch GPU版

进入pytorch官网 https://pytorch.org/get-started/locally/

下载一个你想用的就行
在这里插入图片描述
这里我们根据12.1的下载链接

wget https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.3.1%2Bcu121.zip
  • 1

4.1 解压

unzip libtorch-cxx11-abi-shared-with-deps-2.3.1+cu121.zip
  • 1

解压后得到libtorch文件夹,文件夹下的内容如图
在这里插入图片描述

4.2 环境测试

配置CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(libtorch_test)


find_package(PythonInterp REQUIRED)
list(APPEND CMAKE_PREFIX_PATH "/home/ubuntu/libtorch")

add_executable(libtorch_test main.cpp)

find_package(Torch REQUIRED)
target_link_libraries(libtorch_test "${TORCH_LIBRARIES}")
set_property(TARGET libtorch_test PROPERTY CXX_STANDARD 17)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

编辑main.cpp文件

#include <torch/script.h>
#include <torch/torch.h>
#include <iostream>
int main() {
    std::cout << "检查CDUA是否可用:" << torch::cuda::is_available() << std::endl;
    std::cout << "检查cudnn是否可用:" << torch::cuda::cudnn_is_available() << std::endl;
    std::clock_t s, e;
    s = clock();
    torch::Tensor cuda_output;
    for (int i=0;i<1;i++) {
        cuda_output = torch::randn({ 5, 4 }, torch::device(torch::kCUDA));
    }
    std::cout << cuda_output << std::endl;
    e = clock();
    std::cout << "use time: " << (e - s) << " 微秒" << std::endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

5. OpenSplat项目运行

要在Ubuntu环境中搭建OpenSplat项目,请按照以下步骤操作:

5.1 安装依赖项

sudo apt-get update
sudo apt-get install build-essential cmake git libeigen3-dev libopencv-dev
  • 1
  • 2

5.2 克隆项目

git clone https://github.com/pierotofy/OpenSplat OpenSplat
cd OpenSplat
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ .. && make -j$(nproc)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

5.3 下载数据集

下载并解压数据集到某个文件夹:bananatraintruck

打开终端,进入项目目录:

cd build
  • 1

运行以下命令(以banana数据集为例):

./opensplat /path/to/banana -n 2000
  • 1

生成的splat.ply文件可以在PlayCanvas Viewer中查看,cameras.json文件也会在同一目录下生成。

运行自定义数据:选择包含稀疏点的COLMAP、OpenSfM、ODM或nerfstudio项目路径。

5.4 查看参数

运行以下命令查看可调参数:

./opensplat --help
  • 1

5.5 生成压缩splat文件:

使用以下命令生成压缩的.splat文件:

./opensplat /path/to/banana -o banana.splat
  • 1

在这里插入图片描述

6. 参考链接

https://blog.csdn.net/ytusdc/article/details/132404002

https://blog.csdn.net/h3c4lenovo/article/details/119003405

https://blog.csdn.net/Xeon_CC/article/details/126913125

https://blog.csdn.net/qq_42864343/article/details/131728784

https://blog.csdn.net/2301_79694635/article/details/135647492

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号