Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Make amalgamation part be suitable for iOS #11184

Closed
wants to merge 4 commits into from

Conversation

Aozorany
Copy link

@Aozorany Aozorany commented Jun 7, 2018

Description

Fixed some errors when make amalgamation for iOS use, now this part is OK to use.

Checklist

Essentials

Please feel free to remove inapplicable items for your PR.

  • Changes are complete (i.e. I finished coding on this PR)
  • To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

  • amalgamation/README.md, instructions in iOS part updated;
  • amalgamation/dmlc-minimum0.cc
  • amalgamation/mxnet_predict0.cc: added some missing headers, which cause errors in iOS compile

@eric-haibin-lin
Copy link
Member

@KellenSunderland anyone you know is familiar with amalgamation and could help review?

@lupesko
Copy link
Contributor

lupesko commented Aug 21, 2018

@Aozorany thanks for your contribution!
Can you please:

  • Update the PR description to remove unnecessary parts of the checklist boiler plate? (it is intended to be removed when not necessary)
  • Add more details on the errors you were seeing and the setup you used when getting errors
  • Add details on how you tested it.

@lupesko
Copy link
Contributor

lupesko commented Sep 5, 2018

@Aozorany bounce...

@KellenSunderland
Copy link
Contributor

Looping around on this for @eric-haibin-lin. Sorry not aware of anyone with more than a passing knowledge of amalgamation.

@Aozorany
Copy link
Author

Aozorany commented Sep 5, 2018

sorry for the delay, really got lots of things to do, i'll finish the end of the week.

@Aozorany
Copy link
Author

Aozorany commented Sep 9, 2018

seems something was changed in master branch since my PR, so i'll working on it to fix.

i cloned master branch and want to compile the predict part on iOS, i followed the instructions of the document installed openblas and all 3rd party libs, type make in amalgamation directory, and got the following errors:

