jytime / Deep-SfM-Revisited

[CVPR 2021] Deep Two-View Structure-from-Motion Revisited
MIT License
182 stars 13 forks source link

RANSAC CUDA code error: invalid device symbol #4

Open BQLiu2021 opened 3 years ago

BQLiu2021 commented 3 years ago

The RANSAC CUDA code cannot launch on my GPU(TITAN Xp).

~/Deep-SfM-Revisited-main/RANSAC_FiveP$ python test.py Ground-truth E matrix tensor([[-0.1391, -0.0442, 0.5476], [ 0.1396, -0.0444, -0.1480], [-0.4839, 0.2972, -0.1344]]) Start essential matrix initialisation CUDA Error (/data3/liubq/Deep-SfM-Revisited-main/RANSAC_FiveP/essential_matrix/essential_matrix.cu:145): invalid device symbol Segmentation fault (core dumped)

Setting SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; --std=c++11; -gencode=arch=compute_61,code=sm_61) in CMakelists.txt and ext_modules=[ CUDAExtension('essential_matrix', sources, extra_compile_args={ 'cxx':['-O2'], 'nvcc':'-gencode', 'arch=compute_61,code=sm_61'} ), # extra_compile_args, extra_link_args ], in setup.py does not help. How to deal with this problem in different devices? Thanks!

BQLiu2021 commented 3 years ago

By the way, my CUDA version is also 10.1

jytime commented 3 years ago

Hi, could you share the log file when you compile the package?

BQLiu2021 commented 3 years ago

running install running bdist_egg running egg_info writing essential_matrix.egg-info/PKG-INFO writing dependency_links to essential_matrix.egg-info/dependency_links.txt writing top-level names to essential_matrix.egg-info/top_level.txt reading manifest file 'essential_matrix.egg-info/SOURCES.txt' writing manifest file 'essential_matrix.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_ext building 'essential_matrix' extension Emitting ninja build file /data3/liubq/Deep-SfM-Revisited-main/RANSAC_FiveP/build/temp.linux-x86_64-3.6/build.ninja... Compiling objects... Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N) ninja: no work to do. g++ -pthread -shared -B /data3/liubq/anaconda3/envs/dsfmr/compiler_compat -L/data3/liubq/anaconda3/envs/dsfmr/lib -Wl,-rpath=/data3/liubq/anaconda3/envs/dsfmr/lib -Wl,--no-as-needed -Wl,--sysroot=/ /data3/liubq/Deep-SfM-Revisited-main/RANSAC_FiveP/build/temp.linux-x86_64-3.6/essential_matrix/essential_matrix.o /data3/liubq/Deep-SfM-Revisited-main/RANSAC_FiveP/build/temp.linux-x86_64-3.6/essential_matrix/essential_matrix_wrapper.o -L/data3/liubq/anaconda3/envs/dsfmr/lib/python3.6/site-packages/torch/lib -L/usr/local/cuda/lib64 -lc10 -ltorch -ltorch_cpu -ltorch_python -lcudart -lc10_cuda -ltorch_cuda -o build/lib.linux-x86_64-3.6/essential_matrix.cpython-36m-x86_64-linux-gnu.so creating build/bdist.linux-x86_64/egg copying build/lib.linux-x86_64-3.6/essential_matrix.cpython-36m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/egg creating stub loader for essential_matrix.cpython-36m-x86_64-linux-gnu.so byte-compiling build/bdist.linux-x86_64/egg/essential_matrix.py to essential_matrix.cpython-36.pyc creating build/bdist.linux-x86_64/egg/EGG-INFO copying essential_matrix.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO copying essential_matrix.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying essential_matrix.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying essential_matrix.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt zip_safe flag not set; analyzing archive contents... pycache.essential_matrix.cpython-36: module references file creating 'dist/essential_matrix-0.0.0-py3.6-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it removing 'build/bdist.linux-x86_64/egg' (and everything under it) Processing essential_matrix-0.0.0-py3.6-linux-x86_64.egg removing '/data3/liubq/.local/lib/python3.6/site-packages/essential_matrix-0.0.0-py3.6-linux-x86_64.egg' (and everything under it) creating /data3/liubq/.local/lib/python3.6/site-packages/essential_matrix-0.0.0-py3.6-linux-x86_64.egg Extracting essential_matrix-0.0.0-py3.6-linux-x86_64.egg to /data3/liubq/.local/lib/python3.6/site-packages essential-matrix 0.0.0 is already the active version in easy-install.pth Installed /data3/liubq/.local/lib/python3.6/site-packages/essential_matrix-0.0.0-py3.6-linux-x86_64.egg Processing dependencies for essential-matrix==0.0.0 Finished processing dependencies for essential-matrix==0.0.0

jytime commented 3 years ago

Considering the case here, could you just modify CMakelists.txt while not change setup.py?

BQLiu2021 commented 3 years ago

Still doesn't work...... orz