nerfstudio半离线配置踩坑记录

2024-08-29 02:36

本文主要是介绍nerfstudio半离线配置踩坑记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装torch2.1.2 with cuda11.8

由于清华镜像源(包括阿里源和豆瓣源)都没有torch2.1.2+cu118的包,因此只能从pytorch官网下载。
服务器上直接通过下面pip的方式安装会由于网络原因中断,无奈只能在本地先把torch的包下载下来再上传到服务器离线安装。

pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

将torch包(torch-2.1.2+cu118-cp38-cp38-linux_x86_64.whl)上传到服务器后,pip离线安装命令如下。

pip install torch-2.1.2+cu118-cp38-cp38-linux_x86_64.whl

这时会发现安装torch需要下载多个依赖包,直接去pip源下载非常慢还容易因为网络中断,由于离线安装torch包,这里也没法通过-i https://pypi.tuna.tsinghua.edu.cn/simple 的方式换源(也可以有办法,但我试了不行),但可以设置全局永久替换来解决这个问题。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装torchvision0.16.2+cu118类似。

安装 tiny-cuda-nn

这里就踩了更多坑了。
如果能正常访问github,那么按照nerfstudio教程,用下面这条命令就可以解决了。

pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

但服务器不能访问GitHub,没办法只能参考tiny-cuda-nn的README走离线安装。在这之前,先把ninja包安装了,由于上面给pip换过清华源了,所以这里安装很顺畅。
首先,检查gcc版本、cuda版本和cmake版本。
tiny-cuda-nn编译要求
然后在本地clone tiny-cuda-nn的库和它依赖的子库(cutlass和fmt包),如果你本地能顺利的clone完,那么万事大吉,可以按照readme进行cmake编译了。如果你和我一样,好不容易clone完tiny-cuda-nn,在clone子库的时候网络超时中断了,这个时候可以选择单独clone cutlass和fmt包。

git clone --recursive https://github.com/nvlabs/tiny-cuda-nn

clone子库不幸超时的解决方案:

cd tiny-cuda-nn/dependenciesgit clone https://github.com/NVIDIA/cutlass.gitgit clone https://github.com/fmtlib/fmt.git

下面就可以cmake离线编译tiny-cuda-nn了。(实际上可能还有两个坑在后面hh)

cd tiny-cuda-nn
tiny-cuda-nn$ cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo

这一步可能会遇到找不到cuda compiler的情况。即使你使用nvcc -V查看到你本地已经按要求安装了11.8版的cuda。
这是由于cuda的版本和gcc的版本不兼容导致的,参考StackOverflow上的回答,11.8版的cuda最高支持到11版的gcc,如果你不幸gcc版本高了,没关系卸载重装就行。
cuda版本和兼容的gcc版本
没遇到cuda compiler问题的可以进行下一步cmake编译,如果你网络好是–recursive安装好cutlass和fmt包的,那么你应该不会遇到问题。

tiny-cuda-nn$ cmake --build build --config RelWithDebInfo -j

如果你是手动安装cutlass和fmt包的,那么你可能会在编译到65%时遇到问题,这是由于手动安装的包版本和tiny-cuda-nn要求的不一致了,解决办法是按照tiny-cuda-nn的版本对cutlass和fmt包分别通过git checkout到规定的版本。
在这里插入图片描述
以fmt包为例,直接checkout会报错,需要先git stash,然后再git checkout
在这里插入图片描述

解决完上述问题后,再执行cmake编译,这一步编译时间可能会有点长(不会太长,耐心等待下)。
在这里插入图片描述

至此,就算基本完成nerfstudio的安装了,后面就按步骤走就行。(至少我没遇到问题了)
在nerfstudio的conda环境里install tiny-cuda-nn。

tiny-cuda-nn$ cd bindings/torch
tiny-cuda-nn/bindings/torch$ python setup.py install

直接pip install安装nerfstudio。

pip install nerfstudio

搞定!

这篇关于nerfstudio半离线配置踩坑记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满