diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 85b8737d6..393f094e6 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -603,7 +603,7 @@ jobs: - build-type: 'vulkan' cuda-major-version: "" cuda-minor-version: "" - platforms: 'linux/amd64' + platforms: 'linux/amd64,linux/arm64' tag-latest: 'auto' tag-suffix: '-gpu-vulkan-llama-cpp' runs-on: 'ubuntu-latest' @@ -676,7 +676,7 @@ jobs: - build-type: 'vulkan' cuda-major-version: "" cuda-minor-version: "" - platforms: 'linux/amd64' + platforms: 'linux/amd64,linux/arm64' tag-latest: 'auto' tag-suffix: '-gpu-vulkan-stablediffusion-ggml' runs-on: 'ubuntu-latest' @@ -761,7 +761,7 @@ jobs: - build-type: 'vulkan' cuda-major-version: "" cuda-minor-version: "" - platforms: 'linux/amd64' + platforms: 'linux/amd64,linux/arm64' tag-latest: 'auto' tag-suffix: '-gpu-vulkan-whisper' runs-on: 'ubuntu-latest' diff --git a/Dockerfile b/Dockerfile index d365538bd..e67d0b2bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,12 +45,11 @@ RUN < /run/localai/capability && \ + if [ "amd64" = "$TARGETARCH" ]; then + wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt-get update && \ + apt-get install -y \ + vulkan-sdk && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + fi + if [ "arm64" = "$TARGETARCH" ]; then + # For ARM64, we need to build the Vulkan SDK manually as there are no packages available + mkdir vulkan && cd vulkan && curl -L -o vulkan-sdk.tar.xz https://github.com/mudler/vulkan-sdk-arm/releases/download/1.4.321.1/vulkansdk-ubuntu-22.04-arm-1.4.321.1.tar.xz && \ + tar -xvf vulkan-sdk.tar.xz && \ + rm vulkan-sdk.tar.xz && \ + cd * && \ + cp -rfv aarch64/* /usr/ && \ + cd ../.. && \ + rm -rf vulkan + fi fi EOT diff --git a/backend/Dockerfile.llama-cpp b/backend/Dockerfile.llama-cpp index 6d679eb0c..9d4940734 100644 --- a/backend/Dockerfile.llama-cpp +++ b/backend/Dockerfile.llama-cpp @@ -85,14 +85,27 @@ RUN < /run/localai/capability && \ + if [ "amd64" = "$TARGETARCH" ]; then + wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt-get update && \ + apt-get install -y \ + vulkan-sdk && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + fi + if [ "arm64" = "$TARGETARCH" ]; then + # For ARM64, we need to build the Vulkan SDK manually as there are no packages available + mkdir vulkan && cd vulkan && curl -L -o vulkan-sdk.tar.xz https://github.com/mudler/vulkan-sdk-arm/releases/download/1.4.321.1/vulkansdk-ubuntu-22.04-arm-1.4.321.1.tar.xz && \ + tar -xvf vulkan-sdk.tar.xz && \ + rm vulkan-sdk.tar.xz && \ + cd * && \ + cp -rfv aarch64/* /usr/ && \ + cd ../.. && \ + rm -rf vulkan + fi fi EOT diff --git a/backend/Dockerfile.python b/backend/Dockerfile.python index 9850e9808..53f77bc6c 100644 --- a/backend/Dockerfile.python +++ b/backend/Dockerfile.python @@ -45,14 +45,27 @@ RUN < /run/localai/capability && \ + if [ "amd64" = "$TARGETARCH" ]; then + wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt-get update && \ + apt-get install -y \ + vulkan-sdk && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + fi + if [ "arm64" = "$TARGETARCH" ]; then + # For ARM64, we need to build the Vulkan SDK manually as there are no packages available + mkdir vulkan && cd vulkan && curl -L -o vulkan-sdk.tar.xz https://github.com/mudler/vulkan-sdk-arm/releases/download/1.4.321.1/vulkansdk-ubuntu-22.04-arm-1.4.321.1.tar.xz && \ + tar -xvf vulkan-sdk.tar.xz && \ + rm vulkan-sdk.tar.xz && \ + cd * && \ + cp -rfv aarch64/* /usr/ && \ + cd ../.. && \ + rm -rf vulkan + fi fi EOT