ncnn

Форк
0
/
linux-arm-cpu-gcc.yml 
206 строк · 7.0 Кб
1
name: linux-arm-cpu-gcc
2
on:
3
  push:
4
    branches: [master]
5
    paths:
6
    - '.github/workflows/linux-arm-cpu-gcc.yml'
7
    - 'toolchains/arm-linux-gnueabi.toolchain.cmake'
8
    - 'toolchains/arm-linux-gnueabihf.toolchain.cmake'
9
    - 'CMakeLists.txt'
10
    - 'cmake/**'
11
    - 'src/*'
12
    - 'src/layer/*'
13
    - 'src/layer/arm/**'
14
    - 'tests/**'
15
  pull_request:
16
    branches: [master]
17
    paths:
18
    - '.github/workflows/linux-arm-cpu-gcc.yml'
19
    - 'toolchains/arm-linux-gnueabi.toolchain.cmake'
20
    - 'toolchains/arm-linux-gnueabihf.toolchain.cmake'
21
    - 'CMakeLists.txt'
22
    - 'cmake/**'
23
    - 'src/*'
24
    - 'src/layer/*'
25
    - 'src/layer/arm/**'
26
    - 'tests/**'
27
concurrency:
28
  group: linux-arm-cpu-gcc-${{ github.ref }}
29
  cancel-in-progress: true
30
permissions:
31
  contents: read
32

33
jobs:
34
  linux-gcc-arm:
35
    runs-on: ubuntu-20.04
36
    steps:
37
    - uses: actions/checkout@v4
38

39
    - name: cache-qemu
40
      id: cache-qemu
41
      uses: actions/cache@v4
42
      with:
43
        path: qemu-install
44
        key: qemu-arm-install-20220502-2
45
    - name: install-qemu-build-deps
46
      if: steps.cache-qemu.outputs.cache-hit != 'true'
47
      run: |
48
        sudo apt-get update
49
        sudo apt-get install autoconf automake autotools-dev ninja-build
50
    - name: checkout-qemu
51
      if: steps.cache-qemu.outputs.cache-hit != 'true'
52
      uses: actions/checkout@v4
53
      with:
54
        repository: qemu/qemu
55
        path: qemu
56
        ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65
57
    - name: qemu
58
      if: steps.cache-qemu.outputs.cache-hit != 'true'
59
      run: |
60
        cd qemu
61
        ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system
62
        make -j$(nproc)
63
        make install
64

65
    - name: arm-gnu-toolchain
66
      run: |
67
        sudo apt-get update
68
        sudo apt-get install g++-arm-linux-gnueabi
69

70
    - name: build
71
      run: |
72
        mkdir build && cd build
73
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabi.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
74
        cmake --build . -j $(nproc)
75
    - name: test
76
      run: |
77
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
78
        cd build
79
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabi" ctest --output-on-failure -j $(nproc)
80

81
    - name: build-noint8
82
      run: |
83
        mkdir build-noint8 && cd build-noint8
84
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabi.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
85
        cmake --build . -j $(nproc)
86
    - name: test-noint8
87
      run: |
88
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
89
        cd build-noint8
90
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabi" ctest --output-on-failure -j $(nproc)
91

92
  linux-gcc-armhf:
93
    runs-on: ubuntu-20.04
94
    steps:
95
    - uses: actions/checkout@v4
96

97
    - name: cache-qemu
98
      id: cache-qemu
99
      uses: actions/cache@v4
100
      with:
101
        path: qemu-install
102
        key: qemu-arm-install-20220502-2
103
    - name: install-qemu-build-deps
104
      if: steps.cache-qemu.outputs.cache-hit != 'true'
105
      run: |
106
        sudo apt-get update
107
        sudo apt-get install autoconf automake autotools-dev ninja-build
108
    - name: checkout-qemu
109
      if: steps.cache-qemu.outputs.cache-hit != 'true'
110
      uses: actions/checkout@v4
111
      with:
112
        repository: qemu/qemu
113
        path: qemu
114
        ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65
115
    - name: qemu
116
      if: steps.cache-qemu.outputs.cache-hit != 'true'
117
      run: |
118
        cd qemu
119
        ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system
120
        make -j$(nproc)
121
        make install
122

123
    - name: arm-gnu-toolchain
124
      run: |
125
        sudo apt-get update
126
        sudo apt-get install g++-arm-linux-gnueabihf
127

128
    - name: build
129
      run: |
130
        mkdir build && cd build
131
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
132
        cmake --build . -j $(nproc)
133
    - name: test
134
      run: |
135
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
136
        cd build
137
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc)
138

139
    - name: build-noint8
140
      run: |
141
        mkdir build-noint8 && cd build-noint8
142
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON -DNCNN_INT8=OFF ..
143
        cmake --build . -j $(nproc)
144
    - name: test-noint8
145
      run: |
146
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
147
        cd build-noint8
148
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc)
149

150
  linux-gcc-armhf-vfpv3-d16:
151
    runs-on: ubuntu-20.04
152
    steps:
153
    - uses: actions/checkout@v4
154

155
    - name: cache-qemu
156
      id: cache-qemu
157
      uses: actions/cache@v4
158
      with:
159
        path: qemu-install
160
        key: qemu-arm-install-20220502-2
161
    - name: install-qemu-build-deps
162
      if: steps.cache-qemu.outputs.cache-hit != 'true'
163
      run: |
164
        sudo apt-get update
165
        sudo apt-get install autoconf automake autotools-dev ninja-build
166
    - name: checkout-qemu
167
      if: steps.cache-qemu.outputs.cache-hit != 'true'
168
      uses: actions/checkout@v4
169
      with:
170
        repository: qemu/qemu
171
        path: qemu
172
        ref: f5643914a9e8f79c606a76e6a9d7ea82a3fc3e65
173
    - name: qemu
174
      if: steps.cache-qemu.outputs.cache-hit != 'true'
175
      run: |
176
        cd qemu
177
        ./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=arm-linux-user --disable-system
178
        make -j$(nproc)
179
        make install
180

181
    - name: arm-gnu-toolchain
182
      run: |
183
        sudo apt-get update
184
        sudo apt-get install g++-arm-linux-gnueabihf
185

186
    - name: build
187
      run: |
188
        mkdir build && cd build
189
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf-vfpv3-d16.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON ..
190
        cmake --build . -j $(nproc)
191
    - name: test
192
      run: |
193
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
194
        cd build
195
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc)
196

197
    - name: build-noint8
198
      run: |
199
        mkdir build-noint8 && cd build-noint8
200
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf-vfpv3-d16.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON -DNCNN_INT8=OFF ..
201
        cmake --build . -j $(nproc)
202
    - name: test-noint8
203
      run: |
204
        export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
205
        cd build-noint8
206
        TESTS_EXECUTABLE_LOADER=qemu-arm TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/arm-linux-gnueabihf" ctest --output-on-failure -j $(nproc)
207

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.