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 S3Gaussian

pip 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等解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

养殖自动化温控系统:现代养殖场的智能守护神

现代农业养殖业中,养殖自动化温控系统已经成为提高生产效率和保障动物福利的关键技术之一。本篇文章将深入介绍养殖自动化温控系统的原理、组成、优势及其在不同类型养殖场中的应用实例,并展望该技术的未来发展。 一、养殖自动化温控系统概述 养殖自动…

Github 2024-06-20 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-06-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目4Rust项目2JavaScript项目1Dart项目1Java项目1Go项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开…

图片转pdf,图片转pdf在线转换,在线图片转pdf

图片转PDF,听起来似乎是一个简单的操作,但实际上,它涉及到许多细节和技巧。有时候我们需要将图片转换为PDF格式,以便于分享、打印或保存。那么,如何将图片转换成PDF呢?接下来,我将为您详细介绍几…

超越AnimateAnyone, 华中科大中科大阿里提出Unimate,可以根据单张图片和姿势指导生成视频。

阿里新发布的UniAnimate,与 AnimateAnyone 非常相似,它可以根据单张图片和姿势指导生成视频。项目核心技术是统一视频扩散模型,通过将参考图像和估计视频内容嵌入到共享特征空间,实现外观和动作的同步。 相关链接 项目&#xff1…

Leetcode - 周赛401

目录 一,3178. 找出 K 秒后拿着球的孩子 二,3179. K 秒后第 N 个元素的值 三,3180. 执行操作可获得的最大总奖励 I 四,3181. 执行操作可获得的最大总奖励 II 一,3178. 找出 K 秒后拿着球的孩子 本题可以直接模拟&a…

小红书官方教程:如何在小红书上打造IP

在小红书这个五彩斑斓的社区里,打造一个成功的IP就像是种下一颗种子,看着它慢慢发芽,开花结果。今天,就让我们来聊聊如何在小红书上打造一个让人眼前一亮的个人品牌。 首先,什么是IP?IP,也就是…

leetCode热题100——两数之和(python)

题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

高考志愿服务,一张AI搜索的现实考卷

随着最后一笔落下,承载着高考考生们的知识考卷就此完成。另一张更为复杂的现实考卷——志愿填报,悄然摆在了家长和考生们的面前。 2024是多个省份进入新高考的第一年,新高考为考生带来了更大的选择空间和自由度,一些地区的考生需要…

差分总结(一维+二维)

差分&#xff0c;可以视作前缀和的逆运算。 前缀和用于去求一个区间段的和 差分用于改变一个区间的值&#xff08;比如说某个区间都加上或者减去一个数&#xff09; P2367 语文成绩 #include<bits/stdc.h> using namespace std; #define int long long int n,p; int a…

Linux:多线程中的互斥与同步

多线程 线程互斥互斥锁互斥锁实现的原理封装原生线程库封装互斥锁 死锁避免死锁的四种方法 线程同步条件变量 线程互斥 在多线程中&#xff0c;如果存在有一个全局变量&#xff0c;那么这个全局变量会被所有执行流所共享。但是&#xff0c;资源共享就会存在一种问题&#xff1…

云计算【第一阶段(17)】账号和权限管理

目录 一、用户账号和组账号概述 1.1、用户账号的三种角色 1.2、组账号的两个角色 二、用户账号文件 2.1、/etc/passwd 2.2、/etc/shadow 2.3、chage 命令 三、组账号文件 3.1、/etc/group 3.2、/etc/gshadow 四、添加组账户 4.1、添加删除组成员 4.2、删除组账号 …

【面试干货】throw 和 throws 的区别

【面试干货】throw 和 throws 的区别 1、throw1.1 示例 2、throws2.1 示例 3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;throw和throws都与异常处理紧密相关&#xff0c;但它们在使用和含义上有明显的区别。…

【CS.DS】数据结构 —— 图: 图的相关概念大全

文章目录 1 图的类型2 图的基本术语References 1 图的类型 图是一种数据结构&#xff0c;由节点&#xff08;顶点&#xff09;和边组成。图可以用来表示各种网络结构&#xff0c;如社交网络、交通网络、计算机网络等。根据边的性质&#xff0c;图可以分为以下几种类型&#xf…

Linux系统安装Dify结合内网穿透实现远程访问本地LLM开发平台

文章目录 前言1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署大语言模型应用开发平台Dify,并结合cpolar内网穿透工具实现公网环境远程访问…

海外盲盒小程序搭建过程的最大挑战:文化差异与本地化

一、引言 随着全球化的深入发展&#xff0c;跨境电商和海外市场的拓展成为许多企业的重要战略方向。盲盒小程序作为一种新兴的消费模式&#xff0c;也在海外市场展现出巨大的潜力。然而&#xff0c;在海外搭建盲盒小程序并非易事&#xff0c;文化差异与本地化问题是其搭建过程…

计算机毕业设计Python+Spark音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 音乐大数据 大数据毕业设计 大数据毕设

2023届本科生毕业论文&#xff08;设计&#xff09;开题报告 知识图谱音乐推荐系统 学 院&#xff1a; XXX 专 业&#xff1a; XXX 年 级 班 级&#xff1a; XXX 学 生 姓 名&#xff1a; XXX 指 导 教 师&#xff1a; XXX 协助指导教师&#xff1a; …

Vue68-路由简介

一、路由的应用&#xff1a;&#xff08;单页面应用&#xff09; 单页面应用&#xff1a;页面不刷新&#xff0c;但是路径会改变。 二、路由的原理&#xff1a; 2-1、多页面应用&#xff1a; 2-2、路由的相关概念 2-3、前端路由、后端路由 前端路由&#xff1a;你是什么路径…

DDMA信号处理以及数据处理的流程---cfar检测

Hello,大家好,我是Xiaojie,好久不见,欢迎大家能够和Xiaojie一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程,本系列文章将从目标生成、信号仿真、测距、测速、cfar检测、测角、目标聚类、目标跟踪这几个模块逐步介绍,这个系列的…

【面试干货】抽象类与接口的区别

【面试干货】抽象类与接口的区别 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java编程中&#xff0c;抽象类和接口是两个非常重要的概念&#xff0c;它们都为代码的可扩展性和复用性提供了基础。但是&#xff0c;它们之间也有一些明显…

AI发展核心要素之一(算力)

背景&#xff1a; 当今时代&#xff0c;云计算、人工智能、视频会议、短视频和各种社交媒体等行业蓬勃兴起&#xff0c;而ChatGPT-OpenAI的一次又一次的版本更新和迭代更是将我们带入了AI时代的新纪元。在2023年底的华为全联接大会上&#xff0c;孟晚舟就曾在演讲中表示:“算力…