| @@ -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: 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: configure | |||
| - name: build | |||
| run: | | |||
| export LOONGARCH64_ROOT_PATH=$GITHUB_WORKSPACE/cross-tools | |||
| export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/cross-tools/target/usr/lib64:$LD_LIBRARY_PATH | |||
| 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 .. | |||
| - name: build | |||
| run: cmake --build build -j 4 | |||
| 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 | |||