From f5eaeab21daad0936b69e05d006e7ecf1e8cdf8a Mon Sep 17 00:00:00 2001 From: slaren Date: Mon, 2 Dec 2024 00:17:27 +0100 Subject: [PATCH] wip4 --- .github/workflows/build.yml | 76 +++++++++++++++---------------------- 1 file changed, 30 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e4599c85181dee..6889a8ce9b733f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,40 +33,30 @@ env: LLAMA_LOG_TIMESTAMPS: 1 jobs: - windows-msys2-cpu-x86_64: + windows-mingw-cpu-x86_64: runs-on: windows-latest strategy: fail-fast: false matrix: - arch: [avx, avx2, avx512, amx] include: - - { sys: UCRT64, env: ucrt-x86_64, build: Release } - { arch: avx, defines: '-DGGML_AVX=ON -DGGML_AVX2=OFF -DGGML_AVX512=OFF -DGGML_AMX_TILE=OFF -DGGML_AMX_INT8=OFF' } - - { arch: avx2, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=OFF -DGGML_AMX_TILE=OFF -DGGML_AMX_INT8=OFF' } - - { arch: avx512, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON -DGGML_AMX_TILE=OFF -DGGML_AMX_INT8=OFF' } - - { arch: amx, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON -DGGML_AMX_TILE=ON -DGGML_AMX_INT8=ON' } +# - { arch: avx2, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=OFF -DGGML_AMX_TILE=OFF -DGGML_AMX_INT8=OFF' } +# - { arch: avx512, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON -DGGML_AMX_TILE=OFF -DGGML_AMX_INT8=OFF' } +# - { arch: amx, defines: '-DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON -DGGML_AMX_TILE=ON -DGGML_AMX_INT8=ON' } steps: - name: Clone uses: actions/checkout@v4 - - name: Setup ${{ matrix.sys }} - uses: msys2/setup-msys2@v2 - with: - update: true - msystem: ${{matrix.sys}} - install: >- - base-devel - mingw-w64-${{matrix.env}}-toolchain - mingw-w64-${{matrix.env}}-cmake - mingw-w64-${{matrix.env}}-ninja + - name: Install Ninja + run: | + choco install ninja - name: Build using CMake - shell: msys2 {0} run: | cmake -B build -G "Ninja Multi-Config" -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=ON -DGGML_BACKEND_DL=ON ${{ matrix.defines }} - cmake --build build --config ${{ matrix.build }} -t ggml-cpu + cmake --build build --config Release -t ggml-cpu - name: Rename artifacts run: mv build/bin/Release/ggml-cpu.dll ggml-cpu-${{ matrix.arch }}.dll @@ -78,17 +68,11 @@ jobs: path: ggml-cpu-${{ matrix.arch }}.dll name: ggml-cpu-${{ matrix.arch }}.dll - windows-msys2-x86_64: + windows-mingw-x86_64: runs-on: windows-latest needs: - - windows-msys2-cpu-x86_64 - - strategy: - fail-fast: false - matrix: - include: - - { sys: UCRT64, env: ucrt-x86_64, build: Release } + - windows-mingw-cpu-x86_64 steps: - name: Clone @@ -96,25 +80,25 @@ jobs: with: fetch-depth: 0 - - name: Setup ${{ matrix.sys }} - uses: msys2/setup-msys2@v2 - with: - update: true - msystem: ${{matrix.sys}} - install: >- - base-devel - git - mingw-w64-${{matrix.env}}-toolchain - mingw-w64-${{matrix.env}}-cmake - mingw-w64-${{matrix.env}}-ninja - mingw-w64-${{matrix.env}}-curl + - name: Install Ninja + run: | + choco install ninja + + - name: Download curl for Windows + run: | + curl.exe -O https://curl.se/windows/dl-8.11.0_4/curl-8.11.0_4-win64-mingw.zip + 7z x curl-8.11.0_4-win64-mingw.zip -ocurl - name: Build using CMake - shell: msys2 {0} run: | - cmake -B build -G "Ninja Multi-Config" -DLLAMA_CURL=ON -DLLAMA_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DGGML_BACKEND_DL=ON - cmake --build build --config ${{ matrix.build }} - rm build/bin/Release/ggml-cpu.dll + cmake -B build -G "Ninja Multi-Config" -DLLAMA_CURL=ON -DLLAMA_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DCURL_INCLUDE_DIR="curl/curl-8.11.0_4-win64-mingw/include/" -DCURL_LIBRARY="curl/curl-8.11.0_4-win64-mingw/lib/libcurl.dll.a" + cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} + rm build/bin/Release/ggml-cpu.dll + cp curl/curl-8.11.0_4-win64-mingw/bin/libcurl-x64.dll build/bin/Release + cp /mingw64/bin/libwinpthread-1.dll build/bin/Release + cp /mingw64/bin/libstdc++-6.dll build/bin/Release + cp /mingw64/bin/libgcc_s_seh-1.dll build/bin/Release + cp /mingw64/bin/libgomp-1.dll build/bin/Release - name: Download CPU backend artifacts uses: actions/download-artifact@v4 @@ -141,15 +125,15 @@ jobs: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} run: | Copy-Item LICENSE .\build\bin\Release\llama.cpp.txt - 7z a llama-${{ steps.tag.outputs.name }}-bin-msys2-cpu-${{ matrix.build }}.zip .\build\bin\Release\* + 7z a llama-${{ steps.tag.outputs.name }}-bin-mingw-cpu.zip .\build\bin\Release\* - name: Upload artifacts id: upload_artifacts if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} uses: actions/upload-artifact@v4 with: - path: llama-${{ steps.tag.outputs.name }}-bin-msys2-cpu-${{ matrix.build }}.zip - name: llama-${{ steps.tag.outputs.name }}-bin-msys2-cpu-${{ matrix.build }}.zip + path: llama-${{ steps.tag.outputs.name }}-bin-mingw-cpu.zip + name: llama-${{ steps.tag.outputs.name }}-bin-mingw-cpu.zip release: if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} @@ -157,7 +141,7 @@ jobs: runs-on: ubuntu-latest needs: - - windows-msys2-x86_64 + - windows-mingw-x86_64 steps: - name: Clone