Hanjun-Dai / graph_comb_opt

Implementation of "Learning Combinatorial Optimization Algorithms over Graphs"
https://arxiv.org/abs/1704.01665
MIT License
491 stars 135 forks source link

tbb error? #19

Closed NH333 closed 4 years ago

NH333 commented 4 years ago

/tmp/ccXHgDI5.o: In function LoadModel': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/src/mvc_lib.cpp:29: undefined reference tognn::ParamSet<gnn::CPU, float>::Load(std::cxx11::basic_string<char, std::char_traits, std::allocator >)' /tmp/ccXHgDI5.o: In function SaveModel': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/src/mvc_lib.cpp:36: undefined reference tognn::ParamSet<gnn::CPU, float>::Save(std::cxx11::basic_string<char, std::char_traits, std::allocator >)' build/lib/nn_api.o: In function Predict(std::vector<std::shared_ptr<Graph>, std::allocator<std::shared_ptr<Graph> > >&, std::vector<std::vector<int, std::allocator<int> >*, std::allocator<std::vector<int, std::allocator<int> >*> >&, std::vector<std::vector<double, std::allocator<double> >*, std::allocator<std::vector<double, std::allocator<double> >*> >&)': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/src/lib/nn_api.cpp:31: undefined reference tognn::FactorGraph::FeedForward(std::vector<std::shared_ptr, std::allocator<std::shared_ptr > >, std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, void, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, void> > >, gnn::Phase, unsigned int)' build/lib/nn_api.o: In function Fit(std::vector<std::shared_ptr<Graph>, std::allocator<std::shared_ptr<Graph> > >&, std::vector<std::vector<int, std::allocator<int> >*, std::allocator<std::vector<int, std::allocator<int> >*> >&, std::vector<int, std::allocator<int> >&, std::vector<double, std::allocator<double> >&)': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/src/lib/nn_api.cpp:80: undefined reference tognn::FactorGraph::FeedForward(std::vector<std::shared_ptr, std::allocator<std::shared_ptr > >, std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, void*, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, void*> > >, gnn::Phase, unsigned int)' build/lib/qnet.o: In function `void gnu_cxx::new_allocator::construct<gnn::GraphVar, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::GraphVar*, std::cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to `gnn::GraphVar::GraphVar(std::cxx11::basic_string<char, std::char_traits, std::allocator >)' build/lib/qnet.o: In function void __gnu_cxx::new_allocator<gnn::TensorVarTemplate<gnn::CPU, gnn::CSR_SPARSE, float> >::construct<gnn::TensorVarTemplate<gnn::CPU, gnn::CSR_SPARSE, float>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(gnn::TensorVarTemplate<gnn::CPU, gnn::CSR_SPARSE, float>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference tognn::TensorVarTemplate<gnn::CPU, gnn::CSR_SPARSE, float>::TensorVarTemplate(std::cxx11::basic_string<char, std::char_traits, std::allocator >)' build/lib/qnet.o: In function `void gnu_cxx::new_allocator<gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float> >::construct<gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>*, std::cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>::TensorVarTemplate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' build/lib/qnet.o: In functiongnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>::TensorVarTemplate(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<int, std::allocator >)': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/../../../graphnn/include/nn/variable.h:204: undefined reference to `gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>::TensorVarTemplate(std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<unsigned long, std::allocator >)' build/lib/qnet.o: In function void __gnu_cxx::new_allocator<gnn::MatMul<gnn::CPU, float> >::construct<gnn::MatMul<gnn::CPU, float>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(gnn::MatMul<gnn::CPU, float>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference tognn::MatMul<gnn::CPU, float>::MatMul(std::cxx11::basic_string<char, std::char_traits, std::allocator >, gnn::Trans, gnn::Trans, gnn::PropErr)' build/lib/qnet.o: In function `void gnu_cxx::new_allocator<gnn::ReLU<gnn::CPU, float> >::construct<gnn::ReLU<gnn::CPU, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::ReLU<gnn::CPU, float>*, std::cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to gnn::ReLU<gnn::CPU, float>::ReLU(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gnn::PropErr)' build/lib/qnet.o: In functionvoid gnu_cxx::new_allocator<gnn::ElewiseAdd<gnn::CPU, float> >::construct<gnn::ElewiseAdd<gnn::CPU, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::ElewiseAdd<gnn::CPU, float>, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to gnn::ElewiseAdd<gnn::CPU, float>::ElewiseAdd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<float, std::allocator<float> >, gnn::PropErr)' build/lib/qnet.o: In functionvoid gnu_cxx::new_allocator<gnn::ConcatCols<gnn::CPU, float> >::construct<gnn::ConcatCols<gnn::CPU, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::ConcatCols<gnn::CPU, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to gnn::ConcatCols<gnn::CPU, float>::ConcatCols(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gnn::PropErr)' build/lib/qnet.o: In functionvoid gnu_cxx::new_allocator<gnn::SquareError<gnn::CPU, float> >::construct<gnn::SquareError<gnn::CPU, float>, std::cxx11::basic_string<char, std::char_traits, std::allocator >&>(gnn::SquareError<gnn::CPU, float>*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference to `gnn::SquareError<gnn::CPU, float>::SquareError(std::cxx11::basic_string<char, std::char_traits, std::allocator >, gnn::PropErr)' build/lib/qnet.o: In function void __gnu_cxx::new_allocator<gnn::ReduceMean<gnn::CPU, float> >::construct<gnn::ReduceMean<gnn::CPU, float>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(gnn::ReduceMean<gnn::CPU, float>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)': /NIRAL/work/jprieto/install/include/c++/5.3.0/ext/new_allocator.h:120: undefined reference tognn::ReduceMean<gnn::CPU, float>::ReduceMean(std::cxx11::basic_string<char, std::char_traits, std::allocator >, int, bool, gnn::PropErr)' build/lib/qnet.o: In function `gnn::Node2NodeMsgPass<gnn::CPU, float>::Node2NodeMsgPass(std::cxx11::basic_string<char, std::char_traits, std::allocator >, bool)': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/../../../graphnn/include/nn/msg_pass.h:71: undefined reference to gnn::IMsgPass<gnn::CPU, float>::IMsgPass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)' build/lib/qnet.o: In functiongnn::SubgraphMsgPass<gnn::CPU, float>::SubgraphMsgPass(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, bool)': /home/anqichen/graph_comb_opt/code/s2v_mvc/mvc_lib/../../../graphnn/include/nn/msg_pass.h:180: undefined reference to gnn::IMsgPass<gnn::CPU, float>::IMsgPass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)' build/lib/qnet.o:(.data.rel.ro._ZTVN3gnn17TensorVarTemplateINS_3CPUENS_5DENSEEfEE[_ZTVN3gnn17TensorVarTemplateINS_3CPUENS_5DENSEEfEE]+0x58): undefined reference tonon-virtual thunk to gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>::ZeroGrad()' build/lib/qnet.o:(.data.rel.ro._ZTVN3gnn17TensorVarTemplateINS_3CPUENS_5DENSEEfEE[_ZTVN3gnn17TensorVarTemplateINS_3CPUENS_5DENSEEfEE]+0x60): undefined reference to non-virtual thunk to gnn::TensorVarTemplate<gnn::CPU, gnn::DENSE, float>::OnesGrad()' ../../../graphnn/build_cpuonly/lib/libgnn.a(cpu_dense_tensor.o): In functiontbb::interface7::task_arena::initialize()': /home/anqichen/intel/tbb/include/tbb/task_arena.h:250: undefined reference to tbb::interface7::internal::task_arena_base::internal_initialize()' ../../../graphnn/build_cpuonly/lib/libgnn.a(cpu_dense_tensor.o): In functiontbb::interface7::task_arena::terminate()': /home/anqichen/intel/tbb/include/tbb/task_arena.h:281: undefined reference to tbb::interface7::internal::task_arena_base::internal_terminate()' ../../../graphnn/build_cpuonly/lib/libgnn.a(cpu_dense_tensor.o): In functiontbb::interface7::task_arena::current_thread_index()': /home/anqichen/intel/tbb/include/tbb/task_arena.h:369: undefined reference to tbb::interface7::internal::task_arena_base::internal_current_slot()' ../../../graphnn/build_cpuonly/lib/libgnn.a(cpu_dense_tensor.o): In functionvoid tbb::interface7::task_arena::execute_impl<void, tbb::flow::interface10::graph::wait_functor const>(tbb::flow::interface10::graph::wait_functor const&)': /home/anqichen/intel/tbb/include/tbb/task_arena.h:213: undefined reference to `tbb::interface7::internal::task_arena_base::internal_execute(tbb::interface7::internal::delegate_base&) const' collect2: error: ld returned 1 exit status

Hanjun-Dai commented 4 years ago

Is tbb lib path in your LDFLAGS and LD_LIBRARY_PATH?

NH333 commented 4 years ago

INTEL_ROOT := /home/anqichen/intel MKL_ROOT = $(INTEL_ROOT)/mkl TBB_ROOT = $(INTEL_ROOT)/tbb export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/ia32/gcc4.7/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/ia32/gcc4.4/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/ia32/gcc4.1/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/intel64/gcc4.7/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/intel64/gcc4.4/:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/anqichen/intel/tbb/lib/intel64/gcc4.1/:$LD_LIBRARY_PATH

Hanjun-Dai commented 4 years ago

and your LDFLAGS?

NH333 commented 4 years ago

How to set my LDFLAGS? Can u give me a example? FIND := find CXX := g++ CXXFLAGS += -Wall -g -O0 -std=c++11 LDFLAGS += -lm -lmkl_rt -ltbb

NH333 commented 4 years ago

LDFLAGS += -lm -L/home/anqichen/intel/mkl/lib/intel64 -lmkl_rt -L/home/anqichen/intel/tbb/lib/intel64/gcc4.7 -ltbb

does not work

NH333 commented 4 years ago

i deleted all files and remake it . it works! Thank s!

Hanjun-Dai commented 4 years ago

that's great. let me know if you have more questions.

NH333 commented 4 years ago

When do the Test, how to chose the S0 (first state)? If you make the wrong choice in the first step, you're going to end up with a bad result. I can't understand how the selection of the first state in the program.