Skip to content

Commit 2e3f327

Browse files
committed
Merge branch 'pr/155' into rosefranken
2 parents f1ea889 + 4aa091e commit 2e3f327

11 files changed

+904
-65
lines changed
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
name: Build Koboldcpp-ROCm Windows
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: 'Version tag of koboldcpp-rocm to build: v1.67.yr0-ROCm'
8+
default: v1.67.yr0-ROCm
9+
required: false
10+
type: string
11+
workflow_call:
12+
inputs:
13+
version:
14+
description: 'Version tag of koboldcpp-rocm to build: v1.67.yr0-ROCm'
15+
default: v1.67.yr0-ROCm
16+
required: false
17+
type: string
18+
19+
permissions:
20+
contents: write
21+
22+
jobs:
23+
build_libs:
24+
name: Build ROCm Lib
25+
runs-on: windows-latest
26+
defaults:
27+
run:
28+
shell: pwsh
29+
30+
steps:
31+
- uses: actions/checkout@v3
32+
with:
33+
repository: 'YellowRoseCx/koboldcpp-rocm'
34+
ref: main
35+
submodules: 'recursive'
36+
37+
- name: Setup MSYS2
38+
uses: msys2/setup-msys2@v2
39+
with:
40+
update: true
41+
install: >-
42+
base-devel
43+
mingw-w64-x86_64-toolchain
44+
45+
- name: Build CLBLAST & Others with make
46+
run: |
47+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
48+
Get-Location
49+
ls
50+
make CC=gcc LLAMA_CLBLAST=1 LLAMA_OPENBLAS=1 LLAMA_VULKAN=1 -j2
51+
52+
- name: Setup cmake
53+
uses: jwlawson/actions-setup-cmake@v2
54+
55+
- name: Install ROCm SDK
56+
run: |
57+
curl -LO https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe
58+
Start-Process 'AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe' -ArgumentList '-install' -NoNewWindow -Wait
59+
echo "C:\Program Files\AMD\ROCm\5.7\bin" >> $env:GITHUB_PATH
60+
echo 'ROCM_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
61+
echo 'HIP_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
62+
echo "ROCM_VERSION=5.7.1" >> $env:GITHUB_ENV
63+
64+
- uses: actions/setup-python@v3
65+
with:
66+
python-version: "3.10"
67+
68+
- name: Install Dependencies
69+
run: |
70+
python -m pip install cmake ninja
71+
72+
- name: Install LLVM and Clang
73+
uses: KyleMayes/install-llvm-action@v2
74+
with:
75+
version: "18.1.4"
76+
force-url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.4/LLVM-18.1.4-win64.exe"
77+
78+
- name: Install PyInstaller
79+
run: pip install pyinstaller==6.4.0 psutil
80+
81+
- name: Build Lib
82+
run: |
83+
Set-Location 'C:\Program Files\AMD\ROCm\5.7\bin'
84+
Get-Location
85+
curl -LO https://github.com/YellowRoseCx/koboldcpp-rocm/releases/download/v1.43.2-ROCm/gfx103132rocblasfiles.zip
86+
7z x gfx103132rocblasfiles.zip
87+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
88+
$env:CC = 'C:\Program Files\AMD\ROCm\5.7\bin\clang.exe'
89+
$env:CXX = 'C:\Program Files\AMD\ROCm\5.7\bin\clang++.exe'
90+
$env:CMAKE_PREFIX_PATH = 'C:\Program Files\AMD\ROCm\5.7'
91+
$env:VERBOSE = '1'
92+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
93+
mkdir 'build'
94+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build'
95+
Get-Location
96+
cmake --version
97+
clang --version
98+
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DLLAMA_HIPBLAS=ON -DHIP_PLATFORM=amd -DAMDGPU_TARGETS="gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102"
99+
cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
100+
# -DCMAKE_C_COMPILER="C:\Program Files\AMD\ROCm\5.7\bin\clang.exe" -DCMAKE_CXX_COMPILER="C:\Program Files\AMD\ROCm\5.7\bin\clang++.exe"
101+
- name: Copy ROCm DLLs and Run PyInstaller
102+
run: |
103+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
104+
Get-Location
105+
copy "C:\Program Files\AMD\ROCm\5.7\bin\hipblas.dll" .\
106+
copy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas.dll" .\
107+
robocopy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas" .\rocblas /MIR
108+
pip install customtkinter
109+
PyInstaller --noconfirm --onefile --collect-all customtkinter --clean --console --icon ".\niko.ico" --add-data "./klite.embd;." --add-data "./winclinfo.exe;." --add-data "./OpenCL.dll;." --add-data "./kcpp_docs.embd;." --add-data "./koboldcpp_default.dll;." --add-data "./koboldcpp_openblas.dll;." --add-data "./koboldcpp_failsafe.dll;." --add-data "./koboldcpp_noavx2.dll;." --add-data "./libopenblas.dll;." --add-data "./koboldcpp_clblast.dll;." --add-data "./koboldcpp_clblast_noavx2.dll;." --add-data "./clblast.dll;." --add-data "./koboldcpp_vulkan.dll;." --add-data "./vulkan-1.dll;." --add-data "D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll;." --add-data "./hipblas.dll;." --add-data "./rocblas.dll;." --add-data "./rwkv_vocab.embd;." --add-data "./rwkv_world_vocab.embd;." --add-data "./rocblas;." --add-data "C:/Windows/System32/msvcp140.dll;." --add-data "C:/Windows/System32/vcruntime140_1.dll;." "./koboldcpp.py" -n "koboldcpp_rocm.exe"
110+
111+
112+
- name: Create ZIP archive
113+
run: |
114+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
115+
Compress-Archive -Path D:\a\koboldcpp-rocm\koboldcpp-rocm\klite.embd, D:\a\koboldcpp-rocm\koboldcpp-rocm\winclinfo.exe, D:\a\koboldcpp-rocm\koboldcpp-rocm\OpenCL.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\kcpp_docs.embd, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_default.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_openblas.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_failsafe.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_noavx2.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\libopenblas.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_vulkan.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_clblast.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp_clblast_noavx2.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\clblast.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\hipblas.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\rocblas.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\rwkv_vocab.embd, D:\a\koboldcpp-rocm\koboldcpp-rocm\rwkv_world_vocab.embd, D:\a\koboldcpp-rocm\koboldcpp-rocm\rocblas, D:\a\koboldcpp-rocm\koboldcpp-rocm\msvcp140.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\vcruntime140_1.dll, D:\a\koboldcpp-rocm\koboldcpp-rocm\koboldcpp.py -DestinationPath koboldcpp_rocm_files.zip
116+
copy "koboldcpp_rocm_files.zip" D:\a\koboldcpp-rocm\koboldcpp-rocm\dist
117+
118+
119+
- uses: actions/upload-artifact@v4.3.3
120+
with:
121+
name: koboldcpp_hipblas-${{ inputs.version }}
122+
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll
123+
124+
- uses: actions/upload-artifact@v4.3.3
125+
with:
126+
name: koboldcpp_rocm_only-${{ inputs.version }}
127+
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm.exe
128+
129+
- uses: actions/upload-artifact@v4.3.3
130+
with:
131+
name: koboldcpp_rocm_zip-${{ inputs.version }}
132+
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm_files.zip
133+
134+
- name: Upload files to a GitHub release
135+
id: upload-release
136+
uses: svenstaro/upload-release-action@2.9.0
137+
continue-on-error: true
138+
with:
139+
file_glob: true
140+
file: D:/a/koboldcpp-rocm/koboldcpp-rocm/dist/*.*
141+
release_name: KoboldCPP-${{ inputs.version }}
142+
tag: ${{ inputs.version }}
143+
make_latest: true
144+
prerelease: true
145+
overwrite: false
146+
147+
148+
149+
150+
# Copy-Item 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll' '..\..\build'
151+
# build_wheel:
152+
# name: Build ROCm
153+
# runs-on: windows-latest
154+
# needs: build_libs
155+
# strategy:
156+
# matrix:
157+
# pyver: ["3.8", "3.9", "3.10", "3.11"]
158+
# defaults:
159+
# run:
160+
# shell: pwsh
161+
# env:
162+
# PCKGVER: ${{ inputs.version }}
163+
164+
# steps:
165+
# - uses: actions/checkout@v3
166+
# with:
167+
# repository: 'YellowRoseCx/koboldcpp-rocm'
168+
# ref: ${{ inputs.version }}
169+
170+
# - uses: actions/download-artifact@v3
171+
# with:
172+
# name: 'win-rocm-lib'
173+
# path: ./koboldcpp-rocm
174+
175+
# - uses: actions/setup-python@v3
176+
# with:
177+
# python-version: ${{ matrix.pyver }}
178+
179+
# - name: Install Dependencies
180+
# run: |
181+
# python -m pip install build wheel cmake scikit-build ninja
182+
183+
# - name: Build Wheel
184+
# run: |
185+
# $packageVersion = [version]$env:PCKGVER.TrimStart('v')
186+
# $setup = Get-Content 'setup.py' -raw
187+
# if ($packageVersion -lt [version]'0.1.78') {$newsetup = $setup.Replace("packages=[`"llama_cpp`", `"llama_cpp.server`"],","packages=[`"llama_cpp`", `"llama_cpp.server`"],`n package_data={'llama_cpp': ['llama.dll']},")}
188+
# if ($packageVersion -gt [version]'0.1.77') {$newsetup = $setup.Replace('package_data={"llama_cpp": ["py.typed"]},','package_data={"llama_cpp": ["py.typed", "llama.dll"]},')}
189+
# New-Item 'setup.py' -itemType File -value $newsetup -force
190+
# python setup.py --skip-cmake bdist_wheel egg_info --tag-build=+rocm5.5.1
191+
192+
# - name: Upload files to a GitHub release
193+
# id: upload-release
194+
# uses: svenstaro/upload-release-action@2.6.1
195+
# continue-on-error: true
196+
# with:
197+
# file: ./dist/*.whl
198+
# tag: rocm
199+
# file_glob: true
200+
# make_latest: false
201+
# overwrite: true
202+
203+
# - uses: actions/upload-artifact@v3
204+
# if: steps.upload-release.outcome == 'failure'
205+
# with:
206+
# name: 'win-rocm-wheels'
207+
# path: ./dist/*.whl
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
name: Test Build Koboldcpp-ROCm Windows
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: 'Version tag of koboldcpp-rocm to test: v1.51.0.yr0-ROCm'
8+
default: v1.51.0.yr0-ROCm
9+
required: false
10+
type: string
11+
workflow_call:
12+
inputs:
13+
version:
14+
description: 'Version tag of koboldcpp-rocm to test: v1.51.0.yr0-ROCm'
15+
default: v1.51.0.yr0-ROCm
16+
required: false
17+
type: string
18+
19+
permissions:
20+
contents: write
21+
22+
jobs:
23+
build_libs:
24+
name: Test Build ROCm Lib
25+
runs-on: windows-latest
26+
defaults:
27+
run:
28+
shell: pwsh
29+
30+
steps:
31+
- uses: actions/checkout@v3
32+
with:
33+
repository: 'YellowRoseCx/koboldcpp-rocm'
34+
ref: main
35+
submodules: 'recursive'
36+
37+
- name: Setup MSYS2
38+
uses: msys2/setup-msys2@v2
39+
with:
40+
update: true
41+
install: >-
42+
base-devel
43+
mingw-w64-x86_64-toolchain
44+
45+
- name: Build CLBLAST & Others with make
46+
run: |
47+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
48+
Get-Location
49+
ls
50+
make CC=gcc LLAMA_CLBLAST=1 LLAMA_OPENBLAS=1 -j2
51+
52+
- name: Install ROCm SDK
53+
run: |
54+
curl -LO https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe
55+
Start-Process 'AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe' -ArgumentList '-install' -NoNewWindow -Wait
56+
echo "C:\Program Files\AMD\ROCm\5.7\bin" >> $env:GITHUB_PATH
57+
echo 'ROCM_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
58+
echo 'HIP_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
59+
echo "ROCM_VERSION=5.7.1" >> $env:GITHUB_ENV
60+
61+
- uses: actions/setup-python@v3
62+
with:
63+
python-version: "3.10"
64+
65+
- name: Install Dependencies
66+
run: |
67+
python -m pip install cmake ninja
68+
69+
- name: Install PyInstaller
70+
run: pip install pyinstaller psutil
71+
72+
- name: Test Build Lib
73+
run: |
74+
$env:CC = 'C:\Program Files\AMD\ROCm\5.7\bin\clang.exe'
75+
$env:CXX = 'C:\Program Files\AMD\ROCm\5.7\bin\clang++.exe'
76+
$env:CMAKE_PREFIX_PATH = 'C:\Program Files\AMD\ROCm\5.7'
77+
$env:VERBOSE = '1'
78+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
79+
mkdir 'build'
80+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build'
81+
Get-Location
82+
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DLLAMA_HIPBLAS=ON -DHIP_PLATFORM=amd -DCMAKE_C_COMPILER="C:/Program Files/AMD/ROCm/5.7/bin/clang.exe" -DCMAKE_CXX_COMPILER="C:/Program Files/AMD/ROCm/5.7/bin/clang++.exe" -DAMDGPU_TARGETS="gfx803;gfx900;gfx906;gfx908;gfx90a;gfx1010;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102"
83+
cmake --build . -j2
84+
85+
- name: Copy ROCm DLLs and Run PyInstaller
86+
run: |
87+
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
88+
Get-Location
89+
copy "C:\Program Files\AMD\ROCm\5.7\bin\hipblas.dll" .\
90+
copy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas.dll" .\
91+
robocopy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas" .\rocblas /MIR
92+
pip install customtkinter
93+
PyInstaller --noconfirm \
94+
--onefile \
95+
--collect-all customtkinter \
96+
--clean \
97+
--console \
98+
--icon ".\niko.ico" \
99+
--add-data "./klite.embd;." \
100+
--add-data "./winclinfo.exe;." \
101+
--add-data "./OpenCL.dll;." \
102+
--add-data "./kcpp_docs.embd;." \
103+
--add-data "./koboldcpp_default.dll;." \
104+
--add-data "./koboldcpp_openblas.dll;." \
105+
--add-data "./koboldcpp_failsafe.dll;." \
106+
--add-data "./koboldcpp_noavx2.dll;." \
107+
--add-data "./libopenblas.dll;." \
108+
--add-data "./koboldcpp_clblast.dll;." \
109+
--add-data "./koboldcpp_clblast_noavx2.dll;." \
110+
--add-data "./clblast.dll;." \
111+
--add-data "D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll;." \
112+
--add-data "./hipblas.dll;." \
113+
--add-data "./rocblas.dll;." \
114+
--add-data "./rwkv_vocab.embd;." \
115+
--add-data "./rwkv_world_vocab.embd;." \
116+
--add-data "./rocblas;." \
117+
--add-data "C:/Windows/System32/msvcp140.dll;." \
118+
--add-data "C:/Windows/System32/vcruntime140_1.dll;." \
119+
"./koboldcpp.py" \
120+
-n "koboldcpp_rocm.exe"
121+
# curl -LO https://github.com/YellowRoseCx/koboldcpp-rocm/releases/download/v1.43.2-ROCm/gfx103132rocblasfiles.7z
122+
# 7z x gfx103132rocblasfiles.7z
123+
124+
- uses: actions/upload-artifact@v3
125+
with:
126+
name: koboldcpp_hipblas-${{ inputs.version }}
127+
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll
128+
129+
- uses: actions/upload-artifact@v3
130+
with:
131+
name: koboldcpp_rocm-${{ inputs.version }}
132+
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm.exe
133+
134+
# - name: Upload files to a GitHub release
135+
# id: upload-release
136+
# uses: svenstaro/upload-release-action@2.6.1
137+
# continue-on-error: true
138+
# with:
139+
# file: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm_only.exe
140+
# release_name: KoboldCPP-${{ inputs.version }}
141+
# tag: ${{ inputs.version }}
142+
# file_glob: false
143+
# make_latest: true
144+
# overwrite: false
145+
146+
# Copy-Item 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll' '..\..\build'

0 commit comments

Comments
 (0)