From 7ebe28e2e67bf877b2016c56bed1b5e250abb53a Mon Sep 17 00:00:00 2001 From: Emmanuel Adebiyi Date: Sat, 4 May 2024 23:24:23 +0100 Subject: [PATCH 1/4] add android support --- .github/workflows/compile.yml | 40 ++++++++++++++++++- .../build/LLamaSharp.Backend.Cpu.nuspec | 3 ++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index faf796c82..090271763 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -312,6 +312,41 @@ jobs: with: path: ./build/bin/ggml-metal.metal name: ggml-metal.metal + + compile-android: + name: Compile (Android) + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + with: + repository: ggerganov/llama.cpp + fetch-depth: 0 + ref: '${{ github.event.inputs.llama_cpp_commit }}' + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26d + add-to-path: false + - name: Build + id: cmake_build + env: + CMAKE_FLAGS: '-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23' + run: | + mkdir build + cd build + cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} + cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS} + - name: Upload Llama + uses: actions/upload-artifact@v4 + with: + path: ./build/libllama.so + name: llama-bin-android-arm64.so + - name: Upload Llava + uses: actions/upload-artifact@v4 + with: + path: ./build/examples/llava/libllava_shared.so + name: llava-bin-android-arm64.so + build-deps: runs-on: ubuntu-latest @@ -321,6 +356,7 @@ jobs: "compile-linux", "compile-macos", "compile-windows", + "compile-android", "compile-cublas", "compile-clblast" ] @@ -333,7 +369,7 @@ jobs: - name: Rearrange Files run: | # Make all directories at once - mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,cu11.7.1,cu12.1.0,clblast} + mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,android-arm64,cu11.7.1,cu12.1.0,clblast} cp artifacts/llama-bin-linux-noavx-x64.so/libllama.so deps/libllama.so cp artifacts/llama-bin-linux-avx-x64.so/libllama.so deps/avx/libllama.so @@ -384,6 +420,8 @@ jobs: cp artifacts/llama-bin-linux-clblast-x64.so/libllama.so deps/clblast/ cp artifacts/llava-bin-linux-clblast-x64.so/libllava_shared.so deps/clblast/libllava_shared.so + cp artifacts/llama-bin-android-arm64.so/libllama.so deps/android-arm64/libllama.so + cp artifacts/llava-bin-android-arm64.so/libllava_shared.so deps/android-arm64/libllava_shared.so - name: Upload artifacts uses: actions/upload-artifact@v4 diff --git a/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec b/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec index 5c439e14b..531640a69 100644 --- a/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec +++ b/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec @@ -44,6 +44,9 @@ + + + From 8b2c686ac22b8a0fa161c5ae9019b033c3f18a79 Mon Sep 17 00:00:00 2001 From: Emmanuel Adebiyi Date: Wed, 29 May 2024 19:44:46 +0100 Subject: [PATCH 2/4] add support for other architectures --- .github/workflows/compile.yml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 090271763..902095ed8 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -315,6 +315,16 @@ jobs: compile-android: name: Compile (Android) + strategy: + fail-fast: true + matrix: + include: + - build: 'x86' + defines: '-DANDROID_ABI=x86' + - build: 'x86_64' + defines: '-DANDROID_ABI=x86_64' + - build: 'arm64-v8a' + defines: '-DANDROID_ABI=arm64-v8a' runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 @@ -330,22 +340,22 @@ jobs: - name: Build id: cmake_build env: - CMAKE_FLAGS: '-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23' + CMAKE_FLAGS: '-DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23' run: | mkdir build cd build - cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} + cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} ${{ matrix.defines }} cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS} - name: Upload Llama uses: actions/upload-artifact@v4 with: path: ./build/libllama.so - name: llama-bin-android-arm64.so + name: llama-bin-android-${{ matrix.build }}.so - name: Upload Llava uses: actions/upload-artifact@v4 with: path: ./build/examples/llava/libllava_shared.so - name: llava-bin-android-arm64.so + name: llava-bin-android-${{ matrix.build }}.so build-deps: @@ -420,8 +430,14 @@ jobs: cp artifacts/llama-bin-linux-clblast-x64.so/libllama.so deps/clblast/ cp artifacts/llava-bin-linux-clblast-x64.so/libllava_shared.so deps/clblast/libllava_shared.so - cp artifacts/llama-bin-android-arm64.so/libllama.so deps/android-arm64/libllama.so - cp artifacts/llava-bin-android-arm64.so/libllava_shared.so deps/android-arm64/libllava_shared.so + cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so + cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so + + cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so + cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so + + cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so + cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so - name: Upload artifacts uses: actions/upload-artifact@v4 From c7b6980defe118c72fa1e1b4d9bcfd5862227862 Mon Sep 17 00:00:00 2001 From: Emmanuel Adebiyi Date: Wed, 29 May 2024 19:45:29 +0100 Subject: [PATCH 3/4] add logic to auto load library --- LLama/LLamaSharp.Runtime.targets | 136 ++---------------- LLama/Native/NativeApi.Load.cs | 7 +- .../build/LLamaSharp.Backend.Android.nuspec | 32 +++++ .../build/LLamaSharp.Backend.Cpu.nuspec | 5 +- 4 files changed, 49 insertions(+), 131 deletions(-) create mode 100644 LLama/runtimes/build/LLamaSharp.Backend.Android.nuspec diff --git a/LLama/LLamaSharp.Runtime.targets b/LLama/LLamaSharp.Runtime.targets index fa7a018c1..764d772bc 100644 --- a/LLama/LLamaSharp.Runtime.targets +++ b/LLama/LLamaSharp.Runtime.targets @@ -2,133 +2,17 @@ true - - - PreserveNewest - runtimes/win-x64/native/noavx/llama.dll - - - PreserveNewest - runtimes/win-x64/native/avx/llama.dll - - - PreserveNewest - runtimes/win-x64/native/avx2/llama.dll - - - PreserveNewest - runtimes/win-x64/native/avx512/llama.dll - - - PreserveNewest - runtimes/win-x64/native/cuda11/llama.dll - - - PreserveNewest - runtimes/win-x64/native/cuda12/llama.dll - + + + libllama.so + arm64-v8a + - - PreserveNewest - runtimes/linux-x64/native/noavx/libllama.so - - - PreserveNewest - runtimes/linux-x64/native/avx/libllama.so - - - PreserveNewest - runtimes/linux-x64/native/avx2/libllama.so - - - PreserveNewest - runtimes/linux-x64/native/avx512/libllama.so - - - PreserveNewest - runtimes/linux-x64/native/cuda11/libllama.so - - - PreserveNewest - runtimes/linux-x64/native/cuda12/libllama.so - - - - PreserveNewest - runtimes/osx-arm64/native/libllama.dylib - - - PreserveNewest - runtimes/osx-arm64/native/ggml-metal.metal - - - - PreserveNewest - runtimes/osx-x64/native/libllama.dylib - - - - PreserveNewest - runtimes/win-x64/native/noavx/llava_shared.dll - - - PreserveNewest - runtimes/win-x64/native/avx/llava_shared.dll - - - PreserveNewest - runtimes/win-x64/native/avx2/llava_shared.dll - - - PreserveNewest - runtimes/win-x64/native/avx512/llava_shared.dll - - - PreserveNewest - runtimes/win-x64/native/cuda11/llava_shared.dll - - - PreserveNewest - runtimes/win-x64/native/cuda12/llava_shared.dll - - - - - PreserveNewest - runtimes/linux-x64/native/noavx/libllava_shared.so - - - PreserveNewest - runtimes/linux-x64/native/avx/libllava_shared.so - - - PreserveNewest - runtimes/linux-x64/native/avx2/libllava_shared.so - - - PreserveNewest - runtimes/linux-x64/native/avx512/libllava_shared.so - - - PreserveNewest - runtimes/linux-x64/native/cuda11/libllava_shared.so - - - PreserveNewest - runtimes/linux-x64/native/cuda12/libllava_shared.so - - - - PreserveNewest - runtimes/osx-arm64/native/libllava_shared.dylib - - - - PreserveNewest - runtimes/osx-x64/native/libllava_shared.dylib - - - + + libllava_shared.so + arm64-v8a + + \ No newline at end of file diff --git a/LLama/Native/NativeApi.Load.cs b/LLama/Native/NativeApi.Load.cs index f1bd765e4..7c32c41ed 100644 --- a/LLama/Native/NativeApi.Load.cs +++ b/LLama/Native/NativeApi.Load.cs @@ -1,4 +1,4 @@ -using LLama.Exceptions; +using LLama.Exceptions; using System; using System.IO; using System.Runtime.InteropServices; @@ -57,6 +57,11 @@ private static void SetDllImportResolver() // NativeLibrary is not available on older runtimes. We'll have to depend on // the normal runtime dll resolution there. #if NET5_0_OR_GREATER + + // We don't need special dll resolution on Android + if (OperatingSystem.IsAndroid()) + return; + NativeLibrary.SetDllImportResolver(typeof(NativeApi).Assembly, (name, _, _) => { if (name == "llama") diff --git a/LLama/runtimes/build/LLamaSharp.Backend.Android.nuspec b/LLama/runtimes/build/LLamaSharp.Backend.Android.nuspec new file mode 100644 index 000000000..1e77784f1 --- /dev/null +++ b/LLama/runtimes/build/LLamaSharp.Backend.Android.nuspec @@ -0,0 +1,32 @@ + + + + LLamaSharp.Backend.Android + $version$ + LLamaSharp.Backend.Android - Android Backend for LLamaSharp + llama.cpp Authors + false + MIT + icon512.png + https://github.com/SciSharp/LLamaSharp + LLamaSharp.Backend.Android is a backend for LLamaSharp to use with Android. + + Copyright 2023 The llama.cpp Authors. All rights reserved. + LLamaSharp LLama LLM GPT AI ChatBot SciSharp + + + + + + + + + + + + + + + + + diff --git a/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec b/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec index 531640a69..a120613fd 100644 --- a/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec +++ b/LLama/runtimes/build/LLamaSharp.Backend.Cpu.nuspec @@ -44,10 +44,7 @@ - - - - + From 0511b96bbeda317eeb2709261276fcda9dec1fda Mon Sep 17 00:00:00 2001 From: Emmanuel Adebiyi Date: Wed, 29 May 2024 21:34:33 +0100 Subject: [PATCH 4/4] remove file extension from directory names --- .github/workflows/compile.yml | 122 +++++++++++++++++----------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 902095ed8..ccddd65bc 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -51,12 +51,12 @@ jobs: - uses: actions/upload-artifact@v4 with: path: ./build/libllama.so - name: llama-bin-linux-${{ matrix.build }}-x64.so + name: llama-bin-linux-${{ matrix.build }}-x64 - name: Upload Llava uses: actions/upload-artifact@v4 with: path: ./build/examples/llava/libllava_shared.so - name: llava-bin-linux-${{ matrix.build }}-x64.so + name: llava-bin-linux-${{ matrix.build }}-x64 compile-windows: name: Compile (Windows) @@ -92,13 +92,13 @@ jobs: uses: actions/upload-artifact@v4 with: path: .\build\bin\Release\llama.dll - name: llama-bin-win-${{ matrix.build }}-x64.dll + name: llama-bin-win-${{ matrix.build }}-x64 - name: Upload Llava uses: actions/upload-artifact@v4 with: path: .\build\bin\Release\llava_shared.dll - name: llava-bin-win-${{ matrix.build }}-x64.dll + name: llava-bin-win-${{ matrix.build }}-x64 compile-clblast: name: Compile (clblast) - ${{ matrix.os }} @@ -175,14 +175,14 @@ jobs: path: | .\build\bin\Release\llama.dll .\build\bin\Release\clblast.dll - name: llama-bin-win-clblast-x64.dll + name: llama-bin-win-clblast-x64 - name: Upload llava artifacts (Windows) if: ${{ matrix.os == 'windows-latest' }} uses: actions/upload-artifact@v4 with: path: | .\build\bin\Release\llava_shared.dll - name: llava-bin-win-clblast-x64.dll + name: llava-bin-win-clblast-x64 - name: Upload artifacts (linux) if: ${{ matrix.os == 'ubuntu-22.04' }} uses: actions/upload-artifact@v4 @@ -190,14 +190,14 @@ jobs: path: | ./build/libllama.so # ./build/libclblast.so - name: llama-bin-linux-clblast-x64.so + name: llama-bin-linux-clblast-x64 - name: Upload llava artifacts (linux) if: ${{ matrix.os == 'ubuntu-22.04' }} uses: actions/upload-artifact@v4 with: path: | ./build/examples/llava/libllava_shared.so - name: llava-bin-linux-clblast-x64.so + name: llava-bin-linux-clblast-x64 compile-cublas: @@ -247,25 +247,25 @@ jobs: uses: actions/upload-artifact@v4 with: path: .\build\bin\Release\llama.dll - name: llama-bin-win-cublas-cu${{ matrix.cuda }}-x64.dll + name: llama-bin-win-cublas-cu${{ matrix.cuda }}-x64 - name: Upload llava artifacts (Windows) if: ${{ matrix.os == 'windows-latest' }} uses: actions/upload-artifact@v4 with: path: .\build\bin\Release\llava_shared.dll - name: llava-bin-win-cublas-cu${{ matrix.cuda }}-x64.dll + name: llava-bin-win-cublas-cu${{ matrix.cuda }}-x64 - name: Upload artifacts (Linux) if: ${{ matrix.os == 'ubuntu-20.04' }} uses: actions/upload-artifact@v4 with: path: ./build/libllama.so - name: llama-bin-linux-cublas-cu${{ matrix.cuda }}-x64.so + name: llama-bin-linux-cublas-cu${{ matrix.cuda }}-x64 - name: Upload llava artifacts (Linux) if: ${{ matrix.os == 'ubuntu-20.04' }} uses: actions/upload-artifact@v4 with: path: ./build/examples/llava/libllava_shared.so - name: llava-bin-linux-cublas-cu${{ matrix.cuda }}-x64.so + name: llava-bin-linux-cublas-cu${{ matrix.cuda }}-x64 compile-macos: @@ -300,18 +300,18 @@ jobs: uses: actions/upload-artifact@v4 with: path: ./build/libllama.dylib - name: llama-bin-osx-${{ matrix.build }}.dylib + name: llama-bin-osx-${{ matrix.build }} - name: Upload Llava uses: actions/upload-artifact@v4 with: path: ./build/examples/llava/libllava_shared.dylib - name: llava-bin-osx-${{ matrix.build }}.dylib + name: llava-bin-osx-${{ matrix.build }} - name: Upload Metal if: ${{ matrix.build != 'x64' }} uses: actions/upload-artifact@v4 with: path: ./build/bin/ggml-metal.metal - name: ggml-metal.metal + name: ggml-metal compile-android: name: Compile (Android) @@ -350,12 +350,12 @@ jobs: uses: actions/upload-artifact@v4 with: path: ./build/libllama.so - name: llama-bin-android-${{ matrix.build }}.so + name: llama-bin-android-${{ matrix.build }} - name: Upload Llava uses: actions/upload-artifact@v4 with: path: ./build/examples/llava/libllava_shared.so - name: llava-bin-android-${{ matrix.build }}.so + name: llava-bin-android-${{ matrix.build }} build-deps: @@ -379,65 +379,65 @@ jobs: - name: Rearrange Files run: | # Make all directories at once - mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,android-arm64,cu11.7.1,cu12.1.0,clblast} + mkdir --parents deps/{avx,avx2,avx512,osx-arm64,osx-x64,android-x86,android-x86_64,android-arm64-v8a,cu11.7.1,cu12.1.0,clblast} - cp artifacts/llama-bin-linux-noavx-x64.so/libllama.so deps/libllama.so - cp artifacts/llama-bin-linux-avx-x64.so/libllama.so deps/avx/libllama.so - cp artifacts/llama-bin-linux-avx2-x64.so/libllama.so deps/avx2/libllama.so - cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so + cp artifacts/llama-bin-linux-noavx-x64/libllama.so deps/libllama.so + cp artifacts/llama-bin-linux-avx-x64/libllama.so deps/avx/libllama.so + cp artifacts/llama-bin-linux-avx2-x64/libllama.so deps/avx2/libllama.so + cp artifacts/llama-bin-linux-avx512-x64/libllama.so deps/avx512/libllama.so - cp artifacts/llama-bin-win-noavx-x64.dll/llama.dll deps/llama.dll - cp artifacts/llama-bin-win-avx-x64.dll/llama.dll deps/avx/llama.dll - cp artifacts/llama-bin-win-avx2-x64.dll/llama.dll deps/avx2/llama.dll - cp artifacts/llama-bin-win-avx512-x64.dll/llama.dll deps/avx512/llama.dll + cp artifacts/llama-bin-win-noavx-x64/llama.dll deps/llama.dll + cp artifacts/llama-bin-win-avx-x64/llama.dll deps/avx/llama.dll + cp artifacts/llama-bin-win-avx2-x64/llama.dll deps/avx2/llama.dll + cp artifacts/llama-bin-win-avx512-x64/llama.dll deps/avx512/llama.dll - cp artifacts/llava-bin-linux-noavx-x64.so/libllava_shared.so deps/libllava_shared.so - cp artifacts/llava-bin-linux-avx-x64.so/libllava_shared.so deps/avx/libllava_shared.so - cp artifacts/llava-bin-linux-avx2-x64.so/libllava_shared.so deps/avx2/libllava_shared.so - cp artifacts/llava-bin-linux-avx512-x64.so/libllava_shared.so deps/avx512/libllava_shared.so + cp artifacts/llava-bin-linux-noavx-x64/libllava_shared.so deps/libllava_shared.so + cp artifacts/llava-bin-linux-avx-x64/libllava_shared.so deps/avx/libllava_shared.so + cp artifacts/llava-bin-linux-avx2-x64/libllava_shared.so deps/avx2/libllava_shared.so + cp artifacts/llava-bin-linux-avx512-x64/libllava_shared.so deps/avx512/libllava_shared.so - cp artifacts/llama-bin-win-noavx-x64.dll/llama.dll deps/libllama.dll - cp artifacts/llama-bin-win-avx-x64.dll/llama.dll deps/avx/libllama.dll - cp artifacts/llama-bin-win-avx2-x64.dll/llama.dll deps/avx2/libllama.dll - cp artifacts/llama-bin-win-avx512-x64.dll/llama.dll deps/avx512/libllama.dll + cp artifacts/llama-bin-win-noavx-x64/llama.dll deps/libllama.dll + cp artifacts/llama-bin-win-avx-x64/llama.dll deps/avx/libllama.dll + cp artifacts/llama-bin-win-avx2-x64/llama.dll deps/avx2/libllama.dll + cp artifacts/llama-bin-win-avx512-x64/llama.dll deps/avx512/libllama.dll - cp artifacts/llava-bin-win-noavx-x64.dll/llava_shared.dll deps/llava_shared.dll - cp artifacts/llava-bin-win-avx-x64.dll/llava_shared.dll deps/avx/llava_shared.dll - cp artifacts/llava-bin-win-avx2-x64.dll/llava_shared.dll deps/avx2/llava_shared.dll - cp artifacts/llava-bin-win-avx512-x64.dll/llava_shared.dll deps/avx512/llava_shared.dll + cp artifacts/llava-bin-win-noavx-x64/llava_shared.dll deps/llava_shared.dll + cp artifacts/llava-bin-win-avx-x64/llava_shared.dll deps/avx/llava_shared.dll + cp artifacts/llava-bin-win-avx2-x64/llava_shared.dll deps/avx2/llava_shared.dll + cp artifacts/llava-bin-win-avx512-x64/llava_shared.dll deps/avx512/llava_shared.dll - cp artifacts/llama-bin-osx-arm64.dylib/libllama.dylib deps/osx-arm64/libllama.dylib - cp artifacts/llava-bin-osx-arm64.dylib/libllava_shared.dylib deps/osx-arm64/libllava_shared.dylib - cp artifacts/ggml-metal.metal/ggml-metal.metal deps/osx-arm64/ggml-metal.metal - cp artifacts/llama-bin-osx-x64.dylib/libllama.dylib deps/osx-x64/libllama.dylib - cp artifacts/llava-bin-osx-x64.dylib/libllava_shared.dylib deps/osx-x64/libllava_shared.dylib + cp artifacts/llama-bin-osx-arm64/libllama.dylib deps/osx-arm64/libllama.dylib + cp artifacts/llava-bin-osx-arm64/libllava_shared.dylib deps/osx-arm64/libllava_shared.dylib + cp artifacts/ggml-metal/ggml-metal.metal deps/osx-arm64/ggml-metal.metal + cp artifacts/llama-bin-osx-x64/libllama.dylib deps/osx-x64/libllama.dylib + cp artifacts/llava-bin-osx-x64/libllava_shared.dylib deps/osx-x64/libllava_shared.dylib - cp artifacts/llama-bin-win-cublas-cu11.7.1-x64.dll/llama.dll deps/cu11.7.1/llama.dll - cp artifacts/llava-bin-win-cublas-cu11.7.1-x64.dll/llava_shared.dll deps/cu11.7.1/llava_shared.dll + cp artifacts/llama-bin-win-cublas-cu11.7.1-x64/llama.dll deps/cu11.7.1/llama.dll + cp artifacts/llava-bin-win-cublas-cu11.7.1-x64/llava_shared.dll deps/cu11.7.1/llava_shared.dll - cp artifacts/llama-bin-linux-cublas-cu11.7.1-x64.so/libllama.so deps/cu11.7.1/libllama.so - cp artifacts/llava-bin-linux-cublas-cu11.7.1-x64.so/libllava_shared.so deps/cu11.7.1/libllava_shared.so + cp artifacts/llama-bin-linux-cublas-cu11.7.1-x64/libllama.so deps/cu11.7.1/libllama.so + cp artifacts/llava-bin-linux-cublas-cu11.7.1-x64/libllava_shared.so deps/cu11.7.1/libllava_shared.so - cp artifacts/llama-bin-win-cublas-cu12.1.0-x64.dll/llama.dll deps/cu12.1.0/llama.dll - cp artifacts/llava-bin-win-cublas-cu12.1.0-x64.dll/llava_shared.dll deps/cu12.1.0/llava_shared.dll + cp artifacts/llama-bin-win-cublas-cu12.1.0-x64/llama.dll deps/cu12.1.0/llama.dll + cp artifacts/llava-bin-win-cublas-cu12.1.0-x64/llava_shared.dll deps/cu12.1.0/llava_shared.dll - cp artifacts/llama-bin-linux-cublas-cu12.1.0-x64.so/libllama.so deps/cu12.1.0/libllama.so - cp artifacts/llava-bin-linux-cublas-cu12.1.0-x64.so/libllava_shared.so deps/cu12.1.0/libllava_shared.so + cp artifacts/llama-bin-linux-cublas-cu12.1.0-x64/libllama.so deps/cu12.1.0/libllama.so + cp artifacts/llava-bin-linux-cublas-cu12.1.0-x64/libllava_shared.so deps/cu12.1.0/libllava_shared.so - cp artifacts/llama-bin-win-clblast-x64.dll/{llama,clblast}.dll deps/clblast/ - cp artifacts/llava-bin-win-clblast-x64.dll/llava_shared.dll deps/clblast/llava_shared.dll - cp artifacts/llama-bin-linux-clblast-x64.so/libllama.so deps/clblast/ - cp artifacts/llava-bin-linux-clblast-x64.so/libllava_shared.so deps/clblast/libllava_shared.so + cp artifacts/llama-bin-win-clblast-x64/{llama,clblast}.dll deps/clblast/ + cp artifacts/llava-bin-win-clblast-x64/llava_shared.dll deps/clblast/llava_shared.dll + cp artifacts/llama-bin-linux-clblast-x64/libllama.so deps/clblast/ + cp artifacts/llava-bin-linux-clblast-x64/libllava_shared.so deps/clblast/libllava_shared.so - cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so - cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so + cp artifacts/llama-bin-android-x86/libllama.so deps/android-x86/libllama.so + cp artifacts/llava-bin-android-x86/libllava_shared.so deps/android-x86/libllava_shared.so - cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so - cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so + cp artifacts/llama-bin-android-x86_64/libllama.so deps/android-x86_64/libllama.so + cp artifacts/llava-bin-android-x86_64/libllava_shared.so deps/android-x86_64/libllava_shared.so - cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so - cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so + cp artifacts/llama-bin-android-arm64-v8a/libllama.so deps/android-arm64-v8a/libllama.so + cp artifacts/llava-bin-android-arm64-v8a/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so - name: Upload artifacts uses: actions/upload-artifact@v4