当前位置: 首页 > news >正文

nvdiadocker相关配置S3Gaussian

https://download.csdn.net/download/sinat_21699465/89458214

dockerfile文件参考:

https://download.csdn.net/download/sinat_21699465/89458214

prework:

显卡驱动决定了cuda版本支持的上限。例如nvdia535驱动最高支持cuda12.2所以显卡驱动版本选择也不要盲目求稳。

nvidiadocker解决了除驱动外的所有问题。所以驱动还是得手动安装。

main work:

安装docker可以参考https://blog.csdn.net/sinat_21699465/article/details/139068631

在安装好docker的基础上安装nvidia-container-toolkit

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

验证是否安装好:
dpkg -l | grep nvidia-container-toolkit

修改配置:

修改/etc/docker/daemon.json文件如下所示
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
重启docker服务:sudo systemctl restart docker

创建镜像:

docker pull ubuntu:22.04

cd path/to/dockerenv/

cd ubuntu2204/base/
docker build --build-arg IMAGE_NAME=nvidia/cuda --build-arg TARGETARCH=amd64 -t 11.8.0-base-ubuntu22.04 .

cd ../runtime/
docker build --build-arg IMAGE_NAME=nvidia/cuda --build-arg TARGETARCH=amd64 -t nvidia/cuda:11.8.0-runtime-ubuntu22.04 .
cd ../devel/
docker build --build-arg IMAGE_NAME=nvidia/cuda --build-arg TARGETARCH=amd64 -t nvidia/cuda:11.8.0-devel-ubuntu22.04 .
cd cudnn8/
docker build --build-arg IMAGE_NAME=nvidia/cuda --build-arg TARGETARCH=amd64 -t nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 .
cd ../../..
docker build --build-arg IMAGE_NAME=nvidia/cuda --build-arg TARGETARCH=amd64 -t 3dgsenv:v1.0 .
docker run -it --gpus all -v /home:/home --name s3gs 3dgsenv:v1.0 /bin/bash

其中 --gpus all很关键!!!此处也可以指定gpu的机器号。选定使用哪个gpu

其他

如果在安装驱动过程中在本机编译过cuda,那么在用dockerfile创建镜像时会大大缩短用时。与之相对应的就是,需要增加本级编译cuda的工作和对应时间消耗。

可以自行取舍。本文章内的环境是已经本机编译好过cuda。

具体可以参考我的装机流程文章里的nvdia驱动安装链接内的内容。

注意事项:

创建3dgs镜像过程中有一点要注意:

# 安装 PyTorch 2.2.1 和 CUDA 11.8

# RUN pip3 install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/cu118

# pytorch版本对应关系可以参考:https://pytorch.org/get-started/previous-versions/

# 建议安装miniconda3,在conda虚拟环境中进行pytorch安装

验证:


root@c1d989c4faf7:/usr/bin# python3
Python 3.9.19 (main, Apr  6 2024, 17:57:55) 
[GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.Tensor(1).cuda()
tensor([4.3771], device='cuda:0')
>>> 

另启动一个终端就可以看到有个python3占住了138显存

随着验证的python退出,这个138mb的显存占用也被释放了

对应的3dgs的git使用上的一点小技巧:

先浅拷贝,再分别拉子模块
 git clone --depth 1 https://github.com/nnanhuang/S3Gaussian.git

cd S3Gaussian
git submodule update --init --recursive

cd S3Gaussian
conda create -n S3Gaussian python=3.9 
conda activate S3Gaussianpip install -r requirements.txt
pip install -e submodules/depth-diff-gaussian-rasterization
pip install -e submodules/simple-knn

进入虚拟环境后再装pytorch相关内容:
pip3 install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/cu118

然后再

安装libgl库
apt-get install libgl1-mesa-glx 否则会无法使用open3d
pip install open3d==0.16.0

安装这些环境的前提是有网,没有网的话,就只能用服务器上的torch改代码了

或者使用自己的机器进行训练,但是会遇到cuda内存不足的问题,可以考虑调整batch size等解决方案。

http://www.lryc.cn/news/381848.html

相关文章:

  • 【科技前沿】电子设计新贵SmartEDA:为何它引领行业风潮?
  • 免费悬浮翻译器哪个好?测评5款悬浮翻译器
  • 压缩文件解压方法总结
  • 探索Elastic Search:强大的开源搜索引擎,详解及使用
  • vue中的代码分割
  • java课程设计GUI学生信息管理系统
  • 一网通办怎么办?一网统管怎么管?
  • Kubernetes Dashboard
  • NSSCTF-Web题目15
  • 每天认识:轮询和中断
  • SpringBoot中使用MQTT实现消息的订阅和发布
  • 等保测评练习10
  • VBA学习(16):工作表事件示例:输入数据后锁定单元格
  • mysql学习——SQL中的DDL和DML
  • 什么是多态?一文彻底搞懂!
  • CST电磁仿真软件的参数类型和含义【电磁仿真入门教程】
  • 华为HCIA综合实验(结合前几期所有内容)
  • git 拉下来的项目,出现“加载失败”的解决方法
  • sql资料库
  • 【python入门】运算符
  • 【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术
  • 机器学习-课程整理及初步介绍
  • 北斗三号短报文通信终端 | 助力户外无网络场景作业
  • RERCS系统开发实战案例-Part05 FPM Application的Feeder Class搜索组件的实施
  • 算法常见手写代码
  • 数据结构9——排序
  • 分布式锁实现方案-基于Redis实现的分布式锁
  • MTK7628+MT7612 加PA定频数据
  • [信号与系统]关于双线性变换
  • 763. 划分字母区间