dmlc / 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, Dask, Flink and DataFlow
https://xgboost.readthedocs.io/en/stable/
Apache License 2.0
26.15k stars 8.71k forks source link

Question: Import xgboost as new port in vcpkg repo, build failed for arm64_osx, arm64_uwp, arm64_windows... #10343

Open DadanielZ opened 4 months ago

DadanielZ commented 4 months ago

Hi xgboost community,

Recently I'm working on a c++ project that depends on xgboost. Because our project relies on vcpkg for the library management, I'm trying to add xgboost to the vcpkg. Here is my PR for import xgboost(v1.7.6) to vcpkg: https://github.com/microsoft/vcpkg/pull/38743 The changes were tested on windows64 and local build and tests passed.

Issue some of GitHub Azure Pipeline build for the xgboost failed: arm64-osx, arm64_uwp, arm64_windows, arm_neon_android, x64_osx, x64_uwp, x86_windows. Others were successful: arm64_android, x64_android, x64_linux , x64_windows , x64_windows_static Full details of GitHub Azure Pipeline build failures: https://github.com/microsoft/vcpkg/pull/38743/checks?check_run_id=25252907894

Question

  1. I'm wondering if builds failed because xgboost doesn't support those platform/OS? In that case I will exclude those builds for xgboost.
  2. will xgboost support "arm64_windows"? Our project also builds for arm64_windows...
hcho3 commented 4 months ago

XGBoost doesn't support arm64_uwp, x64_uwp arm64_windows, arm_neon_android, and x86_windows. On the other hand, XGBoost currently supports Intel Mac and Apple Silicon Mac platforms through two distribution channels (Pip and Conda). The errors for arm64-osx and x64_osx appear to be specific to vcpkg builds and not due to the inherent limitation of XGBoost.

Also, why not use XGBoost 2.0.3 ? XGBoost 1.7.6 is almost one year old and is missing many new features.

hcho3 commented 4 months ago

Aside: the warning cl : Command line warning D9025 : overriding '/MTd' with '/MDd might be addressed by https://github.com/dmlc/xgboost/issues/10344

DadanielZ commented 4 months ago

Thank you @hcho3 for the reply. Is there a plan to add support for arm64_windows? If yes when will it be available? Unfortunately support for arm64_windows is a hard requirement of our project.

Also, why not use XGBoost 2.0.3 ?

I don't have full details why XGBoost 1.7.6 was picked at the beginning of the project, but will explore a newer version once it satisfies our need.

hcho3 commented 4 months ago

Is there a plan to add support for arm64_windows?

Unfortunately we don't have a timeline for supporting arm64 Windows yet.