nerfstudio-project / nerfstudio

A collaboration friendly studio for NeRFs
https://docs.nerf.studio
Apache License 2.0
9.34k stars 1.26k forks source link

failed import Nerfacc_cuda #1006

Closed ninglixu closed 1 year ago

ninglixu commented 1 year ago

Describe the bug Hi there: thanks for the amazing work. I successfully install the nerfstudio according to the guide and train the vanilla-nerf and nerfactco. But when i run the instant-ngp, there is an error import nerfacc_cuda module.

To Reproduce My computer: Windows 10, python 3.8.15, torch 1.12.0+cuda113, tinycudann 1.6

Expected behavior

Screenshots

Additional context ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── [18:28:59] Saving config to: outputs\data\blender\chair\instant-ngp\2022-11-22_182859\config.yml base_config.py:274 [18:28:59] Saving checkpoints to: trainer.py:90 outputs\data\blender\chair\instant-ngp\2022-11-22_182859\nerfstudio_models Using ZMQ port: 54705

======================================================================================================================== [Public] Open the viewer at https://viewer.nerf.studio/versions/22-11-10-0/?websocket_url=ws://localhost:7007

Sending ping to the viewer Bridge Server... Successfully connected. Sending ping to the viewer Bridge Server... Successfully connected. [WARNING] Not running eval iterations since only viewer is enabled. Use --vis wandb or --vis tensorboard to run with eval instead. disabled tensorboard/wandb event writers Setting up training dataset... Caching all 100 images. Loading data batch ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00 Setting up evaluation dataset... Caching all 100 images. Loading data batch ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00 None No checkpoints to load, training from scratch Printing profiling stats, from longest to shortest duration in seconds Traceback (most recent call last): File "scripts\train.py", line 257, in entrypoint() File "scripts\train.py", line 248, in entrypoint main( File "scripts\train.py", line 234, in main launch( File "scripts\train.py", line 173, in launch main_func(local_rank=0, world_size=world_size, config=config) File "scripts\train.py", line 88, in train_loop trainer.train() File "\naotvs1socc.coeit.osu.edu\GDA\xuningli\3DDataRegistration\Nerf\nerfstudio\nerfstudio\engine\trainer.py", line 146, in train callback.run_callback_at_location( File "\naotvs1socc.coeit.osu.edu\GDA\xuningli\3DDataRegistration\Nerf\nerfstudio\nerfstudio\engine\callbacks.py", line 106, in run_callback_at_location self.run_callback(step=step) File "\naotvs1socc.coeit.osu.edu\GDA\xuningli\3DDataRegistration\Nerf\nerfstudio\nerfstudio\engine\callbacks.py", line 93, in run_callback self.func(*self.args, self.kwargs, step=step) File "\naotvs1socc.coeit.osu.edu\GDA\xuningli\3DDataRegistration\Nerf\nerfstudio\nerfstudio\models\instant_ngp.py", line 144, in update_occupancy_grid self.occupancy_grid.every_n_step( File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context return func(*args, *kwargs) File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\grid.py", line 271, in every_n_step self._update( File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context return func(args, kwargs) File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\grid.py", line 224, in _update x = contract_inv( File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\autograd\grad_mode.py", line 27, in decorate_context return func(*args, **kwargs) File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\contraction.py", line 101, in contract_inv ctype = type.to_cpp_version() File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\contraction.py", line 62, in to_cpp_version return _C.ContractionTypeGetter(self.value) File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\cuda__init__.py", line 11, in call_cuda from ._backend import _C File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\nerfacc\cuda_backend.py", line 82, in _C = load( File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1202, in load return _jit_compile( File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1450, in _jit_compile return _import_module_from_library(name, build_directory, is_python_module) File "C:\Users\xu.3961\Anaconda3\envs\nerfstudio\lib\site-packages\torch\utils\cpp_extension.py", line 1844, in _import_module_from_library module = importlib.util.module_from_spec(spec) ImportError: DLL load failed while importing nerfacc_cuda: The specified module could not be found.

YOUSIKI commented 1 year ago

This seems to be a problem related to nerfacc or PyTorch cpp extension. May you share your nerfacc version and installation scripts? Currently, nerfstudio depends on nerfacc==0.2.1, while the latest version is 0.3.1. I didn't encounter any issue using nerfacc==0.3.1 on linux. I think you may give it a try. 😊

16Huzeyu commented 1 year ago

I meet the same question,if you fix it?

tancik commented 1 year ago

There are now additional ways that nerfacc can be installed. You can try installing the wheel to see if that solves your issue https://github.com/KAIR-BAIR/nerfacc#installation