name: CI (ibm) on: workflow_dispatch: # allows manual triggering push: branches: - master paths: [ '.github/workflows/build-ibm.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp' ] pull_request: types: [opened, synchronize, reopened] paths: [ '.github/workflows/build-ibm.yml', 'ggml/src/ggml-cpu/**' ] concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} cancel-in-progress: true env: GGML_NLOOP: 3 GGML_N_THREADS: 1 LLAMA_ARG_LOG_COLORS: 1 LLAMA_ARG_LOG_PREFIX: 1 LLAMA_ARG_LOG_TIMESTAMPS: 1 jobs: ubuntu-24-s390x: runs-on: ubuntu-24.04-s390x steps: - name: Clone id: checkout uses: actions/checkout@v6 - name: Build Dependencies id: build_depends run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ python3 python3-pip python3-dev python3-wheel \ libjpeg-dev build-essential libssl-dev \ git-lfs - name: Toolchain workaround (GCC 14) run: | sudo apt-get install -y gcc-14 g++-14 echo "CC=gcc-14" >> "$GITHUB_ENV" echo "CXX=g++-14" >> "$GITHUB_ENV" - name: Python Dependencies id: python_depends run: | export PIP_BREAK_SYSTEM_PACKAGES="1" python3 -m pip install --upgrade pip setuptools pip3 install ./gguf-py - name: Swap Endianness id: endianness run: | for f in models/*.gguf; do echo YES | python3 gguf-py/gguf/scripts/gguf_convert_endian.py $f big done - name: Build id: cmake_build run: | cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ -DGGML_RPC=ON time cmake --build build --config Release -j $(nproc) - name: Test id: cmake_test run: | cd build ctest -L main --verbose --timeout 900 - name: Test llama2c (s390x) id: llama2c_test_s390x run: | cd build echo "Fetch llama2c big-endian model" wget https://huggingface.co/ggml-org/models/resolve/main/tinyllamas/stories260K-be.gguf ./bin/llama-completion -m stories260K-be.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256 ubuntu-24-ppc64le: runs-on: ubuntu-24.04-ppc64le steps: - name: Clone id: checkout uses: actions/checkout@v6 - name: Build Dependencies id: build_depends run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ python3 python3-pip python3-dev python3-wheel \ libjpeg-dev build-essential libssl-dev \ git-lfs - name: Toolchain workaround (GCC 14) run: | sudo apt-get install -y gcc-14 g++-14 echo "CC=gcc-14" >> "$GITHUB_ENV" echo "CXX=g++-14" >> "$GITHUB_ENV" - name: Python Dependencies id: python_depends run: | export PIP_BREAK_SYSTEM_PACKAGES="1" python3 -m pip install --upgrade pip setuptools pip3 install ./gguf-py - name: Build id: cmake_build run: | cmake -B build \ -DLLAMA_FATAL_WARNINGS=ON \ -DGGML_RPC=ON time cmake --build build --config Release -j $(nproc) - name: Test id: cmake_test run: | cd build ctest -L main --verbose --timeout 900 - name: Test llama2c conversion id: llama2c_test run: | cd build echo "Fetch tokenizer" wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/tok512.bin echo "Fetch llama2c model" wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/stories260K.bin ./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf ./bin/llama-completion -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256