ar rcs libmxnet_predict.a mxnet_predict-all.o
c++ -std=c++11 -Wno-unknown-pragmas -Wall -DMSHADOW_USE_CBLAS=1 -DDISABLE_OPENMP=1 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_MKL=0 -DMSHADOW_RABIT_PS=0 -DMSHADOW_DIST_PS=0 -DDMLC_LOG_STACK_TRACE=0 -DMSHADOW_FORCE_STREAM -DMXNET_USE_OPENCV=0 -DMXNET_PREDICT_ONLY=1 -DMSHADOW_USE_F16C=0 -I/usr/local/opt/openblas -I/usr/local/opt/openblas/include -shared -o `pwd`/../lib/libmxnet_predict.so mxnet_predict-all.o -L/usr/local/opt/openblas -L/usr/local/opt/openblas/lib -lopenblas
Undefined symbols for architecture x86_64:
  "dmlc::io::FileSystem::ListDirectoryRecursive(dmlc::io::URI const&, std::__1::vector<dmlc::io::FileInfo, std::__1::allocator<dmlc::io::FileInfo> >*)", referenced from:
      vtable for dmlc::io::LocalFileSystem in mxnet_predict-all.o
  "mxnet::imperative::RunGraph(bool, nnvm::IndexedGraph const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> >, unsigned long, unsigned long, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> >&&, std::__1::vector<unsigned int, std::__1::allocator<unsigned int> >&&, std::__1::vector<mxnet::OpStatePtr, std::__1::allocator<mxnet::OpStatePtr> >*, std::__1::vector<mxnet::DispatchMode, std::__1::allocator<mxnet::DispatchMode> > const&, bool)", referenced from:
      mxnet::Imperative::Backward(std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&, bool, bool, bool) in mxnet_predict-all.o
      mxnet::CachedOp::DynamicForward(mxnet::Context const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&) in mxnet_predict-all.o
      mxnet::CachedOp::DynamicBackward(bool, mxnet::OpStatePtr const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::vector<mxnet::NDArray*, std::__1::allocator<mxnet::NDArray*> > const&) in mxnet_predict-all.o
  "mxnet::on_exit_api()", referenced from:
      _MXPredCreatePartialOut in mxnet_predict-all.o
      _MXPredReshape in mxnet_predict-all.o
      _MXPredGetOutputShape in mxnet_predict-all.o
      _MXPredSetInput in mxnet_predict-all.o
      _MXPredForward in mxnet_predict-all.o
      _MXPredPartialForward in mxnet_predict-all.o
      _MXPredGetOutput in mxnet_predict-all.o
      ...
  "mxnet::on_enter_api(char const*)", referenced from:
      _MXPredCreatePartialOut in mxnet_predict-all.o
      _MXPredReshape in mxnet_predict-all.o
      _MXPredGetOutputShape in mxnet_predict-all.o
      _MXPredSetInput in mxnet_predict-all.o
      _MXPredForward in mxnet_predict-all.o
      _MXPredPartialForward in mxnet_predict-all.o
      _MXPredGetOutput in mxnet_predict-all.o
      ...
  "mxnet::CutGraphInputs(std::__1::vector<nnvm::NodeEntry*, std::__1::allocator<nnvm::NodeEntry*> > const&, bool, std::__1::vector<nnvm::NodeEntry, std::__1::allocator<nnvm::NodeEntry> >*)", referenced from:
      _MXSymbolCutSubgraph in mxnet_predict-all.o
  "mxnet::GetInputSymbols(nnvm::Symbol const&)", referenced from:
      _MXSymbolGetInputSymbols in mxnet_predict-all.o
  "mxnet::exec::InferShape(nnvm::Graph&&, std::__1::vector<nnvm::TShape, std::__1::allocator<nnvm::TShape> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      mxnet::imperative::CheckAndInferShape(nnvm::Graph*, std::__1::vector<nnvm::TShape, std::__1::allocator<nnvm::TShape> >&&, bool, std::__1::pair<unsigned int, unsigned int>, std::__1::pair<unsigned int, unsigned int>) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, nnvm::TShape, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, nnvm::TShape> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::unordered_set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::NDArray, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::NDArray> > >*, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Reshape(bool, bool, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, nnvm::TShape, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, nnvm::TShape> > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*) in mxnet_predict-all.o
      _MXPredCreatePartialOut in mxnet_predict-all.o
      _MXPredReshape in mxnet_predict-all.o
      _MXSymbolInferShape in mxnet_predict-all.o
      ...
  "mxnet::exec::InferStorageType(nnvm::Graph&&, std::__1::vector<int, std::__1::allocator<int> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      mxnet::imperative::CheckAndInferStorageType(nnvm::Graph*, std::__1::vector<int, std::__1::allocator<int> >&&, std::__1::vector<int, std::__1::allocator<int> >&&, bool, std::__1::pair<unsigned int, unsigned int>, std::__1::pair<unsigned int, unsigned int>) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, nnvm::TShape, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, nnvm::TShape> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::unordered_set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::NDArray, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::NDArray> > >*, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      mxnet::exec::InferForwardAttrs(nnvm::Graph, std::__1::vector<nnvm::TShape, std::__1::allocator<nnvm::TShape> >, std::__1::vector<int, std::__1::allocator<int> >, std::__1::vector<int, std::__1::allocator<int> >, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&) in mxnet_predict-all.o
  "mxnet::exec::InferType(nnvm::Graph&&, std::__1::vector<int, std::__1::allocator<int> >&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      mxnet::imperative::CheckAndInferType(nnvm::Graph*, std::__1::vector<int, std::__1::allocator<int> >&&, bool, std::__1::pair<unsigned int, unsigned int>, std::__1::pair<unsigned int, unsigned int>) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, nnvm::TShape, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, nnvm::TShape> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, int> > > const&, std::__1::vector<mxnet::OpReqType, std::__1::allocator<mxnet::OpReqType> > const&, std::__1::unordered_set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> >*, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::NDArray, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::NDArray> > >*, mxnet::Executor*, std::__1::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::__1::allocator<std::__1::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) in mxnet_predict-all.o
      _MXSymbolInferType in mxnet_predict-all.o
      mxnet::exec::InferForwardAttrs(nnvm::Graph, std::__1::vector<nnvm::TShape, std::__1::allocator<nnvm::TShape> >, std::__1::vector<int, std::__1::allocator<int> >, std::__1::vector<int, std::__1::allocator<int> >, mxnet::Context const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, mxnet::Context, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, mxnet::Context> > > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&, std::__1::vector<mxnet::Context, std::__1::allocator<mxnet::Context> > const&) in mxnet_predict-all.o
  "void mxnet::common::CheckFormatWrapper<mshadow::cpu>(mxnet::RunContext const&, mxnet::NDArray const&, mxnet::TBlob const&, bool)", referenced from:
      mxnet::NDArray::SyncCheckFormat(bool) const::$_22::operator()(mxnet::RunContext) const in mxnet_predict-all.o
  "void mxnet::common::CastStorageDispatch<mshadow::cpu>(mxnet::OpContext const&, mxnet::NDArray const&, mxnet::NDArray const&)", referenced from:
      mxnet::common::CastNonDefaultStorage(std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, std::__1::vector<mxnet::NDArray, std::__1::allocator<mxnet::NDArray> > const&, mxnet::OpContext const&, bool) in mxnet_predict-all.o
      void mxnet::CopyFromToImpl<mshadow::cpu, mshadow::cpu>(mxnet::NDArray const&, mxnet::NDArray const&, mxnet::RunContext, std::__1::vector<mxnet::Resource, std::__1::allocator<mxnet::Resource> > const&) in mxnet_predict-all.o
  "mxnet::engine::OpenMP::Get()", referenced from:
      mxnet::LibraryInitializer::LibraryInitializer()::'lambda1'()::operator()() const in mxnet_predict-all.o
  "mxnet::profiler::AggregateStats::OnProfileStat(mxnet::profiler::ProfileStat const&)", referenced from:
      mxnet::profiler::Profiler::DumpProfile(bool) in mxnet_predict-all.o
  "typeinfo for dmlc::io::FileSystem", referenced from:
      typeinfo for dmlc::io::LocalFileSystem in mxnet_predict-all.o
  "vtable for dmlc::io::FileSystem", referenced from:
      dmlc::io::FileSystem::FileSystem() in mxnet_predict-all.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [`pwd`/../lib/libmxnet_predict.so] Error 1

