Skip to content

Commit 1f62d57

Browse files
committed
update to v0.3.2 and llama.aio v2.2.1
2 parents d836844 + 7ecdd94 commit 1f62d57

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+9683
-5433
lines changed

.github/dependabot.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,12 @@ updates:
88
- package-ecosystem: "pip" # See documentation for possible values
99
directory: "/" # Location of package manifests
1010
schedule:
11-
interval: "weekly"
11+
interval: "daily"
12+
- package-ecosystem: "github-actions"
13+
directory: "/"
14+
schedule:
15+
interval: "daily"
16+
- package-ecosystem: "docker"
17+
directory: "/"
18+
schedule:
19+
interval: "daily"

.github/workflows/build-and-release.yaml

Lines changed: 86 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,70 +11,134 @@ jobs:
1111
runs-on: ${{ matrix.os }}
1212
strategy:
1313
matrix:
14-
os: [ubuntu-latest, windows-latest, macOS-latest]
14+
os: [ubuntu-20.04, windows-2019, macos-12]
1515

1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1818
with:
1919
submodules: "recursive"
2020

2121
# Used to host cibuildwheel
22-
- uses: actions/setup-python@v3
22+
- uses: actions/setup-python@v5
2323
with:
24-
python-version: "3.8"
24+
python-version: "3.9"
2525

26-
- name: Install cibuildwheel
27-
run: python -m pip install cibuildwheel==2.12.1
26+
- name: Install dependencies (Linux/MacOS)
27+
if: runner.os != 'Windows'
28+
run: |
29+
python -m pip install --upgrade pip
30+
python -m pip install uv
31+
RUST_LOG=trace python -m uv pip install -e .[all] --verbose
32+
shell: bash
2833

29-
- name: Install dependencies
34+
- name: Install dependencies (Windows)
35+
if: runner.os == 'Windows'
36+
env:
37+
RUST_LOG: trace
3038
run: |
3139
python -m pip install --upgrade pip
32-
python -m pip install -e .[all]
40+
python -m pip install uv
41+
python -m uv pip install -e .[all] --verbose
42+
shell: cmd
3343

3444
- name: Build wheels
35-
run: python -m cibuildwheel --output-dir wheelhouse
45+
uses: pypa/cibuildwheel@v2.21.1
3646
env:
3747
# disable repair
3848
CIBW_REPAIR_WHEEL_COMMAND: ""
49+
with:
50+
package-dir: .
51+
output-dir: wheelhouse
3952

