Skip to content

Commit 03f2386

Browse files
authored
Merge branch 'master' into riscv-xtheadvector
2 parents 0d0099b + 488c292 commit 03f2386

14 files changed

+2633
-199
lines changed

.github/workflows/android.yml

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
NCNN_CMAKE_OPTIONS: |
3838
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake \
3939
-DANDROID_PLATFORM=android-21 \
40+
-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON \
4041
-DCMAKE_INSTALL_PREFIX=install \
4142
-DCMAKE_BUILD_TYPE=Release \
4243
-DNCNN_VULKAN=ON \

.github/workflows/linux-riscv64.yml

+59-17
Original file line numberDiff line numberDiff line change
@@ -82,43 +82,85 @@ jobs:
8282
cd build
8383
TESTS_EXECUTABLE_LOADER=qemu-riscv64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/riscv64-linux-gnu" ctest --output-on-failure -j $(nproc)
8484
85-
c906:
85+
xuantie:
86+
name: xuantie-${{ matrix.cpu }}
8687
runs-on: [self-hosted, linux, ubuntu]
88+
strategy:
89+
fail-fast: false
90+
matrix:
91+
include:
92+
- { cpu: c906, QEMU_CPU: c906fdv, OPENMP: OFF, RVV: OFF, XTHEADVECTOR: ON, ZFH: ON, ZVFH: OFF }
93+
- { cpu: c910, QEMU_CPU: c910v, OPENMP: ON, RVV: OFF, XTHEADVECTOR: ON, ZFH: ON, ZVFH: OFF }
94+
- { cpu: c908, QEMU_CPU: c908v, OPENMP: ON, RVV: ON, XTHEADVECTOR: OFF, ZFH: ON, ZVFH: ON }
95+
8796
steps:
8897
- uses: actions/checkout@v4
8998

90-
- name: configure
99+
- name: build
91100
run: |
92101
export RISCV_ROOT_PATH=/data/action/osd/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1
93102
mkdir build && cd build
94-
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/c906-v301.toolchain.cmake -DCMAKE_BUILD_TYPE=release -DNCNN_OPENMP=OFF -DNCNN_THREADS=OFF -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=OFF -DNCNN_XTHEADVECTOR=ON -DNCNN_ZFH=ON -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DNCNN_BUILD_TESTS=ON ..
95-
- name: build
96-
run: cmake --build build -j 8
103+
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/${{ matrix.cpu }}-v301.toolchain.cmake -DCMAKE_BUILD_TYPE=release \
104+
-DNCNN_OPENMP=${{ matrix.OPENMP }} -DNCNN_THREADS=${{ matrix.OPENMP }} \
105+
-DNCNN_RUNTIME_CPU=OFF \
106+
-DNCNN_RVV=${{ matrix.RVV }} \
107+
-DNCNN_XTHEADVECTOR=${{ matrix.XTHEADVECTOR }} \
108+
-DNCNN_ZFH=${{ matrix.ZFH }} \
109+
-DNCNN_ZVFH=${{ matrix.ZVFH }} \
110+
-DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DNCNN_BUILD_TESTS=ON ..
111+
cmake --build . -j 8
97112
98113
- name: test
99114
run: |
100115
export PATH=/data/action/osd/Xuantie-qemu-x86_64-Ubuntu-20.04-V5.0.4-B20241127-1130/bin:$PATH
101116
cd build
102-
TESTS_EXECUTABLE_LOADER=qemu-riscv64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-cpu;c906fdv" ctest --output-on-failure -j 8
117+
TESTS_EXECUTABLE_LOADER=qemu-riscv64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-cpu;${{ matrix.QEMU_CPU }}" ctest --output-on-failure -j 8
103118
104-
c910:
119+
spacemit:
120+
name: spacemit-${{ matrix.cpu }}
105121
runs-on: [self-hosted, linux, ubuntu]
122+
strategy:
123+
fail-fast: false
124+
matrix:
125+
include:
126+
- { cpu: x60, QEMU_CPU: rv64, OPENMP: ON, RVV: ON, XTHEADVECTOR: OFF, ZFH: ON, ZVFH: ON }
127+
106128
steps:
107129
- uses: actions/checkout@v4
108130

