1. 项目背景与问题定位
最近在复现3D Gaussian Splatting(3DGS)项目时,遇到了两个关键子模块的安装问题:diff_gaussian_rasterization和simple-knn。这两个模块是3DGS实现实时神经渲染的核心组件,前者负责可微分的3D高斯光栅化,后者则处理空间最近邻搜索。由于这两个模块都需要编译CUDA扩展,在Windows和Linux环境下都出现了各种"坑"。
我花了三天时间解决了不同系统环境下的安装问题,期间经历了CUDA版本冲突、torch版本不匹配、ninja编译失败等一系列典型问题。本文将详细记录这些问题的解决方案,并分享几个关键检查点,帮助后来者避开这些"深坑"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与前置检查
2.1 硬件与驱动要求
这两个模块都需要NVIDIA显卡和CUDA支持。经测试:
- 显卡算力需≥7.0(RTX 20系列及以上)
- 驱动版本≥515.0(可通过
nvidia-smi查看) - CUDA Toolkit 11.6/11.7/11.8(与PyTorch版本强相关)
注意:千万不要在WSL2环境下尝试安装!虽然理论上可行,但路径处理和权限问题会导致各种诡异错误。
2.2 Python环境配置
推荐使用conda创建独立环境:
bash复制conda create -n 3dgs python=3.9
conda activate 3dgs
关键依赖版本:
bash复制pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
3. diff_gaussian_rasterization安装问题详解
3.1 常见错误类型
这个模块的问题主要集中在三个方面:
- CUDA头文件缺失:报错
cuda_runtime_api.h: No such file - ninja编译失败:
ninja: build stopped: subcommand failed - ABI兼容性问题:`undefined symbol: _
