Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion .github/workflows/python_wheels_winarm64.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build Python wheels targeting Windows ARM64
name: Windows aarch64

on:
push:
Expand Down Expand Up @@ -61,6 +61,13 @@ jobs:
$wheelFile = Get-ChildItem wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python -m wheel tags --python-tag py3 --abi-tag none --platform win_arm64 --remove $wheelFile

- name: Upload Python wheel xgboost as workflow artifact
uses: actions/upload-artifact@v7.0.1
with:
name: python-wheel-win-arm64-xgboost
path: python-package/wheelhouse/xgboost-*.whl
retention-days: 1

- name: Upload Python wheel xgboost
if: github.ref == 'refs/heads/master' || contains(github.ref, 'refs/heads/release_')
run: |
Expand Down Expand Up @@ -98,3 +105,34 @@ jobs:
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_IAM_S3_UPLOADER }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_IAM_S3_UPLOADER }}

test-python-wheel-Win-ARM64:
name: Test xgboost wheel for Windows ARM64
needs: python-wheels-Win-ARM64
runs-on: windows-11-arm
steps:
- uses: actions/checkout@v7.0.1

- name: Setup Python
uses: actions/setup-python@v7.0.0
with:
python-version: '3.12'

- name: Install test dependencies
run: python -m pip install hypothesis pytest scikit-learn pandas

- name: Download Python wheel
uses: actions/download-artifact@v8.0.1
with:
name: python-wheel-win-arm64-xgboost
path: wheelhouse

- name: Install Python wheel
run: |
$wheelFile = Get-ChildItem wheelhouse/*.whl | Select-Object -First 1 -ExpandProperty FullName
python -m pip install -v $wheelFile
python -c "import xgboost; print(xgboost.build_info())"

- name: Run Python tests
run: |
python -m pytest -v -s -rxXs --durations=0 tests/python/test_basic.py
11 changes: 5 additions & 6 deletions doc/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Stable Release
Python
------

Pre-built binary wheels are uploaded to PyPI (Python Package Index) for each release. Supported platforms are Linux (x86_64, aarch64), Windows (x86_64) and MacOS (x86_64, Apple Silicon). In addition the ``xgboost-cpu`` windows package supports aarch64.
Pre-built binary wheels are uploaded to PyPI (Python Package Index) for each release. Supported platforms are Linux (x86_64, aarch64), Windows (x86_64, aarch64) and MacOS (x86_64, Apple Silicon).

.. code-block:: bash

Expand Down Expand Up @@ -44,7 +44,7 @@ Capabilities of binary wheels for each platform:
+=====================+=========+======================+
| Linux x86_64 | |tick| | |tick| |
+---------------------+---------+----------------------+
| Linux aarch64 | |tick| | |cross| |
| Linux aarch64 | |tick| | |tick| |
+---------------------+---------+----------------------+
| MacOS x86_64 | |cross| | |cross| |
+---------------------+---------+----------------------+
Expand All @@ -55,10 +55,9 @@ Capabilities of binary wheels for each platform:
| Windows aarch64 | |cross| | |cross| |
+---------------------+---------+----------------------+

Linux aarch64 wheels now ship with CUDA support, so ``pip install xgboost`` on
modern Jetson or Graviton machines provides the same GPU functionality as the
Linux x86_64 wheel. Multi-node and multi-GPU training remain experimental on
ARM64 at this time.
Linux aarch64 wheels now ship with CUDA support, so ``pip install xgboost`` on modern
Jetson or Graviton machines provides the same GPU functionality as the Linux x86_64
wheel.

.. _wheel-cuda:

Expand Down
3 changes: 2 additions & 1 deletion ops/conda_env/macos_cpu_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ dependencies:
- pytest
- pytest-cov
- pytest-timeout
- python-kubernetes
- urllib3
- boto3
- awscli
- loky>=3.5.1
- pyarrow
- cloudpickle
- pip:
- py-ubjson
19 changes: 19 additions & 0 deletions ops/conda_env/win64_cpu_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: win64_env
channels:
- conda-forge
dependencies:
- python=3.12
- numpy
- scipy
- matplotlib
- scikit-learn
- pandas
- pytest
- boto3
- hypothesis
- python-graphviz
- pip
- loky>=3.5.1
- pyarrow
- pip:
- py-ubjson
6 changes: 4 additions & 2 deletions ops/conda_env/win64_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ dependencies:
- pytest
- boto3
- hypothesis
- cupy>=13.2,<14
- python-graphviz
- pip
- py-ubjson
- loky>=3.5.1
- pyarrow
# CUDA
- cupy
- pip:
- py-ubjson
1 change: 1 addition & 0 deletions ops/script/release_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ def download_python_wheels(branch: str, commit_hash: str, outdir: Path) -> None:
"""Download all Python binary wheels for the specified branch."""
full_platforms = [
"win_amd64",
"win_arm64",
"manylinux_2_28_x86_64",
"manylinux_2_28_aarch64",
"macosx_10_15_x86_64",
Expand Down
Loading