Skip to content

Commit a79f088

Browse files
authored
Merge branch 'dmlc:release_3.0.0' into release_3.0.0
2 parents 817e13d + 421e9e2 commit a79f088

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+939
-446
lines changed

.github/workflows/main.yml

Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -36,28 +36,6 @@ jobs:
3636
--prefix cache/${{ github.run_id }}/build-cpu \
3737
./xgboost
3838
39-
build-cpu-arm64:
40-
name: Build CPU ARM64 + manylinux_2_28_aarch64 wheel
41-
runs-on:
42-
- runs-on=${{ github.run_id }}
43-
- runner=linux-arm64-cpu
44-
- tag=build-cpu-arm64
45-
steps:
46-
# Restart Docker daemon so that it recognizes the ephemeral disks
47-
- run: sudo systemctl restart docker
48-
- uses: actions/checkout@v4
49-
with:
50-
submodules: "true"
51-
- name: Log into Docker registry (AWS ECR)
52-
run: bash ops/pipeline/login-docker-registry.sh
53-
- run: bash ops/pipeline/build-cpu-arm64.sh
54-
- name: Stash files
55-
run: |
56-
python3 ops/pipeline/manage-artifacts.py upload \
57-
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
58-
--prefix cache/${{ github.run_id }}/build-cpu-arm64 \
59-
./xgboost python-package/dist/*.whl
60-
6139
build-cuda:
6240
name: Build CUDA + manylinux_2_28_x86_64 wheel
6341
runs-on:
@@ -122,13 +100,35 @@ jobs:
122100
bash ops/pipeline/build-cuda.sh \
123101
xgb-ci.gpu_build_rockylinux8_dev_ver enable-rmm
124102
125-
build-manylinux2014:
103+
build-python-wheels-arm64:
104+
name: Build manylinux_2_28_aarch64 wheel
105+
runs-on:
106+
- runs-on=${{ github.run_id }}
107+
- runner=linux-arm64-cpu
108+
- tag=build-python-wheels-arm64
109+
steps:
110+
# Restart Docker daemon so that it recognizes the ephemeral disks
111+
- run: sudo systemctl restart docker
112+
- uses: actions/checkout@v4
113+
with:
114+
submodules: "true"
115+
- name: Log into Docker registry (AWS ECR)
116+
run: bash ops/pipeline/login-docker-registry.sh
117+
- run: bash ops/pipeline/build-python-wheels-arm64.sh
118+
- name: Stash files
119+
run: |
120+
python3 ops/pipeline/manage-artifacts.py upload \
121+
--s3-bucket ${{ env.RUNS_ON_S3_BUCKET_CACHE }} \
122+
--prefix cache/${{ github.run_id }}/build-python-wheels-arm64 \
123+
./xgboost python-package/dist/*.whl
124+
125+
build-python-wheels-manylinux2014:
126126
name: Build manylinux2014_${{ matrix.arch }} wheel
127127
runs-on:
128128
- runs-on
129129
- runner=${{ matrix.runner }}
130130
- run-id=${{ github.run_id }}
131-
- tag=main-build-manylinux2014-${{ matrix.arch }}
131+
- tag=main-build-python-wheels-manylinux2014-${{ matrix.arch }}
132132
strategy:
133133
fail-fast: false
134134
matrix:
@@ -145,7 +145,42 @@ jobs:
145145
submodules: "true"
146146
- name: Log into Docker registry (AWS ECR)
147147
run: bash ops/pipeline/login-docker-registry.sh
148-
- run: bash ops/pipeline/build-manylinux2014.sh ${{ matrix.arch }}
148+
- run: bash ops/pipeline/build-python-wheels-manylinux2014.sh ${{ matrix.arch }}
149+
150+
build-python-wheels-cpu:
151+
name: Build CPU wheel for ${{ matrix.manylinux_target }}_${{ matrix.arch }}
152+
runs-on:
153+
- runs-on
154+
- runner=${{ matrix.runner }}
155+
- run-id=${{ github.run_id }}
156+
- tag=main-build-python-wheels-cpu-${{ matrix.manylinux_target }}-${{ matrix.arch }}
157+
strategy:
158+
fail-fast: false
159+
matrix:
160+
include:
161+
- manylinux_target: manylinux2014
162+
arch: aarch64
163+
runner: linux-arm64-cpu
164+
- manylinux_target: manylinux2014
165+
arch: x86_64
166+
runner: linux-amd64-cpu
167+
- manylinux_target: manylinux_2_28
168+
arch: aarch64
169+
runner: linux-arm64-cpu
170+
- manylinux_target: manylinux_2_28
171+
arch: x86_64
172+
runner: linux-amd64-cpu
173+
steps:
174+
# Restart Docker daemon so that it recognizes the ephemeral disks
175+
- run: sudo systemctl restart docker
176+
- uses: actions/checkout@v4
177+
with:
178+
submodules: "true"
179+
- name: Log into Docker registry (AWS ECR)
180+
run: bash ops/pipeline/login-docker-registry.sh
181+
- run: |
182+
bash ops/pipeline/build-python-wheels-cpu.sh \
183+
${{ matrix.manylinux_target }} ${{ matrix.arch }}
149184
150185
build-gpu-rpkg:
151186
name: Build GPU-enabled R package
@@ -163,7 +198,6 @@ jobs:
163198
run: bash ops/pipeline/login-docker-registry.sh
164199
- run: bash ops/pipeline/build-gpu-rpkg.sh
165200

166-
167201
test-cpp-gpu:
168202
name: >-
169203
Run Google Tests with GPUs
@@ -208,7 +242,7 @@ jobs:
208242

209243
test-python-wheel:
210244
name: Run Python tests (${{ matrix.description }})
211-
needs: [build-cuda, build-cpu-arm64]
245+
needs: [build-cuda, build-python-wheels-arm64]
212246
runs-on:
213247
- runs-on
214248
- runner=${{ matrix.runner }}
@@ -235,10 +269,10 @@ jobs:
235269
runner: linux-amd64-cpu
236270
artifact_from: build-cuda
237271
- description: cpu-arm64
238-
image_repo: xgb-ci.aarch64
272+
image_repo: xgb-ci.manylinux_2_28_aarch64
239273
suite: cpu-arm64
240274
runner: linux-arm64-cpu
241-
artifact_from: build-cpu-arm64
275+
artifact_from: build-python-wheels-arm64
242276
steps:
243277
# Restart Docker daemon so that it recognizes the ephemeral disks
244278
- run: sudo systemctl restart docker

CMakeLists.txt

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ if(PLUGIN_SYCL)
44
string(REPLACE " -isystem ${CONDA_PREFIX}/include" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
55
endif()
66

7-
project(xgboost LANGUAGES CXX C VERSION 3.0.0)
7+
project(xgboost LANGUAGES CXX C VERSION 3.0.1)
88
include(cmake/Utils.cmake)
99
list(APPEND CMAKE_MODULE_PATH "${xgboost_SOURCE_DIR}/cmake/modules")
1010

@@ -229,30 +229,6 @@ if(USE_CUDA)
229229
endif()
230230

231231
find_package(CUDAToolkit REQUIRED)
232-
find_package(CCCL CONFIG)
233-
if(CCCL_FOUND)
234-
message(STATUS "Standalone CCCL found.")
235-
else()
236-
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
237-
find_package(CCCL CONFIG
238-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
239-
if(NOT CCCL_FOUND)
240-
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
241-
find_package(libcudacxx CONFIG REQUIRED
242-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
243-
find_package(CUB CONFIG REQUIRED
244-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
245-
find_package(Thrust CONFIG REQUIRED
246-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
247-
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
248-
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
249-
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
250-
endif()
251-
endif()
252-
# Define guard macros to prevent windows.h from conflicting with winsock2.h
253-
if(WIN32)
254-
target_compile_definitions(CCCL::CCCL INTERFACE NOMINMAX WIN32_LEAN_AND_MEAN _WINSOCKAPI_)
255-
endif()
256232
endif()
257233

258234
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
@@ -338,6 +314,34 @@ if(PLUGIN_RMM)
338314
list(REMOVE_ITEM rmm_link_libs CUDA::cudart)
339315
list(APPEND rmm_link_libs CUDA::cudart_static)
340316
set_target_properties(rmm::rmm PROPERTIES INTERFACE_LINK_LIBRARIES "${rmm_link_libs}")
317+
318+
# Pick up patched CCCL from RMM
319+
elseif(USE_CUDA)
320+
# If using CUDA and not RMM, search for CCCL.
321+
find_package(CCCL CONFIG)
322+
if(CCCL_FOUND)
323+
message(STATUS "Standalone CCCL found.")
324+
else()
325+
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
326+
find_package(CCCL CONFIG
327+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
328+
if(NOT CCCL_FOUND)
329+
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
330+
find_package(libcudacxx CONFIG REQUIRED
331+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
332+
find_package(CUB CONFIG REQUIRED
333+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
334+
find_package(Thrust CONFIG REQUIRED
335+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
336+
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
337+
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
338+
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
339+
endif()
340+
endif()
341+
# Define guard macros to prevent windows.h from conflicting with winsock2.h
342+
if(WIN32)
343+
target_compile_definitions(CCCL::CCCL INTERFACE NOMINMAX WIN32_LEAN_AND_MEAN _WINSOCKAPI_)
344+
endif()
341345
endif()
342346

343347
if(PLUGIN_SYCL)

R-package/DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Package: xgboost
22
Type: Package
33
Title: Extreme Gradient Boosting
4-
Version: 3.0.0.1
5-
Date: 2025-03-14
4+
Version: 3.0.1.1
5+
Date: 2025-05-07
66
Authors@R: c(
77
person("Tianqi", "Chen", role = c("aut"),
88
email = "[email protected]"),

R-package/LICENSE

Lines changed: 0 additions & 13 deletions
This file was deleted.

R-package/bootstrap.R

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## Script used to bootstrap R-universe build.
2+
3+
## Execute git commands to initialize git submodules
4+
system("git submodule init")
5+
system("git submodule update")
6+
7+
## core
8+
file.copy("../src", "./src/", recursive = TRUE)
9+
file.copy("../include", "./src/", recursive = TRUE)
10+
file.copy("../amalgamation", "./src/", recursive = TRUE)
11+
12+
## dmlc-core
13+
dir.create("./src/dmlc-core")
14+
file.copy("../dmlc-core/include", "./src/dmlc-core/", recursive = TRUE)
15+
file.copy("../dmlc-core/src", "./src/dmlc-core/", recursive = TRUE)
16+
17+
pkgroot <- function(path) {
18+
## read the file from path, replace the PKGROOT=../../ with PKGROOT=.
19+
lines <- readLines(path)
20+
lines <- gsub("PKGROOT=../../", "PKGROOT=.", lines, fixed = TRUE)
21+
writeLines(lines, path)
22+
}
23+
24+
## makefile and license
25+
file.copy("../LICENSE", "./LICENSE")
26+
pkgroot("./src/Makevars.in")
27+
pkgroot("./src/Makevars.win.in")
28+
29+
## misc
30+
path <- file.path("remove_warning_suppression_pragma.sh")
31+
file.remove(path)
32+
path <- file.path("CMakeLists.txt")
33+
file.remove(path)
34+
35+
## remove the directory recursively ./tests/helper_scripts
36+
unlink("tests/helper_scripts", recursive = TRUE)

R-package/configure

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.71 for xgboost 3.0.0.
3+
# Generated by GNU Autoconf 2.71 for xgboost 3.0.1.
44
#
55
#
66
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -607,8 +607,8 @@ MAKEFLAGS=
607607
# Identity of this package.
608608
PACKAGE_NAME='xgboost'
609609
PACKAGE_TARNAME='xgboost'
610-
PACKAGE_VERSION='3.0.0'
611-
PACKAGE_STRING='xgboost 3.0.0'
610+
PACKAGE_VERSION='3.0.1'
611+
PACKAGE_STRING='xgboost 3.0.1'
612612
PACKAGE_BUGREPORT=''
613613
PACKAGE_URL=''
614614

@@ -1262,7 +1262,7 @@ if test "$ac_init_help" = "long"; then
12621262
# Omit some internal or obsolete options to make the list less imposing.
12631263
# This message is too long to be a string in the A/UX 3.1 sh.
12641264
cat <<_ACEOF
1265-
\`configure' configures xgboost 3.0.0 to adapt to many kinds of systems.
1265+
\`configure' configures xgboost 3.0.1 to adapt to many kinds of systems.
12661266
12671267
Usage: $0 [OPTION]... [VAR=VALUE]...
12681268
@@ -1324,7 +1324,7 @@ fi
13241324

13251325
if test -n "$ac_init_help"; then
13261326
case $ac_init_help in
1327-
short | recursive ) echo "Configuration of xgboost 3.0.0:";;
1327+
short | recursive ) echo "Configuration of xgboost 3.0.1:";;
13281328
esac
13291329
cat <<\_ACEOF
13301330
@@ -1407,7 +1407,7 @@ fi
14071407
test -n "$ac_init_help" && exit $ac_status
14081408
if $ac_init_version; then
14091409
cat <<\_ACEOF
1410-
xgboost configure 3.0.0
1410+
xgboost configure 3.0.1
14111411
generated by GNU Autoconf 2.71
14121412
14131413
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1668,7 +1668,7 @@ cat >config.log <<_ACEOF
16681668
This file contains any messages produced by compilers while
16691669
running configure, to aid debugging if configure makes a mistake.
16701670
1671-
It was created by xgboost $as_me 3.0.0, which was
1671+
It was created by xgboost $as_me 3.0.1, which was
16721672
generated by GNU Autoconf 2.71. Invocation command line was
16731673
16741674
$ $0$ac_configure_args_raw
@@ -2796,11 +2796,11 @@ if test x$ac_prog_cxx_stdcxx = xno
27962796
then :
27972797
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
27982798
printf %s "checking for $CXX option to enable C++11 features... " >&6; }
2799-
if test ${ac_cv_prog_cxx_11+y}
2799+
if test ${ac_cv_prog_cxx_cxx11+y}
28002800
then :
28012801
printf %s "(cached) " >&6
28022802
else $as_nop
2803-
ac_cv_prog_cxx_11=no
2803+
ac_cv_prog_cxx_cxx11=no
28042804
ac_save_CXX=$CXX
28052805
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
28062806
/* end confdefs.h. */
@@ -2842,11 +2842,11 @@ if test x$ac_prog_cxx_stdcxx = xno
28422842
then :
28432843
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
28442844
printf %s "checking for $CXX option to enable C++98 features... " >&6; }
2845-
if test ${ac_cv_prog_cxx_98+y}
2845+
if test ${ac_cv_prog_cxx_cxx98+y}
28462846
then :
28472847
printf %s "(cached) " >&6
28482848
else $as_nop
2849-
ac_cv_prog_cxx_98=no
2849+
ac_cv_prog_cxx_cxx98=no
28502850
ac_save_CXX=$CXX
28512851
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
28522852
/* end confdefs.h. */
@@ -3855,7 +3855,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
38553855
# report actual input values of CONFIG_FILES etc. instead of their
38563856
# values after options handling.
38573857
ac_log="
3858-
This file was extended by xgboost $as_me 3.0.0, which was
3858+
This file was extended by xgboost $as_me 3.0.1, which was
38593859
generated by GNU Autoconf 2.71. Invocation command line was
38603860
38613861
CONFIG_FILES = $CONFIG_FILES
@@ -3919,7 +3919,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
39193919
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
39203920
ac_cs_config='$ac_cs_config_escaped'
39213921
ac_cs_version="\\
3922-
xgboost config.status 3.0.0
3922+
xgboost config.status 3.0.1
39233923
configured by $0, generated by GNU Autoconf 2.71,
39243924
with options \\"\$ac_cs_config\\"
39253925

R-package/configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
AC_PREREQ(2.69)
44

5-
AC_INIT([xgboost],[3.0.0],[],[xgboost],[])
5+
AC_INIT([xgboost],[3.0.1],[],[xgboost],[])
66

77
: ${R_HOME=`R RHOME`}
88
if test -z "${R_HOME}"; then

0 commit comments

Comments
 (0)