Koboldcpp Windows #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Koboldcpp Windows | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| commit_hash: | |
| description: 'Optional commit hash to build from' | |
| required: false | |
| default: '' | |
| env: | |
| BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
| jobs: | |
| windows: | |
| runs-on: windows-2022 | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ inputs.commit_hash != '' && inputs.commit_hash || github.head_ref || github.ref_name }} | |
| - name: Show Commit Used | |
| run: | | |
| echo "Building from ref: ${{ inputs.commit_hash != '' && inputs.commit_hash || github.head_ref || github.ref_name }}" | |
| - name: Get Python | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: 3.8.10 | |
| - name: Install python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install customtkinter==5.2.0 pyinstaller==5.11.0 psutil==5.9.5 | |
| - name: Display full Visual Studio info Before | |
| run: | | |
| & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -all -products * -format json | |
| shell: pwsh | |
| - name: Download and install win64devkit | |
| run: | | |
| curl -L https://github.com/skeeto/w64devkit/releases/download/v1.22.0/w64devkit-1.22.0.zip --output w64devkit.zip | |
| Expand-Archive w64devkit.zip -DestinationPath . | |
| - name: Add w64devkit to PATH | |
| run: | | |
| echo "$(Get-Location)\w64devkit\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 | |
| - name: Print System Environment Variables | |
| id: printvars | |
| run: | | |
| echo "Number of processors: ${env:NUMBER_OF_PROCESSORS}" | |
| echo "Processor Architecture: ${env:PROCESSOR_ARCHITECTURE}" | |
| echo "Computer Name: ${env:COMPUTERNAME}" | |
| wmic cpu get name | |
| wmic os get TotalVisibleMemorySize, FreePhysicalMemory | |
| - name: Build Non-CUDA | |
| id: make_build | |
| run: | | |
| make LLAMA_CLBLAST=1 LLAMA_VULKAN=1 LLAMA_PORTABLE=1 -j ${env:NUMBER_OF_PROCESSORS} | |
| - uses: Jimver/[email protected] | |
| id: cuda-toolkit | |
| with: | |
| cuda: '12.4.0' | |
| use-github-cache: false | |
| - name: Build CUDA | |
| id: cmake_build | |
| run: | | |
| mkdir build | |
| cd build | |
| cmake .. -DLLAMA_CUBLAS=ON -DCMAKE_SYSTEM_VERSION="10.0.19041.0" | |
| cmake --build . --config Release -j 2 | |
| cd .. | |
| # note: The libraries that come from the github cuda directory seem to be larger, so they are not recommended | |
| # - name: Download CuBLAS Libraries | |
| # run: | | |
| # curl -L https://github.com/LostRuins/koboldcpp/releases/download/cuda11_cublas_libraries/cublas64_11.dll --output cublas64_11.dll | |
| # curl -L https://github.com/LostRuins/koboldcpp/releases/download/cuda11_cublas_libraries/cublasLt64_11.dll --output cublasLt64_11.dll | |
| # ls | |
| - name: Copy CuBLAS Libraries | |
| run: | | |
| copy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin\cublasLt64_12.dll" . | |
| copy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin\cublas64_12.dll" . | |
| ls | |
| - name: Package PyInstallers | |
| id: make_pyinstaller | |
| run: | | |
| ./make_pyinstaller.bat | |
| ./make_pyinstaller_cuda.bat | |
| - name: Save artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: kcpp_windows_pyinstallers | |
| path: dist/ | |
| - name: Generate VK Instructions | |
| id: gen_vk_instructions | |
| run: | | |
| echo "If you cannot compile vulkan shaders yourself with glslc, you can manually patch in precompiled vulkan shader source files. Copy ggml-vulkan-shaders.cpp and ggml-vulkan-shaders.hpp to the ggml/src subdirectory in KoboldCpp source files before building." > vulkan-readme.txt | |
| - name: Save Standalone Vulkan Shaders | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: vulkan_precompiled_shaders | |
| path: | | |
| ggml/src/ggml-vulkan-shaders.cpp | |
| ggml/src/ggml-vulkan-shaders.hpp | |
| vulkan-readme.txt | |