name: CI (cann) on: workflow_dispatch: # allows manual triggering push: branches: - master paths: [ '.github/workflows/build-cann.yml', '**/CMakeLists.txt', '**/.cmake', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp' ] pull_request: types: [opened, synchronize, reopened] paths: [ '.github/workflows/build-cann.yml', 'ggml/src/ggml-cann/**' ] 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: # TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705) # in order to enable it again, we have to provision dedicated runners to run it # openEuler-latest-cann: # defaults: # run: # shell: bash -el {0} # strategy: # matrix: # arch: [x86, aarch64] # chip_type: ['910b', '310p'] # build: ['Release'] # use_acl_graph: ['on', 'off'] # exclude: # # 310P does not support USE_ACL_GRAPH=on # - chip_type: '310p' # use_acl_graph: 'on' # runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} # steps: # - name: Checkout # uses: actions/checkout@v6 # with: # fetch-depth: 0 # # - name: Free up disk space # uses: ggml-org/free-disk-space@v1.3.1 # with: # tool-cache: true # # - name: Set container image # id: cann-image # run: | # image="ascendai/cann:${{ matrix.chip_type == '910b' && '8.5.0-910b-openeuler24.03-py3.11' || '8.5.0-310p-openeuler24.03-py3.11' }}" # echo "image=${image}" >> "${GITHUB_OUTPUT}" # # - name: Pull container image # run: docker pull "${{ steps.cann-image.outputs.image }}" # # - name: Build # env: # BUILD_TYPE: ${{ matrix.build }} # SOC_TYPE: ascend${{ matrix.chip_type }} # USE_ACL_GRAPH: ${{ matrix.use_acl_graph }} # run: | # HOST_UID=$(id -u) # HOST_GID=$(id -g) # # docker run --rm \ # -v "${PWD}:/workspace" \ # -w /workspace \ # -e SOC_TYPE=${SOC_TYPE} \ # -e BUILD_TYPE=${BUILD_TYPE} \ # -e USE_ACL_GRAPH=${USE_ACL_GRAPH} \ # "${{ steps.cann-image.outputs.image }}" \ # bash -lc ' # set -e # yum install -y --setopt=install_weak_deps=False --setopt=tsflags=nodocs git gcc gcc-c++ make cmake openssl-devel # yum clean all && rm -rf /var/cache/yum # git config --global --add safe.directory "/workspace" # export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/$(uname -m)-linux/devlib/:${LD_LIBRARY_PATH} # cmake -S . -B build \ # -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ # -DGGML_CANN=on \ # -DSOC_TYPE=${SOC_TYPE} \ # -DUSE_ACL_GRAPH=${USE_ACL_GRAPH} # cmake --build build -j $(nproc) # # chown -R '"${HOST_UID}"':'"${HOST_GID}"' /workspace/build # '