| @@ -815,3 +815,88 @@ jobs: | |||||
| lcov --list lcov.info | lcov --list lcov.info | ||||
| - name: codecov-vlen256 | - name: codecov-vlen256 | ||||
| run: ./codecov -t ${{settings.CODECOV_TOKEN.access_token}} -C ${{ ci.sha }} -B ${{ ci.head_ref }} -f build/lcov.info | 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: | steps: | ||||
| - uses: actions/checkout@v3 | - 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: | | 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 | 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 -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 | - name: test | ||||
| run: | | 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 | 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 | |||||