Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Semanticfusion integration #43

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

Paul92
Copy link
Collaborator

@Paul92 Paul92 commented Mar 17, 2020

Minimal NYURGBD2 and semanticfusion integration.

Stuff to do before merge:

  • Deal with Depth data multipliers #42
  • Fix PAPI (currently removed from build)
  • Add the semantic metrics. Probably needs some thinking about how to handle them - I think simply adding them to the current metrics would create a too big output for benchmark_loader
  • Maybe modify elasticfusion to avoid compiling the shaders. As of now, requires OpenGL 3.3 (IIRC).
  • Revert 5bc275a

In the meantime, please test if this works.

@mihaibujanca
Copy link
Owner

mihaibujanca commented Mar 18, 2020

Steps to get it working on my machine:

  • Had to uninstall the default cmake that comes with Ubuntu (still 2.8 as of Ubuntu 18.04) and install cmake 3.16.5 (min required should be 3.12.2 as per CMake error with "CUDA_cublas_device_LIBRARY" clab/dynet#1457). This was done in order to fix missing macro CUDA_cublas_device_LIBRARY. Fix: change to cmake_minimum_required(VERSION 3.12.2) in CMakeLists.txt header
  • set(CUDA_ARCH_BIN "30 35 50 52 61" CACHE STRING "Specify 'real' GPU arch to build binaries for, BIN(PTX) format is supported. Example: 1.3 2.1(1.3) or 13 21(13)") should be removed, the CUDA_ARCH_BIN should be set from above in SLAMBench
  • In my case (Ubuntu 18.04, CUDA 10) compilers above gcc-7 were not accepted. Maybe return an useful error message if gcc version > 7. Used gcc-6 to compile.
  • Instead of using (or perhaps along with) ${SUITESPARSE_INCLUDE_DIRS}, ${SUITESPARSE_LIBRARIES}, to include CHOLMOD, use ${CHOLMOD_INCLUDE_DIR}, ${CHOLMOD_LIBRARY}
  • change pushd to cd. pushd seems to be causing failures in Makefile

@mihaibujanca
Copy link
Owner

mihaibujanca commented Mar 18, 2020

Currently running under benchmark_loader but not under pangolin_loader.

Stack trace for pangolin_loader:

#0  0x00007fffdfd95255 in std::_Bit_reference::operator=(bool) (__x=true, this=<optimised out>) at /usr/include/c++/6/bits/stl_bvector.h:87
#1  0x00007fffdfd95255 in std::vector<bool, std::allocator<bool> >::push_back(bool) (this=this@entry=0x5555618d9630, __x=true) at /usr/include/c++/6/bits/stl_bvector.h:924
#2  0x00007fffdfd98205 in caffe::Net<float>::AppendParam(caffe::NetParameter const&, int, int) (this=this@entry=0x5555618d9310, param=..., layer_id=layer_id@entry=54, param_id=param_id@entry=1)
    at benchmarks/semanticfusion/src/original/caffe_semanticfusion/src/caffe/net.cpp:499
#3  0x00007fffdfd9bba3 in caffe::Net<float>::Init(caffe::NetParameter const&) (this=this@entry=0x5555618d9310, in_param=...)
    at benchmarks/semanticfusion/src/original/caffe_semanticfusion/src/caffe/net.cpp:178
#4  0x00007fffdfd9dff4 in caffe::Net<float>::Net(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, caffe::Phase, caffe::Net<float> const*) (this=0x5555618d9310, param_file=..., phase=caffe::TEST, root_net=<optimised out>) at benchmarks/semanticfusion/src/original/caffe_semanticfusion/src/caffe/net.cpp:33
#5  0x00007fffe0b023e9 in CaffeInterface::Init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=this@entry=0x7fffe0dae1a0 <caffeInterface>, model_path="benchmarks/semanticfusion/src/original/caffe_semanticfusion/models/nyu_rgbd/inference.prototxt", weights="benchmarks/semanticfusion/src/original/caffe_semanticfusion/models/nyu_rgbd/inference.caffemodel") at semanticfusion/src/original/src/cnn_interface/CaffeInterface.cpp:29
#6  0x00007fffe0af8f00 in initAlgorithm() () at benchmarks/semanticfusion/src/original/semanticfusion-library.cpp:194
#7  0x00007fffe0afa1eb in sb_init_slam_system(SLAMBenchLibraryHelper*) (slam_settings=0x5555559d0170)
    at benchmarks/semanticfusion/src/original/semanticfusion-library.cpp:237
#8  0x000055555559ee7d in SLAMBenchConfiguration::InitAlgorithms() (this=<optimised out>) at framework/shared/src/SLAMBenchConfiguration.cpp:294
#9  0x0000555555597cec in main(int, char**) (argc=5, argv=0x7fffffffdc58) at framework/tools/loaders/pangolin_loader.cpp:83

When cleaning up under benchmark_loader, the exit is not clean:

Error: driver shutting down: /home/mihai/Projects/slambench3/benchmarks/semanticfusion/src/original/elasticfusionpublic/Core/src/Cuda/containers/../convenience.cuh:68
F0318 02:16:59.291188 10326 syncedmem.hpp:31] Check failed: error == cudaSuccess (29 vs. 0)  driver shutting down
*** Check failure stack trace: ***
Aborted (core dumped)

@mihaibujanca mihaibujanca self-requested a review March 18, 2020 20:52
@mihaibujanca
Copy link
Owner

Please merge master into your branch to add the changes from #44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants