Skip to content

Commit ec7f4f4

Browse files
committed
Consume custom vulkan build for arm64
Signed-off-by: Ettore Di Giacinto <[email protected]>
1 parent be8a314 commit ec7f4f4

File tree

5 files changed

+72
-30
lines changed

5 files changed

+72
-30
lines changed

.github/workflows/backend.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ jobs:
603603
- build-type: 'vulkan'
604604
cuda-major-version: ""
605605
cuda-minor-version: ""
606-
platforms: 'linux/amd64'
606+
platforms: 'linux/amd64,linux/arm64'
607607
tag-latest: 'auto'
608608
tag-suffix: '-gpu-vulkan-llama-cpp'
609609
runs-on: 'ubuntu-latest'
@@ -676,7 +676,7 @@ jobs:
676676
- build-type: 'vulkan'
677677
cuda-major-version: ""
678678
cuda-minor-version: ""
679-
platforms: 'linux/amd64'
679+
platforms: 'linux/amd64,linux/arm64'
680680
tag-latest: 'auto'
681681
tag-suffix: '-gpu-vulkan-stablediffusion-ggml'
682682
runs-on: 'ubuntu-latest'
@@ -761,7 +761,7 @@ jobs:
761761
- build-type: 'vulkan'
762762
cuda-major-version: ""
763763
cuda-minor-version: ""
764-
platforms: 'linux/amd64'
764+
platforms: 'linux/amd64,linux/arm64'
765765
tag-latest: 'auto'
766766
tag-suffix: '-gpu-vulkan-whisper'
767767
runs-on: 'ubuntu-latest'

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ RUN <<EOT bash
4545
fi
4646
if [ "arm64" = "$TARGETARCH" ]; then
4747
# For ARM64, we need to build the Vulkan SDK manually as there are no packages available
48-
mkdir vulkan && cd vulkan && curl -o vulkan-sdk.tar.xz https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.xz && \
49-
tar -xJf vulkan-sdk.tar.xz && \
48+
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 && \
49+
tar -xvf vulkan-sdk.tar.xz && \
5050
rm vulkan-sdk.tar.xz && \
5151
cd * && \
5252
sed -i 's/apt-get install/apt-get install -y/' vulkansdk && \
53-
./vulkansdk -j 1 && \
53+
./vulkansdk --maxjobs && \
5454
cd ../.. && \
5555
rm -rf vulkan
5656
fi

backend/Dockerfile.golang

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,28 @@ RUN <<EOT bash
3737
if [ "${BUILD_TYPE}" = "vulkan" ] && [ "${SKIP_DRIVERS}" = "false" ]; then
3838
apt-get update && \
3939
apt-get install -y --no-install-recommends \
40-
software-properties-common pciutils wget gpg-agent && \
41-
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
42-
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
43-
apt-get update && \
44-
apt-get install -y \
45-
vulkan-sdk && \
46-
apt-get clean && \
47-
rm -rf /var/lib/apt/lists/*
40+
software-properties-common pciutils sudo wget gpg-agent curl xz-utils && \
41+
echo "vulkan" > /run/localai/capability && \
42+
if [ "amd64" = "$TARGETARCH" ]; then
43+
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
44+
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
45+
apt-get update && \
46+
apt-get install -y \
47+
vulkan-sdk && \
48+
apt-get clean && \
49+
rm -rf /var/lib/apt/lists/*
50+
fi
51+
if [ "arm64" = "$TARGETARCH" ]; then
52+
# For ARM64, we need to build the Vulkan SDK manually as there are no packages available
53+
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 && \
54+
tar -xvf vulkan-sdk.tar.xz && \
55+
rm vulkan-sdk.tar.xz && \
56+
cd * && \
57+
sed -i 's/apt-get install/apt-get install -y/' vulkansdk && \
58+
./vulkansdk --maxjobs && \
59+
cd ../.. && \
60+
rm -rf vulkan
61+
fi
4862
fi
4963
EOT
5064

backend/Dockerfile.llama-cpp

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,28 @@ RUN <<EOT bash
8585
if [ "${BUILD_TYPE}" = "vulkan" ] && [ "${SKIP_DRIVERS}" = "false" ]; then
8686
apt-get update && \
8787
apt-get install -y --no-install-recommends \
88-
software-properties-common pciutils wget gpg-agent && \
89-
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
90-
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
91-
apt-get update && \
92-
apt-get install -y \
93-
vulkan-sdk && \
94-
apt-get clean && \
95-
rm -rf /var/lib/apt/lists/*
88+
software-properties-common pciutils sudo wget gpg-agent curl xz-utils && \
89+
echo "vulkan" > /run/localai/capability && \
90+
if [ "amd64" = "$TARGETARCH" ]; then
91+
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
92+
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
93+
apt-get update && \
94+
apt-get install -y \
95+
vulkan-sdk && \
96+
apt-get clean && \
97+
rm -rf /var/lib/apt/lists/*
98+
fi
99+
if [ "arm64" = "$TARGETARCH" ]; then
100+
# For ARM64, we need to build the Vulkan SDK manually as there are no packages available
101+
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 && \
102+
tar -xvf vulkan-sdk.tar.xz && \
103+
rm vulkan-sdk.tar.xz && \
104+
cd * && \
105+
sed -i 's/apt-get install/apt-get install -y/' vulkansdk && \
106+
./vulkansdk --maxjobs && \
107+
cd ../.. && \
108+
rm -rf vulkan
109+
fi
96110
fi
97111
EOT
98112

backend/Dockerfile.python

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,28 @@ RUN <<EOT bash
4545
if [ "${BUILD_TYPE}" = "vulkan" ] && [ "${SKIP_DRIVERS}" = "false" ]; then
4646
apt-get update && \
4747
apt-get install -y --no-install-recommends \
48-
software-properties-common pciutils wget gpg-agent && \
49-
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
50-
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
51-
apt-get update && \
52-
apt-get install -y \
53-
vulkan-sdk && \
54-
apt-get clean && \
55-
rm -rf /var/lib/apt/lists/*
48+
software-properties-common pciutils sudo wget gpg-agent curl xz-utils && \
49+
echo "vulkan" > /run/localai/capability && \
50+
if [ "amd64" = "$TARGETARCH" ]; then
51+
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
52+
wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \
53+
apt-get update && \
54+
apt-get install -y \
55+
vulkan-sdk && \
56+
apt-get clean && \
57+
rm -rf /var/lib/apt/lists/*
58+
fi
59+
if [ "arm64" = "$TARGETARCH" ]; then
60+
# For ARM64, we need to build the Vulkan SDK manually as there are no packages available
61+
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 && \
62+
tar -xvf vulkan-sdk.tar.xz && \
63+
rm vulkan-sdk.tar.xz && \
64+
cd * && \
65+
sed -i 's/apt-get install/apt-get install -y/' vulkansdk && \
66+
./vulkansdk --maxjobs && \
67+
cd ../.. && \
68+
rm -rf vulkan
69+
fi
5670
fi
5771
EOT
5872

0 commit comments

Comments
 (0)