h2oai / xgboost

Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Flink and DataFlow
Other
44 stars 26 forks source link

undefined reference to `xgboost::tree::__dmlc_registry_file_tag_updater_gpu_hist2__()' #48

Closed nasica88 closed 6 years ago

nasica88 commented 6 years ago

Hello, I am trying to build xgboost from source with GPU support, but it fails with this error of "undefined reference to `xgboost::tree::dmlc_registry_file_tag_updater_gpu_hist2()'"

Can somebody pls help ?

Environment info

Operating System: Redhat 7.5 (Maipo) ppc64le (POWER9) Compiler: gcc 7.2 Package used (python/R/jvm/C++): Python 3.6.5, R 3.4.1, OpenJDK 1.8.0_171-b10,

xgboost version used: v0.60 (v0.60-552-g35c6b5a )

If installing from source, please provide

  1. The commit hash (git rev-parse HEAD) : 6489d8d03e54d5d8a2f6417f23b6bc3039fb763e
  2. Logs will be helpful (If logs are large, please upload as attachment).

If you are using python package, please provide

  1. The python version and distribution : Anaconda3-5.2.0-Linux-ppc64le (Python 3.6.5)
  2. The command to install xgboost if you are not installing from source : building from source

If you are using R package, please provide

  1. The R sessionInfo() R version 3.4.1 (2017-06-30), Platform: powerpc64le-unknown-linux-gnu (64-bit), Running under: OpenStack
  2. The command to install xgboost if you are not installing from source : building from source

Steps to reproduce

  1. $ git clone -b h2oai https://github.com/h2oai/xgboost.git
  2. $ cd xgboost/
  3. $ git submodule init
  4. $ git submodule update --recursive
  5. $ mkdir build && cd build
  6. $ cmake .. -DUSE_CUDA=ON -DUSE_NCCL=ON
  7. $ make -j 16 ... [ 95%] Built target gpuxgboost Scanning dependencies of target runxgboost [ 97%] Building CXX object CMakeFiles/runxgboost.dir/src/cli_main.cc.o [ 98%] Linking CXX executable ../xgboost CMakeFiles/objxgboost.dir/src/tree/tree_updater.cc.o: In function `_GLOBAL__sub_I_tree_updater.cc': tree_updater.cc:(.text.startup+0xd8): undefined reference to `xgboost::tree::dmlc_registry_file_tag_updater_gpu_hist2()' collect2: error: ld returned 1 exit status make[2]: [../xgboost] Error 1 make[1]: [CMakeFiles/runxgboost.dir/all] Error 2 make: *** [all] Error 2 ...
pseudotensor commented 6 years ago

That repo is not designed for end users. It's used inside h2o4gpu. You can see how it's compiled there, but we use the Makefile2 not Makefile or Cmake.

make -f Makefile2