|
|
|
@@ -1,448 +0,0 @@ |
|
|
|
name: Nightly Tests |
|
|
|
|
|
|
|
on: |
|
|
|
workflow_dispatch: |
|
|
|
schedule: |
|
|
|
# Every day at 02:15 AM UTC |
|
|
|
- cron: "15 2 * * *" |
|
|
|
|
|
|
|
concurrency: |
|
|
|
group: ${{ github.workflow }}-${{ github.ref }} |
|
|
|
cancel-in-progress: true |
|
|
|
|
|
|
|
env: |
|
|
|
# Skip rebuilding the CPU library when installing the wheels. |
|
|
|
# We build the libraries in separate jobs and upload as artifacts. |
|
|
|
BNB_SKIP_CMAKE: 1 |
|
|
|
|
|
|
|
jobs: |
|
|
|
|
|
|
|
build-cpu: |
|
|
|
strategy: |
|
|
|
matrix: |
|
|
|
os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2025, macos-15] |
|
|
|
include: |
|
|
|
- os: ubuntu-22.04 |
|
|
|
arch: x86_64 |
|
|
|
- os: ubuntu-22.04-arm |
|
|
|
arch: aarch64 |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
- os: macos-15 |
|
|
|
arch: arm64 |
|
|
|
runs-on: ${{ matrix.os }} |
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Setup MSVC |
|
|
|
if: startsWith(matrix.os, 'windows') |
|
|
|
uses: ilammy/msvc-dev-cmd@v1.13.0 # to use cl |
|
|
|
|
|
|
|
- name: Build C++ |
|
|
|
run: bash .github/scripts/build-cpu.sh |
|
|
|
env: |
|
|
|
build_os: ${{ matrix.os }} |
|
|
|
build_arch: ${{ matrix.arch }} |
|
|
|
|
|
|
|
- name: Upload build artifact |
|
|
|
uses: actions/upload-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cpu_${{ matrix.os }}_${{ matrix.arch }} |
|
|
|
path: output/${{ matrix.os }}/${{ matrix.arch }}/* |
|
|
|
retention-days: 7 |
|
|
|
|
|
|
|
build-cuda: |
|
|
|
strategy: |
|
|
|
matrix: |
|
|
|
cuda_version: ["11.8.0", "12.6.3", "12.8.1", "13.0.1"] |
|
|
|
os: [ubuntu-22.04, ubuntu-22.04-arm] |
|
|
|
include: |
|
|
|
- os: ubuntu-22.04 |
|
|
|
arch: x86_64 |
|
|
|
- os: ubuntu-22.04-arm |
|
|
|
arch: aarch64 |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
cuda_version: "11.8.0" |
|
|
|
runs-on: ${{ matrix.os }} |
|
|
|
|
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Install CUDA Toolkit |
|
|
|
uses: Jimver/cuda-toolkit@c35baa1a18fd1fc9dcf47c5bd839bf30559c0bc3 # v0.2.24 |
|
|
|
if: startsWith(matrix.os, 'windows') |
|
|
|
id: cuda-toolkit |
|
|
|
with: |
|
|
|
cuda: ${{ matrix.cuda_version }} |
|
|
|
method: "network" |
|
|
|
sub-packages: '["nvcc","cudart","cusparse","cublas","thrust","nvrtc_dev","cublas_dev","cusparse_dev"]' |
|
|
|
use-github-cache: false |
|
|
|
|
|
|
|
- name: Setup MSVC |
|
|
|
if: startsWith(matrix.os, 'windows') |
|
|
|
uses: ilammy/msvc-dev-cmd@v1.13.0 # to use cl |
|
|
|
|
|
|
|
# Target just the architectures used for our runners. |
|
|
|
- name: Build C++ / CUDA |
|
|
|
run: bash .github/scripts/build-cuda.sh |
|
|
|
env: |
|
|
|
build_os: ${{ matrix.os }} |
|
|
|
build_arch: ${{ matrix.arch }} |
|
|
|
cuda_version: ${{ matrix.cuda_version }} |
|
|
|
cuda_targets: "75;89" |
|
|
|
|
|
|
|
- name: Upload build artifact |
|
|
|
uses: actions/upload-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cuda_${{matrix.cuda_version}}_${{ matrix.os }}_${{ matrix.arch }} |
|
|
|
path: output/${{ matrix.os }}/${{ matrix.arch }}/* |
|
|
|
retention-days: 7 |
|
|
|
|
|
|
|
test-cpu: |
|
|
|
if: github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
needs: build-cpu |
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2025, macos-15] |
|
|
|
# Test with the oldest supported torch version, the newest two stable/RC. |
|
|
|
torch_version: ["2.3.1", "2.8.0", "2.9.0"] |
|
|
|
include: |
|
|
|
- os: ubuntu-22.04 |
|
|
|
arch: x86_64 |
|
|
|
runner: banb-aws-general-8-plus-use1-public-80 |
|
|
|
- os: ubuntu-22.04-arm |
|
|
|
arch: aarch64 |
|
|
|
- os: ubuntu-22.04-arm |
|
|
|
arch: aarch64 |
|
|
|
torch_version: "2.5.1" # Higher minimum requirement for aarch64 |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
- os: macos-15 |
|
|
|
arch: arm64 |
|
|
|
exclude: |
|
|
|
- os: ubuntu-22.04-arm |
|
|
|
torch_version: "2.3.1" |
|
|
|
|
|
|
|
runs-on: ${{ matrix.runner || matrix.os }} |
|
|
|
env: |
|
|
|
BNB_TEST_DEVICE: cpu |
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Download build artifact |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cpu_${{ matrix.os }}_${{ matrix.arch }} |
|
|
|
path: bitsandbytes/ |
|
|
|
merge-multiple: true |
|
|
|
|
|
|
|
- name: Setup Python |
|
|
|
uses: actions/setup-python@v5 |
|
|
|
with: |
|
|
|
python-version: '3.10' |
|
|
|
|
|
|
|
- name: Setup MSVC |
|
|
|
if: startsWith(matrix.os, 'windows') |
|
|
|
uses: ilammy/msvc-dev-cmd@v1.13.0 # to use cl for torch.compile |
|
|
|
|
|
|
|
- name: Install dependencies |
|
|
|
run: | |
|
|
|
pip install torch==${{ matrix.torch_version }} --index-url https://download.pytorch.org/whl/cpu |
|
|
|
pip install -e ".[test]" -v |
|
|
|
pip install pytest-cov |
|
|
|
|
|
|
|
# We need to downgrade to numpy<2 for torch<2.4.1 compatibility on Windows |
|
|
|
# See: https://github.com/pytorch/pytorch/issues/131668 |
|
|
|
- name: Downgrade NumPy |
|
|
|
if: startsWith(matrix.os, 'windows') && startsWith(matrix.torch_version, '2.3.') |
|
|
|
run: pip install "numpy<2" |
|
|
|
|
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Show environment information |
|
|
|
run: python -m torch.utils.collect_env |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
run: pytest --durations=100 |
|
|
|
|
|
|
|
test-cpu-intel: |
|
|
|
if: github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
needs: build-cpu |
|
|
|
runs-on: banb-aws-general-8-plus-use1-public-80 |
|
|
|
env: |
|
|
|
BNB_TEST_DEVICE: cpu |
|
|
|
steps: |
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Download build artifact |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cpu_ubuntu-22.04_x86_64 |
|
|
|
path: bitsandbytes/ |
|
|
|
merge-multiple: true |
|
|
|
|
|
|
|
- name: Setup Python |
|
|
|
uses: actions/setup-python@v5 |
|
|
|
with: |
|
|
|
python-version: '3.10' |
|
|
|
|
|
|
|
- name: Install dependencies |
|
|
|
run: | |
|
|
|
pip install torch==2.7.1 --index-url https://download.pytorch.org/whl/cpu |
|
|
|
pip install -e ".[test]" -v |
|
|
|
pip install pytest-cov |
|
|
|
|
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Show environment information |
|
|
|
run: python -m torch.utils.collect_env |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
run: pytest --durations=100 |
|
|
|
|
|
|
|
# test-cuda-aarch64: |
|
|
|
# if: github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
# needs: build-cuda |
|
|
|
# strategy: |
|
|
|
# fail-fast: false |
|
|
|
# matrix: |
|
|
|
# os: [ubuntu-22.04-arm] |
|
|
|
# arch: [aarch64] |
|
|
|
# torch_version: ["2.7.0"] |
|
|
|
# cuda_version: ["11.8.0", "12.8.1"] |
|
|
|
|
|
|
|
# runs-on: bandb-aws-g5g-4xlarge-plus-use1-public-80 |
|
|
|
# env: |
|
|
|
# BNB_TEST_DEVICE: cuda |
|
|
|
# steps: |
|
|
|
# - name: Show GPU Information |
|
|
|
# run: nvidia-smi |
|
|
|
|
|
|
|
# - name: Show pip packages |
|
|
|
# run: pip list |
|
|
|
|
|
|
|
test-hpu: |
|
|
|
if: false # github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
needs: build-cpu |
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
torch_version: ["2.6.0"] |
|
|
|
runs-on: |
|
|
|
group: bandb-itac-bmemr-gaudi3-1gaudi |
|
|
|
env: |
|
|
|
BNB_TEST_DEVICE: hpu |
|
|
|
container: |
|
|
|
image: vault.habana.ai/gaudi-docker/1.21.1/ubuntu22.04/habanalabs/pytorch-installer-2.6.0:latest |
|
|
|
options: --runtime=habana --shm-size=64G --env HABANA_VISIBLE_DEVICES --env HABANA_VISIBLE_MODULES |
|
|
|
env: |
|
|
|
OMPI_MCA_btl_vader_single_copy_mechanism: none |
|
|
|
BNB_TEST_DEVICE: hpu |
|
|
|
steps: |
|
|
|
- name: Show system information |
|
|
|
run: | |
|
|
|
echo "OS: $(uname -a)" |
|
|
|
echo "CPU: $(lscpu | grep 'Model name')" |
|
|
|
echo "Memory: $(free -h)" |
|
|
|
|
|
|
|
- name: Show HPU Information |
|
|
|
run: | |
|
|
|
hl-smi |
|
|
|
|
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Download build artifact |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cpu_ubuntu-22.04_x86_64 |
|
|
|
path: bitsandbytes/ |
|
|
|
merge-multiple: true |
|
|
|
|
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Install dependencies |
|
|
|
run: | |
|
|
|
pip install -e ".[test]" -v |
|
|
|
pip install pytest-cov |
|
|
|
|
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Show environment information |
|
|
|
run: | |
|
|
|
python -m torch.utils.collect_env |
|
|
|
python -m bitsandbytes |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
run: pytest --durations=100 |
|
|
|
|
|
|
|
test-xpu: |
|
|
|
if: false # github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
needs: build-cpu |
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
torch_version: ["2.7.1"] #["2.6.0", "2.7.1"] |
|
|
|
runs-on: |
|
|
|
group: bandb-itac-bmsprpvc1550-8-1gpu |
|
|
|
env: |
|
|
|
BNB_TEST_DEVICE: xpu |
|
|
|
steps: |
|
|
|
- name: Show system information |
|
|
|
run: | |
|
|
|
echo "OS: $(uname -a)" |
|
|
|
echo "CPU: $(lscpu | grep 'Model name')" |
|
|
|
echo "Memory: $(free -h)" |
|
|
|
|
|
|
|
- name: Show XPU Information |
|
|
|
run: | |
|
|
|
xpu-smi discovery |
|
|
|
sudo xpu-smi discovery |
|
|
|
sudo apt-get install -y hwinfo |
|
|
|
hwinfo --display |
|
|
|
|
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Download build artifact |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cpu_ubuntu-22.04_x86_64 |
|
|
|
path: bitsandbytes/ |
|
|
|
merge-multiple: true |
|
|
|
|
|
|
|
- name: Setup Python |
|
|
|
uses: actions/setup-python@v5 |
|
|
|
with: |
|
|
|
python-version: '3.10' |
|
|
|
|
|
|
|
- name: Install PyTorch |
|
|
|
run: pip install torch==${{ matrix.torch_version }} --index-url https://download.pytorch.org/whl/xpu |
|
|
|
|
|
|
|
- name: Install dependencies |
|
|
|
run: | |
|
|
|
pip install -e ".[test]" -v |
|
|
|
pip install pytest-cov |
|
|
|
|
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Show environment information |
|
|
|
run: | |
|
|
|
python -m torch.utils.collect_env |
|
|
|
python -m bitsandbytes |
|
|
|
|
|
|
|
# - name: Run tests |
|
|
|
# run: pytest --durations=100 |
|
|
|
|
|
|
|
test-cuda: |
|
|
|
if: github.repository == 'bitsandbytes-foundation/bitsandbytes' |
|
|
|
needs: build-cuda |
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
os: [ubuntu-22.04, windows-2025] |
|
|
|
arch: [x86_64] |
|
|
|
gpu: [T4, L40S] |
|
|
|
cuda_version: ["11.8.0", "12.6.3", "12.8.1", "13.0.1"] |
|
|
|
include: |
|
|
|
- cuda_version: "11.8.0" |
|
|
|
torch_version: "2.3.1" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu118" |
|
|
|
- cuda_version: "12.6.3" |
|
|
|
torch_version: "2.7.1" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu126" |
|
|
|
- cuda_version: "12.8.1" |
|
|
|
torch_version: "2.8.0" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu128" |
|
|
|
- cuda_version: "13.0.1" |
|
|
|
torch_version: "2.9.1" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu130" |
|
|
|
|
|
|
|
|
|
|
|
# Linux L40S runners |
|
|
|
- os: ubuntu-22.04 |
|
|
|
gpu: L40S |
|
|
|
runner: bandb-aws-g6e-4xlarge-plus-use1-public-80 |
|
|
|
|
|
|
|
# Linux T4 runners |
|
|
|
- os: ubuntu-22.04 |
|
|
|
gpu: T4 |
|
|
|
runner: bandb-aws-g4dn-4xlarge-plus-use1-public-80 |
|
|
|
|
|
|
|
# Specific Windows runners using cu118 |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
gpu: T4 |
|
|
|
runner: CUDA-Windows-x64 |
|
|
|
cuda_version: "11.8.0" |
|
|
|
torch_version: "2.3.1" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu118" |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
gpu: T4 |
|
|
|
runner: CUDA-Windows-x64 |
|
|
|
cuda_version: "11.8.0" |
|
|
|
torch_version: "2.6.0" |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu118" |
|
|
|
- os: windows-2025 |
|
|
|
arch: x86_64 |
|
|
|
gpu: T4 |
|
|
|
runner: CUDA-Windows-x64 |
|
|
|
cuda_version: "11.8.0" |
|
|
|
torch_version: "2.7.1" # Note: this is the last PyTorch release supporting CUDA 11.8. |
|
|
|
pypi_index: "https://download.pytorch.org/whl/cu118" |
|
|
|
|
|
|
|
exclude: |
|
|
|
# Our current T4 Windows runner has a driver too old (471.11) |
|
|
|
# and cannot support CUDA 12+. Skip for now. |
|
|
|
- os: windows-2025 |
|
|
|
cuda_version: "13.0.1" |
|
|
|
- os: windows-2025 |
|
|
|
cuda_version: "12.9.1" |
|
|
|
- os: windows-2025 |
|
|
|
cuda_version: "12.8.1" |
|
|
|
- os: windows-2025 |
|
|
|
cuda_version: "12.6.3" |
|
|
|
|
|
|
|
# No Windows L40S runners. |
|
|
|
- os: windows-2025 |
|
|
|
gpu: L40S |
|
|
|
runs-on: ${{ matrix.runner }} |
|
|
|
env: |
|
|
|
BNB_TEST_DEVICE: cuda |
|
|
|
steps: |
|
|
|
- name: Show GPU Information |
|
|
|
run: nvidia-smi |
|
|
|
|
|
|
|
- uses: actions/checkout@v4 |
|
|
|
|
|
|
|
- name: Download build artifact |
|
|
|
uses: actions/download-artifact@v4 |
|
|
|
with: |
|
|
|
name: lib_cuda_${{ matrix.cuda_version }}_${{ matrix.os }}_${{ matrix.arch }} |
|
|
|
path: bitsandbytes/ |
|
|
|
merge-multiple: true |
|
|
|
|
|
|
|
- name: Setup Python |
|
|
|
uses: actions/setup-python@v5 |
|
|
|
with: |
|
|
|
python-version: '3.10' |
|
|
|
|
|
|
|
- name: Install dependencies |
|
|
|
run: | |
|
|
|
pip install --pre torch~=${{ matrix.torch_version }}.dev0 --index-url ${{ matrix.pypi_index }} |
|
|
|
pip install -e ".[test]" -v |
|
|
|
pip install pytest-cov |
|
|
|
- name: Show installed packages |
|
|
|
run: pip list |
|
|
|
|
|
|
|
- name: Show environment information |
|
|
|
run: python -m torch.utils.collect_env |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
run: pytest --durations=100 |