8000 ci : add ppc64el to build-linux-cross (#13575) · robbiemu/llama.cpp@7c07ac2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7c07ac2

Browse files
authored
ci : add ppc64el to build-linux-cross (ggml-org#13575)
1 parent 0a338ed commit 7c07ac2

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

.github/workflows/build-linux-cross.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,94 @@ jobs:
140140
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
141141
142142
cmake --build build --config Release -j $(nproc)
143+
144+
ubuntu-24-ppc64el-cpu-cross:
145+
runs-on: ubuntu-24.04
146+
147+
steps:
148+
- uses: actions/checkout@v4
149+
- name: Setup PowerPC64le
150+
run: |
151+
sudo dpkg --add-architecture ppc64el
152+
153+
# Add arch-specific repositories for non-amd64 architectures
154+
cat << EOF | sudo tee /etc/apt/sources.list.d/ppc64el-ports.list
155+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble main universe
156+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe
157+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe
158+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe
159+
EOF
160+
161+
sudo apt-get update || true ;# Prevent failure due to missing URLs.
162+
163+
sudo apt-get install -y --no-install-recommends \
164+
build-essential \
165+
gcc-14-powerpc64le-linux-gnu \
166+
g++-14-powerpc64le-linux-gnu \
167+
libcurl4-openssl-dev:ppc64el
168+
169+
- name: Build
170+
run: |
171+
cmake -B build -DCMAKE_BUILD_TYPE=Release \
172+
-DGGML_OPENMP=OFF \
173+
-DLLAMA_BUILD_EXAMPLES=ON \
174+
-DLLAMA_BUILD_TOOLS=ON \
175+
-DLLAMA_BUILD_TESTS=OFF \
176+
-DCMAKE_SYSTEM_NAME=Linux \
177+
-DCMAKE_SYSTEM_PROCESSOR=ppc64 \
178+
-DCMAKE_C_COMPILER=powerpc64le-linux-gnu-gcc-14 \
179+
-DCMAKE_CXX_COMPILER=powerpc64le-linux-gnu-g++-14 \
180+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
181+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/powerpc64le-linux-gnu \
182+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
183+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
184+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
185+
186+
cmake --build build --config Release -j $(nproc)
187+
188+
ubuntu-24-ppc64el-vulkan-cross:
189+
runs-on: ubuntu-24.04
190+
191+
steps:
192+
- uses: actions/checkout@v4
193+
- name: Setup PowerPC64le
194+
run: |
195+
sudo dpkg --add-architecture ppc64el
196+
197+
# Add arch-specific repositories for non-amd64 architectures
198+
cat << EOF | sudo tee /etc/apt/sources.list.d/ppc64el-ports.list
199+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble main universe
200+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe
201+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe
202+
deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe
203+
EOF
204+
205+
sudo apt-get update || true ;# Prevent failure due to missing URLs.
206+
207+
sudo apt-get install -y --no-install-recommends \
208+
build-essential \
209+
glslc \
210+
gcc-14-powerpc64le-linux-gnu \
211+
g++-14-powerpc64le-linux-gnu \
212+
libvulkan-dev:ppc64el \
213+
libcurl4-openssl-dev:ppc64el
214+
215+
- name: Build
216+
run: |
217+
cmake -B build -DCMAKE_BUILD_TYPE=Release \
218+
-DGGML_VULKAN=ON \
219+
-DGGML_OPENMP=OFF \
220+
-DLLAMA_BUILD_EXAMPLES=ON \
221+
-DLLAMA_BUILD_TOOLS=ON \
222+
-DLLAMA_BUILD_TESTS=OFF \
223+
-DCMAKE_SYSTEM_NAME=Linux \
224+
-DCMAKE_SYSTEM_PROCESSOR=ppc64 \
225+
-DCMAKE_C_COMPILER=powerpc64le-linux-gnu-gcc-14 \
226+
-DCMAKE_CXX_COMPILER=powerpc64le-linux-gnu-g++-14 \
227+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
228+
-DCMAKE_FIND_ROOT_PATH=/usr/lib/powerpc64le-linux-gnu \
229+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
230+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
231+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
232+
233+
cmake --build build --config Release -j $(nproc)

0 commit comments

Comments
 (0)
0