109-
- name: configure
131+
- name: build-gcc
110132
run: |
111-
export RISCV_ROOT_PATH=/data/action/osd/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1
112-
mkdir build && cd build
113-
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/c910-v301.toolchain.cmake -DCMAKE_BUILD_TYPE=release -DNCNN_OPENMP=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=OFF -DNCNN_XTHEADVECTOR=ON -DNCNN_ZFH=ON -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DNCNN_BUILD_TESTS=ON ..
114-
- name: build
115-
run: cmake --build build -j 8
133+
export RISCV_ROOT_PATH=/data/action/osd/spacemit-toolchain-linux-glibc-x86_64-v1.0.5
134+
mkdir build-gcc && cd build-gcc
135+
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/k1.toolchain.cmake -DCMAKE_BUILD_TYPE=release \
136+
-DNCNN_OPENMP=${{ matrix.OPENMP }} -DNCNN_THREADS=${{ matrix.OPENMP }} \
137+
-DNCNN_RUNTIME_CPU=OFF \
138+
-DNCNN_RVV=${{ matrix.RVV }} \
139+
-DNCNN_XTHEADVECTOR=${{ matrix.XTHEADVECTOR }} \
140+
-DNCNN_ZFH=${{ matrix.ZFH }} \
141+
-DNCNN_ZVFH=${{ matrix.ZVFH }} \
142+
-DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DNCNN_BUILD_TESTS=ON ..
143+
cmake --build . -j 8
116144
117-
- name: test
145+
- name: build-llvm
118146
run: |
119-
export PATH=/data/action/osd/Xuantie-qemu-x86_64-Ubuntu-20.04-V5.0.4-B20241127-1130/bin:$PATH
120-
cd build
121-
TESTS_EXECUTABLE_LOADER=qemu-riscv64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-cpu;c910v" ctest --output-on-failure -j 8
147+
export RISCV_ROOT_PATH=/data/action/osd/spacemit-toolchain-linux-glibc-x86_64-v1.0.5
148+
mkdir build-llvm && cd build-llvm
149+
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/k1.llvm.toolchain.cmake -DCMAKE_BUILD_TYPE=release \
150+
-DNCNN_OPENMP=${{ matrix.OPENMP }} -DNCNN_THREADS=${{ matrix.OPENMP }} \
151+
-DNCNN_RUNTIME_CPU=OFF \
152+
-DNCNN_RVV=${{ matrix.RVV }} \
153+
-DNCNN_XTHEADVECTOR=${{ matrix.XTHEADVECTOR }} \
154+
-DNCNN_ZFH=${{ matrix.ZFH }} \
155+
-DNCNN_ZVFH=${{ matrix.ZVFH }} \
156+
-DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON -DNCNN_BUILD_TESTS=ON ..
157+
cmake --build . -j 8
158+
159+
# - name: test-gcc
160+
# run: |
161+
# export PATH=/data/action/osd/spacemit-ai-sdk.v1.1.0/spacemit-qemu/bin:$PATH
162+
# cd build-gcc
163+
# TESTS_EXECUTABLE_LOADER=qemu-riscv64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-cpu;${{ matrix.QEMU_CPU }}" ctest --output-on-failure -j 8
122164

123165
gcc-rvv:
124166
runs-on: [self-hosted, linux, ubuntu]

.github/workflows/release.yml

+13-5
Original file line numberDiff line numberDiff line change
@@ -1916,14 +1916,15 @@ jobs:
19161916
PACKAGENAME: ncnn-${{ needs.setup.outputs.VERSION }}-${{ matrix.opt.id }}
19171917
NCNN_CMAKE_OPTIONS: |
19181918
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake \
1919+
-DANDROID_PLATFORM=android-21 \
19191920
-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=False \
1921+
-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON \
19201922
-DCMAKE_BUILD_TYPE=Release \
19211923
-DCMAKE_INSTALL_PREFIX=install \
19221924
-DNCNN_VERSION_STRING="${{ needs.setup.outputs.VERSION }}" \
19231925
-DNCNN_BUILD_BENCHMARK=OFF \
19241926
-DNCNN_VULKAN=${{ matrix.opt.vulkan }} \
19251927
-DNCNN_SHARED_LIB=${{ matrix.opt.shared-lib }} \
1926-
-DNCNN_AVX512BF16=OFF \
19271928
19281929
steps:
19291930
- uses: actions/checkout@v4
@@ -1934,25 +1935,31 @@ jobs:
19341935
- name: build-armeabi-v7a
19351936
run: |
19361937
mkdir build-armeabi-v7a && cd build-armeabi-v7a
1937-
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON -DANDROID_PLATFORM=android-14 ..
1938+
cmake ${{ env.NCNN_CMAKE_OPTIONS }} -DANDROID_ABI="armeabi-v7a" -DANDROID_ARM_NEON=ON ..
19381939
cmake --build . -j $(nproc)
19391940
cmake --build . --target install/strip
19401941
- name: build-arm64-v8a
19411942
run: |
19421943
mkdir build-arm64-v8a && cd build-arm64-v8a
1943-
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 ..
1944+
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="arm64-v8a" ..
19441945
cmake --build . -j $(nproc)
19451946
cmake --build . --target install/strip
19461947
- name: build-x86
19471948
run: |
19481949
mkdir build-x86 && cd build-x86
1949-
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="x86" -DANDROID_PLATFORM=android-14 ..
1950+
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="x86" ..
19501951
cmake --build . -j $(nproc)
19511952
cmake --build . --target install/strip
19521953
- name: build-x86_64
19531954
run: |
19541955
mkdir build-x86_64 && cd build-x86_64
1955-
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 ..
1956+
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="x86_64" ..
1957+
cmake --build . -j $(nproc)
1958+
cmake --build . --target install/strip
1959+
- name: build-riscv64
1960+
run: |
1961+
mkdir build-riscv64 && cd build-riscv64
1962+
cmake ${{ env.NCNN_CMAKE_OPTIONS }}-DANDROID_ABI="riscv64" ..
19561963
cmake --build . -j $(nproc)
19571964
cmake --build . --target install/strip
19581965
- name: package
@@ -1963,6 +1970,7 @@ jobs:
19631970
cp -a build-arm64-v8a/install ${{ env.PACKAGENAME }}/arm64-v8a
19641971
cp -a build-x86/install ${{ env.PACKAGENAME }}/x86
19651972
cp -a build-x86_64/install ${{ env.PACKAGENAME }}/x86_64
1973+
cp -a build-riscv64/install ${{ env.PACKAGENAME }}/riscv64
19661974
rm -f ${{ env.PACKAGENAME }}.zip
19671975
zip -9 -y -r ${{ env.PACKAGENAME }}.zip ${{ env.PACKAGENAME }}
19681976
- name: upload-zip

0 commit comments

Comments
 (0)