mirror of
https://github.com/Tencent/ncnn.git
synced 2026-10-26 02:46:47 +08:00
update loongarch ci toolchain, add loongarch lsx coverage (#4747)
This commit is contained in:
@@ -815,3 +815,88 @@ jobs:
|
||||
lcov --list lcov.info
|
||||
- name: codecov-vlen256
|
||||
run: ./codecov -t ${{settings.CODECOV_TOKEN.access_token}} -C ${{ ci.sha }} -B ${{ ci.head_ref }} -f build/lcov.info
|
||||
|
||||
linux-gcc-loongarch64:
|
||||
name: linux-gcc-loongarch64
|
||||
strategy:
|
||||
matrix:
|
||||
OPENMP: ['OFF', 'ON']
|
||||
|
||||
runs-on:
|
||||
pool-name: docker
|
||||
container:
|
||||
image: bkci/ci:ubuntu
|
||||
steps:
|
||||
- name: checkout
|
||||
checkout: self
|
||||
with:
|
||||
strategy: FRESH_CHECKOUT
|
||||
enableSubmodule: false
|
||||
enableGitLfs: false
|
||||
|
||||
- name: install-deps
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y lcov libcapstone4 libglib2.0-0 python3-venv
|
||||
curl https://uploader.codecov.io/verification.gpg | gpg --no-default-keyring --keyring trustedkeys.gpg --import
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
|
||||
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
|
||||
gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
|
||||
shasum -a 256 -c codecov.SHA256SUM
|
||||
chmod +x codecov
|
||||
wget https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/8.0/loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz
|
||||
tar -xf loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz
|
||||
|
||||
- name: cache-qemu
|
||||
id: cache-qemu
|
||||
uses: cache@1.*
|
||||
with:
|
||||
cachePaths: qemu-install
|
||||
cacheKey: qemu-loongarch64-install-20230524
|
||||
|
||||
- name: checkout-qemu
|
||||
if: steps.cache-qemu.outputs.cacheHit != 'true'
|
||||
checkout: https://github.com/qemu/qemu.git
|
||||
with:
|
||||
pullType: COMMIT_ID
|
||||
refName: 1c12355b31046a6b35a4f50c85c4f01afb1bd728
|
||||
localPath: qemu
|
||||
enableSubmodule: false
|
||||
enableGitLfs: false
|
||||
|
||||
- name: qemu
|
||||
if: steps.cache-qemu.outputs.cacheHit != 'true'
|
||||
run: |
|
||||
echo 'deb-src http://mirrors.cloud.tencent.com/debian bullseye main' | tee -a /etc/apt/sources.list
|
||||
echo 'deb-src http://mirrors.cloud.tencent.com/debian bullseye-updates main' | tee -a /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get build-dep -y qemu
|
||||
cd qemu
|
||||
wget https://github.com/nihui/ncnn-assets/raw/master/qemu-patches/0001-linux-user-Expose-loongarch-lsx-isa-bit-in-get_elf_hwcap.patch
|
||||
patch -p1 -i 0001-linux-user-Expose-loongarch-lsx-isa-bit-in-get_elf_hwcap.patch
|
||||
./configure --prefix=${{ci.workspace}}/qemu-install --target-list=loongarch64-linux-user --disable-system
|
||||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
- name: build
|
||||
run: |
|
||||
export LOONGARCH64_ROOT_PATH=${{ci.workspace}}/cross-tools
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/loongarch64-unknown-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_LSX=ON -DNCNN_OPENMP=${{matrix.OPENMP}} -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
|
||||
cmake --build . -j $(nproc)
|
||||
- name: test
|
||||
run: |
|
||||
export PATH=${{ci.workspace}}/qemu-install/bin:$PATH
|
||||
cd build
|
||||
TESTS_EXECUTABLE_LOADER=qemu-loongarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;${{ci.workspace}}/cross-tools/target" ctest --output-on-failure -j $(nproc)
|
||||
- name: lcov-collect
|
||||
run: |
|
||||
cd build
|
||||
lcov --gcov-tool ${{ci.workspace}}/cross-tools/bin/loongarch64-unknown-linux-gnu-gcov -d ./src -c -o lcov.info
|
||||
lcov -r lcov.info '/usr/*' -o lcov.info
|
||||
lcov -r lcov.info '*/build/*' -o lcov.info
|
||||
lcov -r lcov.info '*/cross-tools/*' -o lcov.info
|
||||
lcov --list lcov.info
|
||||
- name: codecov
|
||||
run: ./codecov -t ${{settings.CODECOV_TOKEN.access_token}} -C ${{ ci.sha }} -B ${{ ci.head_ref }} -f build/lcov.info
|
||||
|
||||
@@ -37,42 +37,41 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: loongarch64-toolchain
|
||||
run: |
|
||||
wget https://github.com/loongson/build-tools/releases/download/2022.05.29/loongarch64-clfs-5.0-cross-tools-gcc-full.tar.xz
|
||||
tar -xf loongarch64-clfs-5.0-cross-tools-gcc-full.tar.xz
|
||||
wget https://github.com/loongson/build-tools/releases/download/2022.05.29/qemu-loongarch64
|
||||
chmod +x qemu-loongarch64
|
||||
# - name: cache-qemu
|
||||
# id: cache-qemu
|
||||
# uses: actions/cache@v3
|
||||
# with:
|
||||
# path: qemu-install
|
||||
# key: qemu-loongarch64-install-20230524
|
||||
# - name: checkout-qemu
|
||||
# if: steps.cache-qemu.outputs.cache-hit != 'true'
|
||||
# uses: actions/checkout@v3
|
||||
# with:
|
||||
# repository: qemu/qemu
|
||||
# path: qemu
|
||||
# ref: 1c12355b31046a6b35a4f50c85c4f01afb1bd728
|
||||
# - name: qemu
|
||||
# if: steps.cache-qemu.outputs.cache-hit != 'true'
|
||||
# run: |
|
||||
# cd qemu
|
||||
# ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=loongarch64-linux-user --disable-system
|
||||
# make -j2
|
||||
# make install
|
||||
|
||||
- name: configure
|
||||
run: |
|
||||
export LOONGARCH64_ROOT_PATH=$GITHUB_WORKSPACE/cross-tools
|
||||
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/cross-tools/target/usr/lib64:$LD_LIBRARY_PATH
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/loongarch64-unknown-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
|
||||
# - name: loongarch64-toolchain
|
||||
# run: |
|
||||
# wget https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/8.0/loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz
|
||||
# tar -xf loongarch64-clfs-8.0-cross-tools-gcc-full.tar.xz
|
||||
|
||||
- name: build
|
||||
run: cmake --build build -j 4
|
||||
run: |
|
||||
export LOONGARCH64_ROOT_PATH=/data/action/osd/cross-tools
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/loongarch64-unknown-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
|
||||
cmake --build . -j 4
|
||||
|
||||
- name: test
|
||||
run: |
|
||||
export PATH=$GITHUB_WORKSPACE:$PATH
|
||||
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/cross-tools/target/usr/lib64:$LD_LIBRARY_PATH
|
||||
export PATH=/data/action/osd/qemu-loongson/qemu-install/bin:$PATH
|
||||
cd build
|
||||
TESTS_EXECUTABLE_LOADER=qemu-loongarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;$GITHUB_WORKSPACE/cross-tools/target/usr" ctest --output-on-failure -j 4
|
||||
|
||||
linux-gcc-loongarch64-lsx:
|
||||
runs-on: [self-hosted, linux, centos]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: configure
|
||||
run: |
|
||||
export LOONGARCH64_ROOT_PATH=/data/action/osd/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.1
|
||||
export LD_LIBRARY_PATH=/data/action/osd/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.1/sysroot/usr/lib64:$LD_LIBRARY_PATH
|
||||
mkdir build && cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/loongarch64-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
|
||||
|
||||
- name: build
|
||||
run: cmake --build build -j 4
|
||||
TESTS_EXECUTABLE_LOADER=qemu-loongarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/data/action/osd/cross-tools/target" ctest --output-on-failure -j 4
|
||||
|
||||
Reference in New Issue
Block a user