配置:使用远程服务器,cuda11.6 ubuntu20.04(不是相同的配置可能会出现报错)
复现过程:出错版(最后有总结版)
1.下载文件
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
2.确保系统为11版本的cuda(我使用11.6),并将下面内容加入.bashrc(在根目录)文件中。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
export PATH=$PATH:/usr/local/cuda-11.6/bin:/usr/bin
export CUDA_HOME=/usr/local/cuda-11.6注意事项:修改后需要运行'. ~/.bashrc'激活,并重新激活conda环境
可以用nvcc -V指令查看版本
3.在下载的文件目录下运行
conda env create --file environment.yml
4.
sudo apt-get install g++
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
5.训练:下载数据集:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
python train.py -s data/tandt/truck
6 . 报错:
(gaussian_splatting) xxx@ubun:~/code/3DGS/gaussian_splatting/gaussian-splatting$ python train.py -s data/tandt/truck
Optimizing
Output folder: ./output/9938b9c6-c [19/09 21:55:07]
Tensorboard not available: not logging progress [19/09 21:55:07]
Reading camera 251/251 [19/09 21:55:08]
Loading Training Cameras [19/09 21:55:08]
Traceback (most recent call last):
File "train.py", line 219, in <module>
training(lp.extract(args), op.extract(args), pp.extract(args), args.test_iterations, args.save_iterations, args.checkpoint_iterations, args.start_checkpoint, args.debug_from)
File "train.py", line 35, in training
scene = Scene(dataset, gaussians)
File "/home/wangbeibei/code/DeepLearing_test/3DGS/gaussian_splatting/gaussian-splatting/scene/__init__.py", line 73, in __init__
self.train_cameras[resolution_scale] = cameraList_from_camInfos(scene_info.train_cameras, resolution_scale, args)
File "/home/wangbeibei/code/DeepLearing_test/3DGS/gaussian_splatting/gaussian-splatting/utils/camera_utils.py", line 58, in cameraList_from_camInfos
camera_list.append(loadCam(args, id, c, resolution_scale))
File "/home/wangbeibei/code/DeepLearing_test/3DGS/gaussian_splatting/gaussian-splatting/utils/camera_utils.py", line 52, in loadCam
image_name=cam_info.image_name, uid=id, data_device=args.data_device)
File "/home/wangbeibei/code/DeepLearing_test/3DGS/gaussian_splatting/gaussian-splatting/scene/cameras.py", line 56, in __init__
self.full_proj_transform = (self.world_view_transform.unsqueeze(0).bmm(self.projection_matrix.unsqueeze(0))).squeeze(0)
RuntimeError: CUDA error: CUBLAS_STATUS_NOT_SUPPORTED when calling `cublasSgemmStridedBatched( handle, opa, opb, m, n, k, &alpha, a, lda, stridea, b, ldb, strideb, &beta, c, ldc, stridec, num_batches)`
7. 解决方案:参考链接
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
总结:完整版无报错复现过程:
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
//需要检查submodules下面两个文件夹是否为空(确保非空)
在/home/“你的名字”/.bashrc文件中添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
export PATH=$PATH:/usr/local/cuda-11.6/bin:/usr/bin
export CUDA_HOME=/usr/local/cuda-11.6
# 注意事项:修改后需要运行'. ~/.bashrc'激活,并重新激活conda环境
conda env create --file environment.yml
conda activate gaussian_splatting
//添加内容解决cuda与torch版本问题:
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
sudo apt-get install g++
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
下载数据集:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
python train.py -s data/tandt/truck