NVlabs / nvdiffmodeling

Differentiable rasterization applied to 3D model simplification tasks
Other
455 stars 30 forks source link

install nvdiffrast got error #5

Closed lith0613 closed 3 years ago

lith0613 commented 3 years ago

My environment is ubuntu 18.04.1, cuda 10.0, gcc 7.4.0, and pytorch 1.6.0. I follow the instruction and install nvdiffrast in local Python site-packages by running pip install .at the root of the repository then I run the the script as follows: python samples/torch/triangle.py error accurs:

  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 974, in load
    keep_intermediates=keep_intermediates)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1179, in _jit_compile
    with_cuda=with_cuda)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1246, in _write_ninja_file_and_build_library
    verify_ninja_availability()
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1302, in verify_ninja_availability
    raise RuntimeError("Ninja is required to load C++ extensions")
RuntimeError: Ninja is required to load C++ extensions

then I install ninja as follows:

git clone https://github.com/ninja-build/ninja.git
./configure.py --bootstrap
cp ./ninja  /usr/bin

rerun the script:

python samples/torch/triangle.py

and got the error:

Traceback (most recent call last):
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1515, in _run_ninja_build
    env=env)
  File "/root/miniconda3/lib/python3.7/subprocess.py", line 512, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "samples/torch/triangle.py", line 21, in <module>
    glctx = dr.RasterizeGLContext()
  File "/root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/ops.py", line 151, in __init__
    self.cpp_wrapper = _get_plugin().RasterizeGLStateWrapper(output_db, mode == 'automatic', cuda_device_idx)
  File "/root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/ops.py", line 84, in _get_plugin
    torch.utils.cpp_extension.load(name=plugin_name, sources=source_paths, extra_cflags=opts, extra_cuda_cflags=opts, extra_ldflags=ldflags, with_cuda=True, verbose=False)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 974, in load
    keep_intermediates=keep_intermediates)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1179, in _jit_compile
    with_cuda=with_cuda)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1279, in _write_ninja_file_and_build_library
    error_prefix="Error building extension '{}'".format(name))
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1529, in _run_ninja_build
    raise RuntimeError(message)
RuntimeError: Error building extension 'nvdiffrast_plugin': [1/14] c++ -MMD -MF common.o.d -DTORCH_EXTENSION_NAME=nvdiffrast_plugin -DTORCH_API_INCLUDE_EXTENSION_H -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/TH -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/THC -isystem /usr/local/cuda/include -isystem /root/miniconda3/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -DNVDR_TORCH -c /root/miniconda3/lib/python3.7/site-packages/nvdiffrast/common/common.cpp -o common.o 
[2/14] c++ -MMD -MF torch_rasterize.o.d -DTORCH_EXTENSION_NAME=nvdiffrast_plugin -DTORCH_API_INCLUDE_EXTENSION_H -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/TH -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/THC -isystem /usr/local/cuda/include -isystem /root/miniconda3/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -DNVDR_TORCH -c /root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/torch_rasterize.cpp -o torch_rasterize.o 
FAILED: torch_rasterize.o 
[12/14] c++ -MMD -MF torch_antialias.o.d -DTORCH_EXTENSION_NAME=nvdiffrast_plugin -DTORCH_API_INCLUDE_EXTENSION_H -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/TH -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/THC -isystem /usr/local/cuda/include -isystem /root/miniconda3/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -DNVDR_TORCH -c /root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/torch_antialias.cpp -o torch_antialias.o 
[13/14] c++ -MMD -MF torch_bindings.o.d -DTORCH_EXTENSION_NAME=nvdiffrast_plugin -DTORCH_API_INCLUDE_EXTENSION_H -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/TH -isystem /root/miniconda3/lib/python3.7/site-packages/torch/include/THC -isystem /usr/local/cuda/include -isystem /root/miniconda3/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -fPIC -std=c++14 -DNVDR_TORCH -c /root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/torch_bindings.cpp -o torch_bindings.o 
ninja: build stopped: subcommand failed.

so I go to /root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py and modify

'ninja', '-v'

to

'ninja', '--v'

then rerun the script but got error as follows:

Traceback (most recent call last):
  File "samples/torch/triangle.py", line 21, in <module>
    glctx = dr.RasterizeGLContext()
  File "/root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/ops.py", line 151, in __init__
    self.cpp_wrapper = _get_plugin().RasterizeGLStateWrapper(output_db, mode == 'automatic', cuda_device_idx)
  File "/root/miniconda3/lib/python3.7/site-packages/nvdiffrast/torch/ops.py", line 84, in _get_plugin
    torch.utils.cpp_extension.load(name=plugin_name, sources=source_paths, extra_cflags=opts, extra_cuda_cflags=opts, extra_ldflags=ldflags, with_cuda=True, verbose=False)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 974, in load
    keep_intermediates=keep_intermediates)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1190, in _jit_compile
    return _import_module_from_library(name, build_directory, is_python_module)
  File "/root/miniconda3/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1534, in _import_module_from_library
    file, path, description = imp.find_module(module_name, [path])
  File "/root/miniconda3/lib/python3.7/imp.py", line 296, in find_module
    raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named 'nvdiffrast_plugin'

anyone can help me ? Thanks !!!

jmunkberg commented 3 years ago

This seems to be a problem in nvdiffrast: https://github.com/NVlabs/nvdiffrast , not nvdiffmodeling, so I suggest tracking the issue there instead.