60
60
large-packages : false
61
61
swap-storage : true
62
62
63
- # Setup Python
64
-
65
63
- uses : actions/checkout@v4
66
64
67
- - uses : actions/setup-python@v5.4.0
68
- with :
69
- python-version : ${{ matrix.pyver }}
70
-
71
65
# Get version string from package
72
66
73
67
- name : Get version string
@@ -85,11 +79,11 @@ jobs:
85
79
Write-Output "PACKAGE_VERSION=None" >> "$env:GITHUB_OUTPUT"
86
80
}
87
81
88
- # Pin VS build tools to 17.9 so builds won't fail
89
-
90
- - name : Install VS2022 BuildTools 17.9.7
91
- run : choco install -y visualstudio2022buildtools --version=117.9.7.0 --params "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --installChannelUri https://aka.ms/vs/17/release/180911598_-255012421/channel"
92
- if : runner.os == 'Windows'
82
+ # Install uv for easier python setup
83
+ - name : Install the latest version of uv and set the python version
84
+ uses : astral-sh/setup-uv@v5
85
+ with :
86
+ python-version : ${{ matrix.pyver }}
93
87
94
88
# Install ROCm SDK, apparently needs to happen before setting up Python
95
89
@@ -118,101 +112,15 @@ jobs:
118
112
119
113
# --- Install dependencies
120
114
121
- python3 -m ensurepip --upgrade
122
- pip3 install torch==${{ matrix.torch }} --index-url="https://download.pytorch.org/whl/rocm$ROCM_VERSION"
123
- pip3 install --upgrade setuptools==69.5.1 build wheel safetensors sentencepiece ninja
124
- pip3 cache purge
115
+ uv pip install torch==${{ matrix.torch }} --index-url="https://download.pytorch.org/whl/rocm$ROCM_VERSION"
116
+ uv pip install --upgrade build setuptools==69.5.1 wheel packaging ninja safetensors sentencepiece tokenizers numpy
125
117
126
118
# --- Build wheel
127
119
128
120
python3 -m build -n --wheel -C--build-option=egg_info "-C--build-option=--tag-build=+rocm${{ matrix.rocm }}-torch${{ matrix.torch }}"
129
121
130
- # Build for CUDA
131
-
132
- - name : Setup Mamba
133
- if : matrix.cuda != ''
134
- uses : conda-incubator/setup-miniconda@v3.1.0
135
- with :
136
- activate-environment : " exllama"
137
- python-version : ${{ matrix.pyver }}
138
- # miniforge-variant: Mambaforge
139
- miniforge-version : latest
140
- # use-mamba: true
141
- add-pip-as-python-dependency : true
142
- auto-activate-base : false
143
-
144
- - name : Build for CUDA
145
- if : matrix.cuda != ''
146
- run : |
147
- # --- Spawn the VS shell
148
- if ($IsWindows) {
149
- Import-Module 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll'
150
- Enter-VsDevShell -VsInstallPath 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools' -DevCmdArguments '-arch=x64 -host_arch=x64'
151
- $env:DISTUTILS_USE_SDK=1
152
- }
153
-
154
- # --- Install CUDA using Conda
155
- $cudaVersion = '${{ matrix.cuda }}'
156
- $cudaVersionPytorch = '${{ matrix.cuda }}'.Remove('${{ matrix.cuda }}'.LastIndexOf('.')).Replace('.','')
157
-
158
- $env:MAMBA_NO_LOW_SPEED_LIMIT = 1
159
- mamba install -y -c nvidia/label/cuda-$cudaVersion cuda-toolkit cuda-runtime
160
-
161
- if (!(mamba list cuda)[-1].contains('cuda')) {sleep -s 10; mamba install -y 'cuda' $cudaVersion}
162
- if (!(mamba list cuda)[-1].contains('cuda')) {throw 'CUDA Toolkit failed to install!'}
163
-
164
- $env:CUDA_PATH = $env:CONDA_PREFIX
165
- $env:CUDA_HOME = $env:CONDA_PREFIX
166
- if ($IsLinux) {$env:LD_LIBRARY_PATH = $env:CONDA_PREFIX + '/lib:' + $env:LD_LIBRARY_PATH}
167
-
168
- # --- Install dependencies
169
-
170
- python -m ensurepip --upgrade
171
- python -m pip install torch==${{ matrix.torch }} --index-url https://download.pytorch.org/whl/cu$cudaVersionPytorch
172
- python -m pip install --upgrade setuptools==69.5.1 build wheel safetensors sentencepiece ninja
173
-
174
- # --- Build wheel
175
-
176
- $BUILDTAG = "+cu$cudaVersionPytorch-torch${{ matrix.torch }}"
177
- $env:TORCH_CUDA_ARCH_LIST = '${{ matrix.cudaarch }}'
178
- python -m build -n --wheel -C--build-option=egg_info "-C--build-option=--tag-build=$BUILDTAG"
179
-
180
- # Build sdist
181
-
182
- - name : Build sdist
183
- if : matrix.cuda == '' && matrix.rocm == ''
184
- run : |
185
- # --- Spawn the VS shell
186
- if ($IsWindows) {
187
- Import-Module 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll'
188
- Enter-VsDevShell -VsInstallPath 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools' -DevCmdArguments '-arch=x64 -host_arch=x64'
189
- $env:DISTUTILS_USE_SDK=1
190
- }
191
-
192
- # --- Install dependencies
193
-
194
- python -m pip install torch==${{ matrix.torch }} --index-url https://download.pytorch.org/whl/cpu
195
- python -m pip install build wheel ninja
196
-
197
- # --- Build wheel
198
-
199
- $env:EXLLAMA_NOCOMPILE=1
200
- python -m build -n
201
-
202
122
# Upload files
203
123
204
- - uses : actions/upload-artifact@v4
205
- if : matrix.artname == 'wheel'
206
- with :
207
- name : wheel-${{ matrix.os }}-py${{ matrix.pyver }}-cuda${{ matrix.cuda }}-torch${{ matrix.torch }}
208
- path : ./dist/*
209
-
210
- - uses : actions/upload-artifact@v4
211
- if : matrix.artname == 'sdist'
212
- with :
213
- name : ' sdist'
214
- path : ./dist/*
215
-
216
124
- name : Upload files to GitHub release
217
125
if : steps.package_version.outputs.PACKAGE_VERSION != 'None' && inputs.release == '1'
218
126
uses : svenstaro/upload-release-action@2.6.1
0 commit comments