mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-06-27 12:05:03 +00:00
ci: add LoongArch cross-compile build (#13944)
This commit is contained in:
113
.github/workflows/build-linux-cross.yml
vendored
113
.github/workflows/build-linux-cross.yml
vendored
@ -231,3 +231,116 @@ jobs:
|
|||||||
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
|
||||||
|
|
||||||
cmake --build build --config Release -j $(nproc)
|
cmake --build build --config Release -j $(nproc)
|
||||||
|
|
||||||
|
debian-13-loongarch64-cpu-cross:
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
container: debian@sha256:653dfb9f86c3782e8369d5f7d29bb8faba1f4bff9025db46e807fa4c22903671
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Setup LoongArch
|
||||||
|
run: |
|
||||||
|
rm -f /etc/apt/sources.list.d/*
|
||||||
|
cat << EOF | tee /etc/apt/sources.list.d/debian-ports.list
|
||||||
|
deb http://snapshot.debian.org/archive/debian/20250515T202920Z/ trixie main
|
||||||
|
EOF
|
||||||
|
( echo 'quiet "true";'; \
|
||||||
|
echo 'APT::Get::Assume-Yes "true";'; \
|
||||||
|
echo 'APT::Install-Recommends "false";'; \
|
||||||
|
echo 'Acquire::Check-Valid-Until "false";'; \
|
||||||
|
echo 'Acquire::Retries "5";'; \
|
||||||
|
) > /etc/apt/apt.conf.d/99snapshot-repos
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y ca-certificates debian-ports-archive-keyring cmake git zip
|
||||||
|
dpkg --add-architecture loong64
|
||||||
|
|
||||||
|
# Add arch-specific repositories for non-amd64 architectures
|
||||||
|
cat << EOF | tee /etc/apt/sources.list.d/loong64-ports.list
|
||||||
|
deb [arch=loong64] http://snapshot.debian.org/archive/debian-ports/20250515T194251Z/ sid main
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get update || true ;# Prevent failure due to missing URLs.
|
||||||
|
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
gcc-14-loongarch64-linux-gnu \
|
||||||
|
g++-14-loongarch64-linux-gnu
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -B build -DLLAMA_CURL=OFF \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DGGML_OPENMP=OFF \
|
||||||
|
-DLLAMA_BUILD_EXAMPLES=ON \
|
||||||
|
-DLLAMA_BUILD_TOOLS=ON \
|
||||||
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Linux \
|
||||||
|
-DCMAKE_SYSTEM_PROCESSOR=loongarch64 \
|
||||||
|
-DCMAKE_C_COMPILER=loongarch64-linux-gnu-gcc-14 \
|
||||||
|
-DCMAKE_CXX_COMPILER=loongarch64-linux-gnu-g++-14 \
|
||||||
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH=/usr/lib/loongarch64-linux-gnu \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
|
||||||
|
|
||||||
|
cmake --build build --config Release -j $(nproc)
|
||||||
|
|
||||||
|
debian-13-loongarch64-vulkan-cross:
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
container: debian@sha256:653dfb9f86c3782e8369d5f7d29bb8faba1f4bff9025db46e807fa4c22903671
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Setup LoongArch
|
||||||
|
run: |
|
||||||
|
rm -f /etc/apt/sources.list.d/*
|
||||||
|
cat << EOF | tee /etc/apt/sources.list.d/debian-ports.list
|
||||||
|
deb http://snapshot.debian.org/archive/debian/20250515T202920Z/ trixie main
|
||||||
|
EOF
|
||||||
|
( echo 'quiet "true";'; \
|
||||||
|
echo 'APT::Get::Assume-Yes "true";'; \
|
||||||
|
echo 'APT::Install-Recommends "false";'; \
|
||||||
|
echo 'Acquire::Check-Valid-Until "false";'; \
|
||||||
|
echo 'Acquire::Retries "5";'; \
|
||||||
|
) > /etc/apt/apt.conf.d/99snapshot-repos
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y ca-certificates debian-ports-archive-keyring cmake git zip
|
||||||
|
dpkg --add-architecture loong64
|
||||||
|
|
||||||
|
# Add arch-specific repositories for non-amd64 architectures
|
||||||
|
cat << EOF | tee /etc/apt/sources.list.d/loong64-ports.list
|
||||||
|
deb [arch=loong64] http://snapshot.debian.org/archive/debian-ports/20250515T194251Z/ sid main
|
||||||
|
EOF
|
||||||
|
|
||||||
|
apt-get update || true ;# Prevent failure due to missing URLs.
|
||||||
|
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
glslc \
|
||||||
|
gcc-14-loongarch64-linux-gnu \
|
||||||
|
g++-14-loongarch64-linux-gnu \
|
||||||
|
libvulkan-dev:loong64
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -B build -DLLAMA_CURL=OFF \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DGGML_VULKAN=ON \
|
||||||
|
-DGGML_OPENMP=OFF \
|
||||||
|
-DLLAMA_BUILD_EXAMPLES=ON \
|
||||||
|
-DLLAMA_BUILD_TOOLS=ON \
|
||||||
|
-DLLAMA_BUILD_TESTS=OFF \
|
||||||
|
-DCMAKE_SYSTEM_NAME=Linux \
|
||||||
|
-DCMAKE_SYSTEM_PROCESSOR=loongarch64 \
|
||||||
|
-DCMAKE_C_COMPILER=loongarch64-linux-gnu-gcc-14 \
|
||||||
|
-DCMAKE_CXX_COMPILER=loongarch64-linux-gnu-g++-14 \
|
||||||
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH=/usr/lib/loongarch64-linux-gnu \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH
|
||||||
|
|
||||||
|
cmake --build build --config Release -j $(nproc)
|
||||||
|
Reference in New Issue
Block a user