40-
- uses: actions/upload-artifact@v3
53+
- uses: actions/upload-artifact@v4
4154
with:
55+
name: wheels-${{ matrix.os }}
56+
path: ./wheelhouse/*.whl
57+
58+
build_wheels_arm64:
59+
name: Build arm64 wheels
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v4
63+
with:
64+
submodules: "recursive"
65+
66+
- name: Set up QEMU
67+
uses: docker/setup-qemu-action@v3
68+
with:
69+
platforms: linux/arm64
70+
71+
- name: Build wheels
72+
uses: pypa/cibuildwheel@v2.21.1
73+
env:
74+
CIBW_SKIP: "*musllinux* pp*"
75+
CIBW_REPAIR_WHEEL_COMMAND: ""
76+
CIBW_ARCHS: "aarch64"
77+
CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-* cp312-*"
78+
with:
79+
output-dir: wheelhouse
80+
81+
- name: Upload wheels as artifacts
82+
uses: actions/upload-artifact@v4
83+
with:
84+
name: wheels_arm64
4285
path: ./wheelhouse/*.whl
4386

4487
build_sdist:
4588
name: Build source distribution
4689
runs-on: ubuntu-latest
4790

4891
steps:
49-
- uses: actions/checkout@v3
92+
- uses: actions/checkout@v4
5093
with:
5194
submodules: "recursive"
52-
- uses: actions/setup-python@v3
95+
96+
- uses: actions/setup-python@v5
5397
with:
54-
python-version: "3.8"
55-
- name: Install dependencies
98+
python-version: "3.9"
99+
100+
- name: Install dependencies (Linux/MacOS)
101+
if: runner.os != 'Windows'
102+
run: |
103+
python -m pip install --upgrade pip
104+
python -m pip install uv
105+
RUST_LOG=trace python -m uv pip install -e .[all] --verbose
106+
python -m uv pip install build
107+
shell: bash
108+
109+
- name: Install dependencies (Windows)
110+
if: runner.os == 'Windows'
111+
env:
112+
RUST_LOG: trace
56113
run: |
57-
python -m pip install --upgrade pip build
58-
python -m pip install -e .[all]
114+
python -m pip install --upgrade pip
115+
python -m pip install uv
116+
python -m uv pip install -e .[all] --verbose
117+
python -m uv pip install build
118+
shell: cmd
119+
59120
- name: Build source distribution
60121
run: |
61122
python -m build --sdist
62-
- uses: actions/upload-artifact@v3
123+
124+
- uses: actions/upload-artifact@v4
63125
with:
126+
name: sdist
64127
path: ./dist/*.tar.gz
65128

66129
release:
67130
name: Release
68-
needs: [build_wheels, build_sdist]
131+
needs: [build_wheels, build_wheels_arm64, build_sdist]
69132
runs-on: ubuntu-latest
70133

71134
steps:
72-
- uses: actions/download-artifact@v3
135+
- uses: actions/download-artifact@v4
73136
with:
74-
name: artifact
137+
merge-multiple: true
75138
path: dist
76-
- uses: softprops/action-gh-release@v1
139+
140+
- uses: softprops/action-gh-release@v2
77141
with:
78142
files: dist/*
79143
env:
80-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
144+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/build-docker.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,26 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout
15-
uses: actions/checkout@v3
15+
uses: actions/checkout@v4
1616
with:
1717
submodules: "recursive"
1818

1919
- name: Set up QEMU
20-
uses: docker/setup-qemu-action@v2
20+
uses: docker/setup-qemu-action@v3
2121

2222
- name: Set up Docker Buildx
23-
uses: docker/setup-buildx-action@v2
23+
uses: docker/setup-buildx-action@v3
2424

2525
- name: Login to GitHub Container Registry
26-
uses: docker/login-action@v2
26+
uses: docker/login-action@v3
2727
with:
2828
registry: ghcr.io
2929
username: ${{ github.repository_owner }}
3030
password: ${{ secrets.GITHUB_TOKEN }}
3131

3232
- name: Build and push
3333
id: docker_build
34-
uses: docker/build-push-action@v4
34+
uses: docker/build-push-action@v6
3535
with:
3636
context: .
3737
file: "docker/simple/Dockerfile"
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
name: Build Wheels (CUDA)
2+
3+
on: workflow_dispatch
4+
5+
permissions:
6+
contents: write
7+
8+
jobs:
9+
define_matrix:
10+
name: Define Build Matrix
11+
runs-on: ubuntu-latest
12+
outputs:
13+
matrix: ${{ steps.set-matrix.outputs.matrix }}
14+
defaults:
15+
run:
16+
shell: pwsh
17+
18+
steps:
19+
- name: Define Job Output
20+
id: set-matrix
21+
run: |
22+
$matrix = @{
23+
'os' = @('ubuntu-latest', 'windows-2019')
24+
'pyver' = @("3.9", "3.10", "3.11", "3.12")
25+
'cuda' = @("12.1.1", "12.2.2", "12.3.2", "12.4.1", "12.5.0")
26+
'releasetag' = @("basic")
27+
}
28+
29+
$matrixOut = ConvertTo-Json $matrix -Compress
30+
Write-Output ('matrix=' + $matrixOut) >> $env:GITHUB_OUTPUT
31+
32+
build_wheels:
33+
name: Build Wheel ${{ matrix.os }} ${{ matrix.pyver }} ${{ matrix.cuda }} ${{ matrix.releasetag == 'wheels' && 'AVX2' || matrix.releasetag }}
34+
needs: define_matrix
35+
runs-on: ${{ matrix.os }}
36+
strategy:
37+
matrix: ${{ fromJSON(needs.define_matrix.outputs.matrix) }}
38+
defaults:
39+
run:
40+
shell: pwsh
41+
env:
42+
CUDAVER: ${{ matrix.cuda }}
43+
AVXVER: ${{ matrix.releasetag }}
44+
45+
steps:
46+
- name: Add MSBuild to PATH
47+
if: runner.os == 'Windows'
48+
uses: microsoft/setup-msbuild@v2
49+
with:
50+
vs-version: '[16.11,16.12)'
51+
52+
- uses: actions/checkout@v4
53+
with:
54+
submodules: "recursive"
55+
56+
- uses: actions/setup-python@v5
57+
with:
58+
python-version: ${{ matrix.pyver }}
59+
cache: 'pip'
60+
61+
- name: Setup Mamba
62+
uses: conda-incubator/setup-miniconda@v3.0.4
63+
with:
64+
activate-environment: "build"
65+
python-version: ${{ matrix.pyver }}
66+
miniforge-variant: Mambaforge
67+
miniforge-version: latest
68+
use-mamba: true
69+
add-pip-as-python-dependency: true
70+
auto-activate-base: false
71+
72+
- name: VS Integration Cache
73+
id: vs-integration-cache
74+
if: runner.os == 'Windows'
75+
uses: actions/cache@v4
76+
with:
77+
path: ./MSBuildExtensions
78+
key: cuda-${{ matrix.cuda }}-vs-integration
79+
80+
- name: Get Visual Studio Integration
81+
if: runner.os == 'Windows' && steps.vs-integration-cache.outputs.cache-hit != 'true'
82+
run: |
83+
if ($env:CUDAVER -eq '12.1.1') {$x = '12.1.0'} else {$x = $env:CUDAVER}
84+
$links = (Invoke-RestMethod 'https://raw.githubusercontent.com/Jimver/cuda-toolkit/master/src/links/windows-links.ts').Trim().split().where({$_ -ne ''})
85+
for ($i=$q=0;$i -lt $links.count -and $q -lt 2;$i++) {if ($links[$i] -eq "'$x',") {$q++}}
86+
Invoke-RestMethod $links[$i].Trim("'") -OutFile 'cudainstaller.zip'
87+
& 'C:\Program Files\7-Zip\7z.exe' e cudainstaller.zip -oMSBuildExtensions -r *\MSBuildExtensions\* > $null
88+
Remove-Item 'cudainstaller.zip'
89+
90+
- name: Install Visual Studio Integration
91+
if: runner.os == 'Windows'
92+
run: |
93+
$y = (gi '.\MSBuildExtensions').fullname + '\*'
94+
(gi 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\*\BuildCustomizations').fullname.foreach({cp $y $_})
95+
$cupath = 'CUDA_PATH_V' + $env:CUDAVER.Remove($env:CUDAVER.LastIndexOf('.')).Replace('.','_')
96+
echo "$cupath=$env:CONDA_PREFIX" >> $env:GITHUB_ENV
97+
98+
- name: Install Dependencies
99+
env:
100+
MAMBA_DOWNLOAD_FAILFAST: "0"
101+
MAMBA_NO_LOW_SPEED_LIMIT: "1"
102+
run: |
103+
$cudaVersion = $env:CUDAVER
104+
mamba install -y 'cuda' -c nvidia/label/cuda-$cudaVersion
105+
python -m pip install build wheel
106+
107+
- name: Build Wheel
108+
run: |
109+
$cudaVersion = $env:CUDAVER.Remove($env:CUDAVER.LastIndexOf('.')).Replace('.','')
110+
$env:CUDA_PATH = $env:CONDA_PREFIX
111+
$env:CUDA_HOME = $env:CONDA_PREFIX
112+
$env:CUDA_TOOLKIT_ROOT_DIR = $env:CONDA_PREFIX
113+
if ($IsLinux) {
114+
$env:LD_LIBRARY_PATH = $env:CONDA_PREFIX + '/lib:' + $env:LD_LIBRARY_PATH
115+
}
116+
$env:VERBOSE = '1'
117+
$env:CMAKE_ARGS = '-DGGML_CUDA=on -DCMAKE_CUDA_ARCHITECTURES=all'
118+
$env:CMAKE_ARGS = "-DGGML_CUDA_FORCE_MMQ=ON $env:CMAKE_ARGS"
119+
# if ($env:AVXVER -eq 'AVX') {
120+
$env:CMAKE_ARGS = $env:CMAKE_ARGS + ' -DGGML_AVX2=off -DGGML_FMA=off -DGGML_F16C=off'
121+
# }
122+
# if ($env:AVXVER -eq 'AVX512') {
123+
# $env:CMAKE_ARGS = $env:CMAKE_ARGS + ' -DGGML_AVX512=on'
124+
# }
125+
# if ($env:AVXVER -eq 'basic') {
126+
# $env:CMAKE_ARGS = $env:CMAKE_ARGS + ' -DGGML_AVX=off -DGGML_AVX2=off -DGGML_FMA=off -DGGML_F16C=off'
127+
# }
128+
python -m build --wheel
129+
# write the build tag to the output
130+
Write-Output "CUDA_VERSION=$cudaVersion" >> $env:GITHUB_ENV
131+
132+
- uses: softprops/action-gh-release@v2
133+
with:
134+
files: dist/*
135+
# Set tag_name to <tag>-cu<cuda_version>
136+
tag_name: ${{ github.ref_name }}-cu${{ env.CUDA_VERSION }}
137+
env:
138+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)