Skip to content

Build Test Koboldcpp-ROCm Windows #5

Build Test Koboldcpp-ROCm Windows

Build Test Koboldcpp-ROCm Windows #5

name: Test Build Koboldcpp-ROCm Windows
on:
workflow_dispatch:
inputs:
version:
description: 'Version tag of koboldcpp-rocm to test: v1.48.1.yr0-ROCm'
default: latest
required: false
type: string
workflow_call:
inputs:
version:
description: 'Version tag of koboldcpp-rocm to test: v1.48.1.yr0-ROCm'
default: latest
required: false
type: string
permissions:
contents: write
jobs:
build_libs:
name: Test Build ROCm Lib
runs-on: windows-latest
defaults:
run:
shell: pwsh
steps:
- uses: actions/checkout@v3
with:
repository: 'YellowRoseCx/koboldcpp-rocm'
ref: main
submodules: 'recursive'
- name: Install ROCm SDK
run: |
curl -LO https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-23.Q3-Win10-Win11-For-HIP.exe
Start-Process 'AMD-Software-PRO-Edition-23.Q3-Win10-Win11-For-HIP.exe' -ArgumentList '-install' -NoNewWindow -Wait
echo "C:\Program Files\AMD\ROCm\5.5\bin" >> $env:GITHUB_PATH
echo 'ROCM_PATH=C:\Program Files\AMD\ROCm\5.5' >> $env:GITHUB_ENV
echo 'HIP_PATH=C:\Program Files\AMD\ROCm\5.5' >> $env:GITHUB_ENV
echo "ROCM_VERSION=5.5.1" >> $env:GITHUB_ENV
- uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install Dependencies
run: |
python -m pip install cmake ninja
- name: Install PyInstaller
run: pip install pyinstaller psutil
- name: Test Build Lib
run: |
$env:CC = 'C:\Program Files\AMD\ROCm\5.5\bin\clang.exe'
$env:CXX = 'C:\Program Files\AMD\ROCm\5.5\bin\clang++.exe'
$env:CMAKE_PREFIX_PATH = 'C:\Program Files\AMD\ROCm\5.5'
$env:VERBOSE = '1'
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
mkdir 'build'
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build'
Get-Location
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DLLAMA_HIPBLAS=ON -DCMAKE_C_COMPILER="C:/Program Files/AMD/ROCm/5.5/bin/clang.exe" -DCMAKE_CXX_COMPILER="C:/Program Files/AMD/ROCm/5.5/bin/clang++.exe" -DAMDGPU_TARGETS="gfx803;gfx900;gfx906;gfx908;gfx90a;gfx1010;gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102"
cmake --build . -j2
- name: Copy ROCm DLLs and Run PyInstaller
run: |
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
Get-Location
copy "C:\Program Files\AMD\ROCm\5.5\bin\hipblas.dll" .\
copy "C:\Program Files\AMD\ROCm\5.5\bin\rocblas.dll" .\
robocopy "C:\Program Files\AMD\ROCm\5.5\bin\rocblas" .\rocblas /MIR
pip install customtkinter
PyInstaller --noconfirm --onefile --collect-all customtkinter --clean --console --icon ".\niko.ico" --add-data "./klite.embd;." --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_only.exe"
# curl -LO https://github.com/YellowRoseCx/koboldcpp-rocm/releases/download/v1.43.2-ROCm/gfx103132rocblasfiles.7z
# 7z x gfx103132rocblasfiles.7z
- uses: actions/upload-artifact@v3
with:
name: koboldcpp_hipblas-${{ inputs.version }}
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll
- uses: actions/upload-artifact@v3
with:
name: koboldcpp_rocm_only-${{ inputs.version }}
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm_only.exe
# - name: Upload files to a GitHub release
# id: upload-release
# uses: svenstaro/[email protected]
# continue-on-error: true
# with:
# file: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm_only.exe
# release_name: KoboldCPP-${{ inputs.version }}
# tag: ${{ inputs.version }}
# file_glob: false
# make_latest: true
# overwrite: false
# Copy-Item 'D:\a\koboldcpp-rocm\koboldcpp-rocm\build\bin\koboldcpp_hipblas.dll' '..\..\build'