|
name: Build AutoAWQ Wheels with CUDA |
|
|
|
on: |
|
push: |
|
tags: |
|
- "v*" |
|
|
|
jobs: |
|
release: |
|
|
|
name: Create Release |
|
runs-on: ubuntu-latest |
|
outputs: |
|
upload_url: ${{ steps.create_release.outputs.upload_url }} |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
|
|
- name: Extract branch info |
|
shell: bash |
|
run: | |
|
echo "release_tag=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV |
|
|
|
- name: Create Release |
|
id: create_release |
|
uses: "actions/github-script@v6" |
|
env: |
|
RELEASE_TAG: ${{ env.release_tag }} |
|
with: |
|
github-token: "${{ secrets.GITHUB_TOKEN }}" |
|
script: | |
|
const script = require('.github/workflows/scripts/github_create_release.js') |
|
await script(github, context, core) |
|
|
|
build_cuda_wheels: |
|
name: Build AWQ with CUDA |
|
runs-on: ${{ matrix.os }} |
|
needs: release |
|
|
|
strategy: |
|
matrix: |
|
os: [ubuntu-20.04, windows-latest] |
|
pyver: ["3.8", "3.9", "3.10", "3.11", "3.12"] |
|
cuda: ["11.8.0", "12.1.1"] |
|
defaults: |
|
run: |
|
shell: pwsh |
|
env: |
|
PYPI_CUDA_VERSION: "12.1.1" |
|
CUDA_VERSION: ${{ matrix.cuda }} |
|
|
|
steps: |
|
- name: Free Disk Space |
|
uses: jlumbroso/[email protected] |
|
if: runner.os == 'Linux' |
|
with: |
|
tool-cache: false |
|
android: true |
|
dotnet: true |
|
haskell: true |
|
large-packages: false |
|
docker-images: true |
|
swap-storage: false |
|
|
|
- uses: actions/checkout@v3 |
|
|
|
- uses: actions/setup-python@v3 |
|
with: |
|
python-version: ${{ matrix.pyver }} |
|
|
|
- name: Setup Mamba |
|
uses: conda-incubator/[email protected] |
|
with: |
|
activate-environment: "build" |
|
python-version: ${{ matrix.pyver }} |
|
miniforge-variant: Mambaforge |
|
miniforge-version: latest |
|
use-mamba: true |
|
add-pip-as-python-dependency: true |
|
auto-activate-base: false |
|
|
|
- name: Install Dependencies |
|
run: | |
|
# Install CUDA toolkit |
|
mamba install -y 'cuda' -c "nvidia/label/cuda-${env:CUDA_VERSION}" |
|
|
|
|
|
$env:CUDA_PATH = $env:CONDA_PREFIX |
|
$env:CUDA_HOME = $env:CONDA_PREFIX |
|
|
|
|
|
$cudaVersion = $env:CUDA_VERSION.Replace('.', '') |
|
$cudaVersionPytorch = $cudaVersion.Substring(0, $cudaVersion.Length - 1) |
|
$pytorchVersion = "torch==2.3.1" |
|
python -m pip install --upgrade --no-cache-dir $pytorchVersion+cu$cudaVersionPytorch --index-url https://download.pytorch.org/whl/cu$cudaVersionPytorch |
|
python -m pip install build setuptools wheel ninja |
|
|
|
|
|
python --version |
|
python -c "import torch; print('PyTorch:', torch.__version__)" |
|
python -c "import torch; print('CUDA:', torch.version.cuda)" |
|
python -c "import os; print('CUDA_HOME:', os.getenv('CUDA_HOME', None))" |
|
python -c "from torch.utils import cpp_extension; print (cpp_extension.CUDA_HOME)" |
|
|
|
- name: Build Wheel |
|
run: | |
|
$env:CUDA_PATH = $env:CONDA_PREFIX |
|
$env:CUDA_HOME = $env:CONDA_PREFIX |
|
|
|
|
|
if ( $env:CUDA_VERSION -eq $env:PYPI_CUDA_VERSION ){ |
|
$env:PYPI_BUILD = 1 |
|
} |
|
|
|
python setup.py sdist bdist_wheel |
|
|
|
- name: Upload Assets |
|
uses: shogo82148/actions-upload-release-asset@v1 |
|
with: |
|
upload_url: ${{ needs.release.outputs.upload_url }} |
|
asset_path: ./dist/*.whl |
|
|
|
build_rocm_wheels: |
|
name: Build AWQ with ROCm |
|
runs-on: ${{ matrix.os }} |
|
needs: release |
|
|
|
strategy: |
|
matrix: |
|
os: [ubuntu-20.04] |
|
python: ["3.8", "3.9", "3.10", "3.11"] |
|
rocm: ["5.6.1", "5.7.1"] |
|
defaults: |
|
run: |
|
shell: bash |
|
env: |
|
ROCM_VERSION: ${{ matrix.rocm }} |
|
|
|
steps: |
|
- uses: actions/checkout@v3 |
|
|
|
- name: Free Disk Space |
|
run: | |
|
df -h |
|
echo "Removing large packages" |
|
sudo apt-get remove -y '^dotnet-.*' |
|
sudo apt-get remove -y 'php.*' |
|
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel |
|
df -h |
|
sudo apt-get autoremove -y >/dev/null 2>&1 |
|
sudo apt-get clean |
|
sudo apt-get autoremove -y >/dev/null 2>&1 |
|
sudo apt-get autoclean -y >/dev/null 2>&1 |
|
df -h |
|
echo "https://github.com/actions/virtual-environments/issues/709" |
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY" |
|
df -h |
|
echo "remove big /usr/local" |
|
sudo rm -rf "/usr/local/share/boost" |
|
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 |
|
df -h |
|
sudo rm -rf /usr/share/dotnet/sdk > /dev/null 2>&1 |
|
sudo rm -rf /usr/share/dotnet/shared > /dev/null 2>&1 |
|
sudo rm -rf /usr/share/swift > /dev/null 2>&1 |
|
df -h |
|
|
|
- uses: actions/setup-python@v3 |
|
with: |
|
python-version: ${{ matrix.python }} |
|
|
|
- name: Setup Mamba |
|
uses: conda-incubator/[email protected] |
|
with: |
|
activate-environment: "build" |
|
python-version: ${{ matrix.python }} |
|
mamba-version: "*" |
|
use-mamba: false |
|
channels: conda-forge,defaults |
|
channel-priority: true |
|
add-pip-as-python-dependency: true |
|
auto-activate-base: false |
|
|
|
- name: Set up ROCm |
|
run: | |
|
echo "Using python:" |
|
python --version |
|
which python |
|
|
|
if [[ "${{ matrix.rocm }}" == "5.4.2" ]]; then |
|
export ROCM_DL_FILE=amdgpu-install_5.4.50402-1_all.deb |
|
elif [[ "${{ matrix.rocm }}" == "5.6.1" ]]; then |
|
export ROCM_DL_FILE=amdgpu-install_5.6.50601-1_all.deb |
|
elif [[ "${{ matrix.rocm }}" == "5.7.1" ]]; then |
|
export ROCM_DL_FILE=amdgpu-install_5.7.50701-1_all.deb |
|
else |
|
echo Unknown rocm version |
|
exit 1 |
|
fi |
|
|
|
curl -O https://repo.radeon.com/amdgpu-install/${{ matrix.rocm }}/ubuntu/focal/$ROCM_DL_FILE |
|
sudo dpkg -i $ROCM_DL_FILE |
|
sudo DEBIAN_FRONTEND=noninteractive amdgpu-install --usecase=rocm --no-dkms --no-32 -y |
|
|
|
- name: Install Dependencies |
|
run: | |
|
sudo apt-get update |
|
sudo apt-get install -y --no-install-recommends rocsparse-dev rocthrust-dev rocblas-dev hipblas-dev hipsparse-dev |
|
|
|
python -m pip install --upgrade build setuptools wheel |
|
|
|
if [[ "${{ matrix.rocm }}" == "5.7.1" ]]; then |
|
python -m pip install torch==2.3.1 --index-url https://download.pytorch.org/whl/rocm5.7 |
|
elif [[ "${{ matrix.rocm }}" == "5.6.1" ]]; then |
|
python -m pip install torch==2.3.1 --index-url https://download.pytorch.org/whl/rocm5.6 |
|
else |
|
echo Unknown rocm version for python install |
|
exit 1 |
|
fi |
|
|
|
- name: Build Wheel |
|
run: | |
|
echo "Using python for build:" |
|
python --version |
|
which python |
|
|
|
ROCM_VERSION=${{ matrix.rocm }} python setup.py sdist bdist_wheel |
|
|
|
- name: Upload Assets |
|
uses: shogo82148/actions-upload-release-asset@v1 |
|
with: |
|
upload_url: ${{ needs.release.outputs.upload_url }} |
|
asset_path: ./dist/*.whl |
|
|