Skip to content

Commit

Permalink
Update Python setup
Browse files Browse the repository at this point in the history
  • Loading branch information
YellowRoseCx authored Nov 2, 2024
1 parent b1ce5bd commit 54e81ef
Showing 1 changed file with 80 additions and 99 deletions.
179 changes: 80 additions & 99 deletions .github/workflows/tests-rocm-windows.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: Test Build Koboldcpp-ROCm Windows
name: Build Test Koboldcpp-ROCm Windows

on:
workflow_dispatch:
inputs:
version:
description: 'Version tag of koboldcpp-rocm to test: v1.51.0.yr0-ROCm'
default: v1.51.0.yr0-ROCm
description: 'Version tag of koboldcpp-rocm to build: v1.76.yr0-ROCm'
default: v1.76.yr0-ROCm
required: false
type: string
workflow_call:
inputs:
version:
description: 'Version tag of koboldcpp-rocm to test: v1.51.0.yr0-ROCm'
default: v1.51.0.yr0-ROCm
description: 'Version tag of koboldcpp-rocm to build: v1.76.yr-ROCm'
default: v1.76.yr0-ROCm
required: false
type: string

Expand All @@ -21,17 +21,17 @@ permissions:

jobs:
build_libs:
name: Test Build ROCm Lib
name: Build ROCm Lib
runs-on: windows-latest
defaults:
run:
shell: pwsh

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
repository: 'YellowRoseCx/koboldcpp-rocm'
ref: main
ref: Githubactionstest
submodules: 'recursive'

- name: Setup MSYS2
Expand All @@ -42,105 +42,86 @@ jobs:
base-devel
mingw-w64-x86_64-toolchain
- name: Build CLBLAST & Others with make
run: |
Set-Location 'D:\a\koboldcpp-rocm\koboldcpp-rocm'
Get-Location
ls
make CC=gcc LLAMA_CLBLAST=1 LLAMA_OPENBLAS=1 -j2
- name: Install ROCm SDK
run: |
curl -LO https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe
Start-Process 'AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe' -ArgumentList '-install' -NoNewWindow -Wait
echo "C:\Program Files\AMD\ROCm\5.7\bin" >> $env:GITHUB_PATH
echo 'ROCM_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
echo 'HIP_PATH=C:\Program Files\AMD\ROCm\5.7' >> $env:GITHUB_ENV
echo "ROCM_VERSION=5.7.1" >> $env:GITHUB_ENV
- uses: actions/setup-python@v3
- uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.10.15"

- name: Install Dependencies
run: |
python --version
python -m pip install cmake ninja
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "18.1.4"
force-url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.4/LLVM-18.1.4-win64.exe"

- name: Install PyInstaller
run: pip install pyinstaller psutil
run: pip --version
pip3 --version
python -m pip install --upgrade pip setuptools wheel
python -m pip install pyinstaller==6.11.0 psutil


- name: Test Build Lib
run: |
$env:CC = 'C:\Program Files\AMD\ROCm\5.7\bin\clang.exe'
$env:CXX = 'C:\Program Files\AMD\ROCm\5.7\bin\clang++.exe'
$env:CMAKE_PREFIX_PATH = 'C:\Program Files\AMD\ROCm\5.7'
$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 -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"
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.7\bin\hipblas.dll" .\
copy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas.dll" .\
robocopy "C:\Program Files\AMD\ROCm\5.7\bin\rocblas" .\rocblas /MIR
pip install customtkinter
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 "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"
# 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-${{ inputs.version }}
path: D:\a\koboldcpp-rocm\koboldcpp-rocm\dist\koboldcpp_rocm.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'
# build_wheel:
# name: Build ROCm
# runs-on: windows-latest
# needs: build_libs
# strategy:
# matrix:
# pyver: ["3.8", "3.9", "3.10", "3.11"]
# defaults:
# run:
# shell: pwsh
# env:
# PCKGVER: ${{ inputs.version }}

# steps:
# - uses: actions/checkout@v3
# with:
# repository: 'YellowRoseCx/koboldcpp-rocm'
# ref: ${{ inputs.version }}

# - uses: actions/download-artifact@v3
# with:
# name: 'win-rocm-lib'
# path: ./koboldcpp-rocm

# - uses: actions/setup-python@v3
# with:
# python-version: ${{ matrix.pyver }}

# - name: Install Dependencies
# run: |
# python -m pip install build wheel cmake scikit-build ninja

# - name: Build Wheel
# run: |
# $packageVersion = [version]$env:PCKGVER.TrimStart('v')
# $setup = Get-Content 'setup.py' -raw
# 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']},")}
# if ($packageVersion -gt [version]'0.1.77') {$newsetup = $setup.Replace('package_data={"llama_cpp": ["py.typed"]},','package_data={"llama_cpp": ["py.typed", "llama.dll"]},')}
# New-Item 'setup.py' -itemType File -value $newsetup -force
# python setup.py --skip-cmake bdist_wheel egg_info --tag-build=+rocm5.5.1

# - name: Upload files to a GitHub release
# id: upload-release
# uses: svenstaro/[email protected]
# continue-on-error: true
# with:
# file: ./dist/*.whl
# tag: rocm
# file_glob: true
# make_latest: false
# overwrite: true

# - uses: actions/upload-artifact@v3
# if: steps.upload-release.outcome == 'failure'
# with:
# name: 'win-rocm-wheels'
# path: ./dist/*.whl

0 comments on commit 54e81ef

Please sign in to comment.