Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
bitsandbytes
Commits
958dfa99
Commit
958dfa99
authored
Mar 08, 2024
by
Aarni Koskela
Committed by
Titus
Mar 11, 2024
Browse files
Reformat .github with Prettier
parent
17681f68
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
158 deletions
+158
-158
.github/ISSUE_TEMPLATE/feature-request.yml
.github/ISSUE_TEMPLATE/feature-request.yml
+1
-1
.github/workflows/build_documentation.yml
.github/workflows/build_documentation.yml
+1
-1
.github/workflows/python-package.yml
.github/workflows/python-package.yml
+156
-156
No files found.
.github/ISSUE_TEMPLATE/feature-request.yml
View file @
958dfa99
name
:
"
\U0001F680
Feature
request"
description
:
Submit a proposal/request for a new feature
labels
:
[
"
feature"
]
labels
:
[
"
feature"
]
body
:
-
type
:
textarea
id
:
feature-request
...
...
.github/workflows/build_documentation.yml
View file @
958dfa99
...
...
@@ -8,7 +8,7 @@ on:
-
v*-release
jobs
:
build
:
build
:
uses
:
huggingface/doc-builder/.github/workflows/build_main_documentation.yml@main
with
:
commit_sha
:
${{ github.sha }}
...
...
.github/workflows/python-package.yml
View file @
958dfa99
...
...
@@ -3,28 +3,27 @@ name: Python package
on
:
push
:
{}
pull_request
:
branches
:
[
main
]
branches
:
[
main
]
paths
:
-
'
.github/workflows/python-package.yml
'
-
'
bitsandbytes/**
'
-
'
csrc/**
'
-
'
include/**
'
-
'
tests/**
'
-
'
CMakeLists.txt
'
-
'
requirements*.txt
'
-
'
setup.py
'
-
'
pyproject.toml
'
-
'
pytest.ini
'
-
"
.github/workflows/python-package.yml
"
-
"
bitsandbytes/**
"
-
"
csrc/**
"
-
"
include/**
"
-
"
tests/**
"
-
"
CMakeLists.txt
"
-
"
requirements*.txt
"
-
"
setup.py
"
-
"
pyproject.toml
"
-
"
pytest.ini
"
release
:
types
:
[
published
]
workflow_dispatch
:
{}
# Allow manual trigger
types
:
[
published
]
workflow_dispatch
:
{}
# Allow manual trigger
concurrency
:
group
:
${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress
:
true
jobs
:
##
# This job matrix builds the non-CUDA versions of the libraries for all supported platforms.
##
...
...
@@ -39,42 +38,42 @@ jobs:
runs-on
:
${{ matrix.os }}
# One day, we could run them on native agents. Azure supports this now but it's planned only for Q3 2023 for hosted agents
steps
:
# Check out code
-
uses
:
actions/checkout@v4
# On Linux we use CMake within Docker
-
name
:
Setup cmake
uses
:
jwlawson/actions-setup-cmake@v1.14
with
:
cmake-version
:
'
3.26.x
'
-
name
:
Setup MSVC
if
:
startsWith(matrix.os, 'windows')
#uses: microsoft/setup-msbuild@v1.1 # to use msbuild
uses
:
ilammy/msvc-dev-cmd@v1.13.0
# to use cl
# Compile C++ code
-
name
:
Build C++
shell
:
bash
run
:
|
set -ex
build_os=${{ matrix.os }}
build_arch=${{ matrix.arch }}
if [ ${build_os:0:6} == ubuntu -a ${build_arch} == aarch64 ]; then
# Allow cross-compile on aarch64
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-aarch64-linux-gnu
cmake -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCOMPUTE_BACKEND=cpu .
elif [ ${build_os:0:5} == macos -a ${build_arch} == aarch64 ]; then
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 -DCOMPUTE_BACKEND=cpu .
else
cmake -DCOMPUTE_BACKEND=cpu .
fi
cmake --build . --config Release
mkdir -p output/${{ matrix.os }}/${{ matrix.arch }}
( shopt -s nullglob && cp bitsandbytes/*.{so,dylib,dll} output/${{ matrix.os }}/${{ matrix.arch }}/ )
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
shared_library_${{ matrix.os }}_${{ matrix.arch }}
path
:
output/*
retention-days
:
7
-
uses
:
actions/checkout@v4
# On Linux we use CMake within Docker
-
name
:
Setup cmake
uses
:
jwlawson/actions-setup-cmake@v1.14
with
:
cmake-version
:
"
3.26.x
"
-
name
:
Setup MSVC
if
:
startsWith(matrix.os, 'windows')
#uses: microsoft/setup-msbuild@v1.1 # to use msbuild
uses
:
ilammy/msvc-dev-cmd@v1.13.0
# to use cl
# Compile C++ code
-
name
:
Build C++
shell
:
bash
run
:
|
set -ex
build_os=${{ matrix.os }}
build_arch=${{ matrix.arch }}
if [ ${build_os:0:6} == ubuntu -a ${build_arch} == aarch64 ]; then
# Allow cross-compile on aarch64
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu g++-aarch64-linux-gnu
cmake -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCOMPUTE_BACKEND=cpu .
elif [ ${build_os:0:5} == macos -a ${build_arch} == aarch64 ]; then
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 -DCOMPUTE_BACKEND=cpu .
else
cmake -DCOMPUTE_BACKEND=cpu .
fi
cmake --build . --config Release
mkdir -p output/${{ matrix.os }}/${{ matrix.arch }}
( shopt -s nullglob && cp bitsandbytes/*.{so,dylib,dll} output/${{ matrix.os }}/${{ matrix.arch }}/ )
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
shared_library_${{ matrix.os }}_${{ matrix.arch }}
path
:
output/*
retention-days
:
7
##
# This job matrix builds the CUDA versions of the libraries for platforms that support CUDA (Linux x64/aarch64 + Windows x64)
##
...
...
@@ -83,7 +82,8 @@ jobs:
matrix
:
os
:
[
ubuntu-latest
,
windows-latest
]
arch
:
[
x86_64
,
aarch64
]
cuda_version
:
[
"
11.7.1"
,
"
11.8.0"
,
"
12.0.1"
,
"
12.1.1"
,
"
12.2.2"
,
"
12.3.2"
]
cuda_version
:
[
"
11.7.1"
,
"
11.8.0"
,
"
12.0.1"
,
"
12.1.1"
,
"
12.2.2"
,
"
12.3.2"
]
exclude
:
-
os
:
windows-latest
# This probably requires arm64 Windows agents
arch
:
aarch64
...
...
@@ -92,68 +92,68 @@ jobs:
runs-on
:
${{ matrix.os }}
# One day, we could run them on native agents. Azure supports this now but it's planned only for Q3 2023 for hosted agents
steps
:
# Check out code
-
uses
:
actions/checkout@v4
# Linux: We use Docker to build cross platform Cuda (aarch64 is built in emulation)
-
name
:
Set up Docker multiarch
if
:
startsWith(matrix.os, 'ubuntu')
uses
:
docker/setup-qemu-action@v2
# On Linux we use CMake within Docker
-
name
:
Setup cmake
if
:
${{ !startsWith(matrix.os, 'linux') }}
uses
:
jwlawson/actions-setup-cmake@v1.14
with
:
cmake-version
:
'
3.26.x
'
# Windows: We install Cuda on the agent (slow)
-
uses
:
Jimver/cuda-toolkit@v0.2.14
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"]'
linux-local-args
:
'
["--toolkit"]'
use-github-cache
:
false
-
name
:
Setup MSVC
if
:
startsWith(matrix.os, 'windows')
#uses: microsoft/setup-msbuild@v1.1 # to use msbuild
uses
:
ilammy/msvc-dev-cmd@v1.13.0
# to use cl
# Compile C++ code
-
name
:
Build C++
shell
:
bash
run
:
|
set -ex
build_os=${{ matrix.os }}
build_arch=${{ matrix.arch }}
build_capability="50;52;60;61;70;75;80;86;89;90"
[[ "${{ matrix.cuda_version }}" == 11.7.* ]] && build_capability=${build_capability%??????}
[[ "${{ matrix.cuda_version }}" == 11.8.* ]] && build_capability=${build_capability%???}
[[ "${{ matrix.os }}" = windows-* ]] && python3 -m pip install ninja
for NO_CUBLASLT in ON OFF; do
if [ ${build_os:0:6} == ubuntu ]; then
image=nvidia/cuda:${{ matrix.cuda_version }}-devel-ubuntu22.04
echo "Using image $image"
docker run --platform linux/$build_arch -i -w /src -v $PWD:/src $image sh -c \
"apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cmake \
&& cmake -DCOMPUTE_BACKEND=cuda -DCOMPUTE_CAPABILITY=\"${build_capability}\" -DNO_CUBLASLT=${NO_CUBLASLT} . \
&& cmake --build ."
else
cmake -G Ninja -DCOMPUTE_BACKEND=cuda -DCOMPUTE_CAPABILITY="${build_capability}" -DNO_CUBLASLT=${NO_CUBLASLT} -DCMAKE_BUILD_TYPE=Release -S .
cmake --build . --config Release
fi
done
mkdir -p output/${{ matrix.os }}/${{ matrix.arch }}
( shopt -s nullglob && cp bitsandbytes/*.{so,dylib,dll} output/${{ matrix.os }}/${{ matrix.arch }}/ )
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
shared_library_cuda_${{ matrix.os }}_${{ matrix.arch }}_${{ matrix.cuda_version }}
path
:
output/*
retention-days
:
7
-
uses
:
actions/checkout@v4
# Linux: We use Docker to build cross platform Cuda (aarch64 is built in emulation)
-
name
:
Set up Docker multiarch
if
:
startsWith(matrix.os, 'ubuntu')
uses
:
docker/setup-qemu-action@v2
# On Linux we use CMake within Docker
-
name
:
Setup cmake
if
:
${{ !startsWith(matrix.os, 'linux') }}
uses
:
jwlawson/actions-setup-cmake@v1.14
with
:
cmake-version
:
"
3.26.x
"
# Windows: We install Cuda on the agent (slow)
-
uses
:
Jimver/cuda-toolkit@v0.2.14
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"]'
linux-local-args
:
'
["--toolkit"]'
use-github-cache
:
false
-
name
:
Setup MSVC
if
:
startsWith(matrix.os, 'windows')
#uses: microsoft/setup-msbuild@v1.1 # to use msbuild
uses
:
ilammy/msvc-dev-cmd@v1.13.0
# to use cl
# Compile C++ code
-
name
:
Build C++
shell
:
bash
run
:
|
set -ex
build_os=${{ matrix.os }}
build_arch=${{ matrix.arch }}
build_capability="50;52;60;61;70;75;80;86;89;90"
[[ "${{ matrix.cuda_version }}" == 11.7.* ]] && build_capability=${build_capability%??????}
[[ "${{ matrix.cuda_version }}" == 11.8.* ]] && build_capability=${build_capability%???}
[[ "${{ matrix.os }}" = windows-* ]] && python3 -m pip install ninja
for NO_CUBLASLT in ON OFF; do
if [ ${build_os:0:6} == ubuntu ]; then
image=nvidia/cuda:${{ matrix.cuda_version }}-devel-ubuntu22.04
echo "Using image $image"
docker run --platform linux/$build_arch -i -w /src -v $PWD:/src $image sh -c \
"apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cmake \
&& cmake -DCOMPUTE_BACKEND=cuda -DCOMPUTE_CAPABILITY=\"${build_capability}\" -DNO_CUBLASLT=${NO_CUBLASLT} . \
&& cmake --build ."
else
cmake -G Ninja -DCOMPUTE_BACKEND=cuda -DCOMPUTE_CAPABILITY="${build_capability}" -DNO_CUBLASLT=${NO_CUBLASLT} -DCMAKE_BUILD_TYPE=Release -S .
cmake --build . --config Release
fi
done
mkdir -p output/${{ matrix.os }}/${{ matrix.arch }}
( shopt -s nullglob && cp bitsandbytes/*.{so,dylib,dll} output/${{ matrix.os }}/${{ matrix.arch }}/ )
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
shared_library_cuda_${{ matrix.os }}_${{ matrix.arch }}_${{ matrix.cuda_version }}
path
:
output/*
retention-days
:
7
build-wheels
:
needs
:
-
build-shared-libs
-
build-shared-libs-cuda
-
build-shared-libs
-
build-shared-libs-cuda
strategy
:
matrix
:
os
:
[
ubuntu-latest
,
macos-latest
,
windows-latest
]
...
...
@@ -168,48 +168,48 @@ jobs:
runs-on
:
${{ matrix.os }}
steps
:
# Check out code
-
uses
:
actions/checkout@v4
# Download shared libraries
-
name
:
Download build artifact
uses
:
actions/download-artifact@v4
with
:
merge-multiple
:
true
pattern
:
"
shared_library*_${{
matrix.os
}}_${{
matrix.arch
}}*"
path
:
output/
-
name
:
Copy correct platform shared library
shell
:
bash
run
:
|
ls -lR output/
cp output/${{ matrix.os }}/${{ matrix.arch }}/* bitsandbytes/
# Set up the Python version needed
-
name
:
Set up Python ${{ matrix.python-version }}
uses
:
actions/setup-python@v5
with
:
python-version
:
${{ matrix.python-version }}
cache
:
pip
-
name
:
Install build package
shell
:
bash
run
:
pip install build
-
name
:
Install Python test dependencies
shell
:
bash
run
:
pip install -r requirements-ci.txt
# TODO: How to run CUDA tests on GitHub actions?
#- name: Run unit tests
# if: ${{ matrix.arch == 'x86_64' }} # Tests are too slow to run in emulation. Wait for real aarch64 agents
# run: |
# PYTHONPATH=. pytest --log-cli-level=DEBUG tests
-
name
:
Build wheel
shell
:
bash
run
:
python -m build .
-
name
:
Determine and Set Platform Tag, then Tag Wheel
shell
:
bash
run
:
|
PLATFORM_TAG=$(python scripts/set_platform_tag.py ${{ matrix.arch }})
echo "PLATFORM_TAG=$PLATFORM_TAG"
wheel tags --remove --abi-tag=none --python-tag=py3 --platform-tag=$PLATFORM_TAG dist/bitsandbytes-*.whl
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
bdist_wheel_${{ matrix.os }}_${{ matrix.arch }}
path
:
dist/bitsandbytes-*.whl
retention-days
:
7
-
uses
:
actions/checkout@v4
# Download shared libraries
-
name
:
Download build artifact
uses
:
actions/download-artifact@v4
with
:
merge-multiple
:
true
pattern
:
"
shared_library*_${{
matrix.os
}}_${{
matrix.arch
}}*"
path
:
output/
-
name
:
Copy correct platform shared library
shell
:
bash
run
:
|
ls -lR output/
cp output/${{ matrix.os }}/${{ matrix.arch }}/* bitsandbytes/
# Set up the Python version needed
-
name
:
Set up Python ${{ matrix.python-version }}
uses
:
actions/setup-python@v5
with
:
python-version
:
${{ matrix.python-version }}
cache
:
pip
-
name
:
Install build package
shell
:
bash
run
:
pip install build
-
name
:
Install Python test dependencies
shell
:
bash
run
:
pip install -r requirements-ci.txt
# TODO: How to run CUDA tests on GitHub actions?
#- name: Run unit tests
# if: ${{ matrix.arch == 'x86_64' }} # Tests are too slow to run in emulation. Wait for real aarch64 agents
# run: |
# PYTHONPATH=. pytest --log-cli-level=DEBUG tests
-
name
:
Build wheel
shell
:
bash
run
:
python -m build .
-
name
:
Determine and Set Platform Tag, then Tag Wheel
shell
:
bash
run
:
|
PLATFORM_TAG=$(python scripts/set_platform_tag.py ${{ matrix.arch }})
echo "PLATFORM_TAG=$PLATFORM_TAG"
wheel tags --remove --abi-tag=none --python-tag=py3 --platform-tag=$PLATFORM_TAG dist/bitsandbytes-*.whl
-
name
:
Upload build artifact
uses
:
actions/upload-artifact@v4
with
:
name
:
bdist_wheel_${{ matrix.os }}_${{ matrix.arch }}
path
:
dist/bitsandbytes-*.whl
retention-days
:
7
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment