mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-11-20 12:07:33 +00:00
CANN: Add openEuler-cann in build and release (#17192)
Update openEuler version Remove variable ASCEND_SOC_TYPE Modify the chip type Fix case in zip filename Change "device" to "chip_type" Modify the value of chip_type
This commit is contained in:
@@ -3,7 +3,8 @@
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
# Define the CANN base image for easier version updates later
|
# Define the CANN base image for easier version updates later
|
||||||
ARG CANN_BASE_IMAGE=quay.io/ascend/cann:8.1.rc1-910b-openeuler22.03-py3.10
|
ARG CHIP_TYPE=910b
|
||||||
|
ARG CANN_BASE_IMAGE=quay.io/ascend/cann:8.3.rc1.alpha001-${CHIP_TYPE}-openeuler22.03-py3.11
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# BUILD STAGE
|
# BUILD STAGE
|
||||||
@@ -11,9 +12,6 @@ ARG CANN_BASE_IMAGE=quay.io/ascend/cann:8.1.rc1-910b-openeuler22.03-py3.10
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
FROM ${CANN_BASE_IMAGE} AS build
|
FROM ${CANN_BASE_IMAGE} AS build
|
||||||
|
|
||||||
# Define the Ascend chip model for compilation. Default is Ascend910B3
|
|
||||||
ARG ASCEND_SOC_TYPE=Ascend910B3
|
|
||||||
|
|
||||||
# -- Install build dependencies --
|
# -- Install build dependencies --
|
||||||
RUN yum install -y gcc g++ cmake make git libcurl-devel python3 python3-pip && \
|
RUN yum install -y gcc g++ cmake make git libcurl-devel python3 python3-pip && \
|
||||||
yum clean all && \
|
yum clean all && \
|
||||||
@@ -36,13 +34,14 @@ ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/runtime/lib64/stub:$LD_LIBRARY_PATH
|
|||||||
# For brevity, only core variables are listed here. You can paste the original ENV list here.
|
# For brevity, only core variables are listed here. You can paste the original ENV list here.
|
||||||
|
|
||||||
# -- Build llama.cpp --
|
# -- Build llama.cpp --
|
||||||
# Use the passed ASCEND_SOC_TYPE argument and add general build options
|
# Use the passed CHIP_TYPE argument and add general build options
|
||||||
|
ARG CHIP_TYPE
|
||||||
RUN source /usr/local/Ascend/ascend-toolkit/set_env.sh --force \
|
RUN source /usr/local/Ascend/ascend-toolkit/set_env.sh --force \
|
||||||
&& \
|
&& \
|
||||||
cmake -B build \
|
cmake -B build \
|
||||||
-DGGML_CANN=ON \
|
-DGGML_CANN=ON \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DSOC_TYPE=${ASCEND_SOC_TYPE} \
|
-DSOC_TYPE=ascend${CHIP_TYPE} \
|
||||||
. && \
|
. && \
|
||||||
cmake --build build --config Release -j$(nproc)
|
cmake --build build --config Release -j$(nproc)
|
||||||
|
|
||||||
|
|||||||
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@@ -1391,9 +1391,9 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
arch: [x86, aarch64]
|
arch: [x86, aarch64]
|
||||||
cann:
|
cann:
|
||||||
- '8.1.RC1.alpha001-910b-openeuler22.03-py3.10'
|
- '8.3.rc1.alpha001-910b-openeuler22.03-py3.11'
|
||||||
device:
|
chip_type:
|
||||||
- 'ascend910b3'
|
- '910b'
|
||||||
build:
|
build:
|
||||||
- 'Release'
|
- 'Release'
|
||||||
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
|
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
|
||||||
@@ -1414,7 +1414,7 @@ jobs:
|
|||||||
cmake -S . -B build \
|
cmake -S . -B build \
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
|
||||||
-DGGML_CANN=on \
|
-DGGML_CANN=on \
|
||||||
-DSOC_TYPE=${{ matrix.device }}
|
-DSOC_TYPE=ascend${{ matrix.chip_type }}
|
||||||
cmake --build build -j $(nproc)
|
cmake --build build -j $(nproc)
|
||||||
|
|
||||||
# TODO: simplify the following workflows using a matrix
|
# TODO: simplify the following workflows using a matrix
|
||||||
|
|||||||
47
.github/workflows/release.yml
vendored
47
.github/workflows/release.yml
vendored
@@ -693,6 +693,52 @@ jobs:
|
|||||||
path: llama-${{ steps.tag.outputs.name }}-xcframework.zip
|
path: llama-${{ steps.tag.outputs.name }}-xcframework.zip
|
||||||
name: llama-${{ steps.tag.outputs.name }}-xcframework
|
name: llama-${{ steps.tag.outputs.name }}-xcframework
|
||||||
|
|
||||||
|
openEuler-cann:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [x86, aarch64]
|
||||||
|
chip_type: ['910b', '310p']
|
||||||
|
build:
|
||||||
|
- 'Release'
|
||||||
|
runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
|
||||||
|
container: ascendai/cann:${{ matrix.chip_type == '910b' && '8.3.rc1.alpha001-910b-openeuler22.03-py3.11' || '8.3.rc1.alpha001-310p-openeuler22.03-py3.11' }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Dependencies
|
||||||
|
run: |
|
||||||
|
yum update -y
|
||||||
|
yum install -y git gcc gcc-c++ make cmake libcurl-devel
|
||||||
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
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=${{ matrix.build }} \
|
||||||
|
-DGGML_CANN=on \
|
||||||
|
-DSOC_TYPE=ascend${{ matrix.chip_type }}
|
||||||
|
cmake --build build -j $(nproc)
|
||||||
|
|
||||||
|
- name: Determine tag name
|
||||||
|
id: tag
|
||||||
|
uses: ./.github/actions/get-tag-name
|
||||||
|
|
||||||
|
- name: Pack artifacts
|
||||||
|
run: |
|
||||||
|
cp LICENSE ./build/bin/
|
||||||
|
zip -r llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}.zip ./build/bin/*
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
path: llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}.zip
|
||||||
|
name: llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
|
||||||
|
|
||||||
@@ -714,6 +760,7 @@ jobs:
|
|||||||
- macOS-arm64
|
- macOS-arm64
|
||||||
- macOS-x64
|
- macOS-x64
|
||||||
- ios-xcode-build
|
- ios-xcode-build
|
||||||
|
- openEuler-cann
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone
|
- name: Clone
|
||||||
|
|||||||
Reference in New Issue
Block a user