| | name: Build on Linux using cross-compiler |
| | on: |
| | workflow_dispatch: |
| | workflow_call: |
| |
|
| | jobs: |
| | ubuntu-24-riscv64-cpu-cross: |
| | runs-on: ubuntu-24.04 |
| |
|
| | steps: |
| | - uses: actions/checkout@v4 |
| | - name: Setup Riscv |
| | run: | |
| | sudo dpkg --add-architecture riscv64 |
| | |
| | |
| | cat << EOF | sudo tee /etc/apt/sources.list.d/riscv64-ports.list |
| | deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble main universe |
| | deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main universe |
| | deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main universe |
| | deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ noble-backports main universe |
| | EOF |
| |
|
| | sudo apt-get update || true ;# Prevent failure due to missing URLs. |
| |
|
| | sudo apt-get install -y --no-install-recommends \ |
| | build-essential \ |
| | gcc-14-riscv64-linux-gnu \ |
| | g++-14-riscv64-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=riscv64 \ |
| | -DCMAKE_C_COMPILER=riscv64-linux-gnu-gcc-14 \ |
| | -DCMAKE_CXX_COMPILER=riscv64-linux-gnu-g++-14 \ |
| | -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ |
| | -DCMAKE_FIND_ROOT_PATH=/usr/lib/riscv64-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-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 |
| |
|
| | |
| | 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 |
| |
|
| | |
| | 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) |
| |
|
| | ubuntu-24-riscv64-cpu-spacemit-ime-cross: |
| | runs-on: ubuntu-24.04 |
| |
|
| | env: |
| | |
| | SPACEMIT_IME_TOOLCHAIN_VERSION: "1.1.2" |
| |
|
| | steps: |
| | - uses: actions/checkout@v4 |
| |
|
| | - name: Use SpacemiT Toolchain Cache |
| | uses: actions/cache@v4 |
| | id: cache-toolchain |
| | with: |
| | path: ./spacemit_toolchain |
| | key: spacemit-ime-toolchain-v${{ env.SPACEMIT_IME_TOOLCHAIN_VERSION }}-${{ runner.os }} |
| |
|
| | - name: Setup SpacemiT Toolchain |
| | if: steps.cache-toolchain.outputs.cache-hit != 'true' |
| | uses: ./.github/actions/linux-setup-spacemit |
| | with: |
| | path: ./spacemit_toolchain |
| | version: ${{ env.SPACEMIT_IME_TOOLCHAIN_VERSION }} |
| |
|
| | - name: Build |
| | run: | |
| | export RISCV_ROOT_PATH=${PWD}/spacemit_toolchain |
| | 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 \ |
| | -DGGML_CPU_RISCV64_SPACEMIT=ON \ |
| | -DGGML_RVV=ON \ |
| | -DGGML_RV_ZFH=ON \ |
| | -DGGML_RV_ZICBOP=ON \ |
| | -DRISCV64_SPACEMIT_IME_SPEC=RISCV64_SPACEMIT_IME1 \ |
| | -DCMAKE_TOOLCHAIN_FILE=${PWD}/cmake/riscv64-spacemit-linux-gnu-gcc.cmake |
| | |
| | cmake --build build --config Release -j $(nproc) |
| |
|