looks like it missed some symbols in file mxnet_predict-all.cc, and by reading Makefile i found this file was extracted from dmlc-minimum0.cc and mxnet_predict0.cc.

@Aozorany
Copy link
Author

Aozorany commented Sep 9, 2018

i think i'll get more time to look into it, things have changed since my last investigation, my method runs all right in version 1.2.1, but not working in the current head version.

@stu1130
Copy link
Contributor

stu1130 commented Sep 21, 2018

@mxnet-label-bot[pr-work-in-progress]

@marcoabreu marcoabreu added the pr-work-in-progress PR is still work in progress label Sep 21, 2018
@vandanavk
Copy link
Contributor

Continuing with pr-work-in-progress label unless there is an update

@Roshrini
Copy link
Member

Hi @Aozorany, Thanks for working on fixing this. Any update on this PR?

@roywei
Copy link
Member

roywei commented Oct 29, 2018

ping @Aozorany could you fix the CI lint error in src/c_api/c_predict_api_1.cc ? Thanks

@kalyc
Copy link
Contributor

kalyc commented Nov 12, 2018

@Aozorany ping! could you please address the issues above so we can review the PR on our end and merge it? :)

@Aozorany
Copy link
Author

@kalyc this PR is working fine for version 1.2.0 and 1.2.1, but getting compile errors on current master branch, i am now working on it to fix the issues.

@stu1130
Copy link
Contributor

stu1130 commented Nov 26, 2018

@Aozorany let us know if you need any help on compile errors!

@Aozorany
Copy link
Author

Aozorany commented Dec 2, 2018

@stu1130 could this amalgamation part compile successfully on android?

@stu1130
Copy link
Contributor

stu1130 commented Dec 4, 2018

@Aozorany we were refactoring our CI system for the past two weeks and it's done! Could you rebase it?

@roywei
Copy link
Member

roywei commented Dec 14, 2018

@mxnet-label-bot add[pr-awaiting-response]

@marcoabreu marcoabreu added the pr-awaiting-response PR is reviewed and waiting for contributor to respond label Dec 14, 2018
@sandeep-krishnamurthy
Copy link
Contributor

@Aozorany - Requesting you to look at failed CI builds.

@Roshrini
Copy link
Member

Roshrini commented Jan 8, 2019

@Aozorany Did you get a chance to look into failing CI builds?
@mxnet-label-bot Add [pr-awaiting-response]

@stu1130
Copy link
Contributor

stu1130 commented Jan 16, 2019

@Aozorany bounce again for the update! Thanks
@mxnet-label-bot update [pr-awaiting-response]

@marcoabreu marcoabreu removed the pr-work-in-progress PR is still work in progress label Jan 16, 2019
@sandeep-krishnamurthy sandeep-krishnamurthy added the pr-work-in-progress PR is still work in progress label Jan 25, 2019
@sandeep-krishnamurthy
Copy link
Contributor

@Aozorany - How can we help here? What are the issues currently you are facing master?

@pinaraws
Copy link

@mxnet-label-bot remove[pr-work-in-progress]

@marcoabreu marcoabreu removed the pr-work-in-progress PR is still work in progress label Mar 19, 2019
@pinaraws
Copy link

@nswamy @sandeep-krishnamurthy @anirudh2290 - Please consider closing this PR since there is no follow up from the author since December.

@abhinavs95
Copy link
Contributor

@Aozorany Could you please provide an update on the PR?

@piyushghai
Copy link
Contributor

@Aozorany This PR seems to be inactive for a long time. If there's any help you need to take this PR forward please feel free to reach out on this PR.
I'd suggest closing this PR in the meanwhile.

@Aozorany Aozorany closed this Apr 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
pr-awaiting-response PR is reviewed and waiting for contributor to respond
Projects
None yet
Development

Successfully merging this pull request may close these issues.