正在显示
4 个修改的文件
包含
197 行增加
和
2 行删除
.github/workflows/linux-gpu.yaml
0 → 100644
| 1 | +name: linux-gpu | ||
| 2 | + | ||
| 3 | +on: | ||
| 4 | + push: | ||
| 5 | + branches: | ||
| 6 | + - master | ||
| 7 | + tags: | ||
| 8 | + - '*' | ||
| 9 | + paths: | ||
| 10 | + - '.github/workflows/linux-gpu.yaml' | ||
| 11 | + - '.github/scripts/test-online-transducer.sh' | ||
| 12 | + - '.github/scripts/test-offline-transducer.sh' | ||
| 13 | + - '.github/scripts/test-offline-ctc.sh' | ||
| 14 | + - 'CMakeLists.txt' | ||
| 15 | + - 'cmake/**' | ||
| 16 | + - 'sherpa-onnx/csrc/*' | ||
| 17 | + - 'sherpa-onnx/c-api/*' | ||
| 18 | + - 'c-api-examples/**' | ||
| 19 | + pull_request: | ||
| 20 | + branches: | ||
| 21 | + - master | ||
| 22 | + paths: | ||
| 23 | + - '.github/workflows/linux-gpu.yaml' | ||
| 24 | + - '.github/scripts/test-online-transducer.sh' | ||
| 25 | + - '.github/scripts/test-offline-transducer.sh' | ||
| 26 | + - '.github/scripts/test-offline-ctc.sh' | ||
| 27 | + - 'CMakeLists.txt' | ||
| 28 | + - 'cmake/**' | ||
| 29 | + - 'sherpa-onnx/csrc/*' | ||
| 30 | + - 'sherpa-onnx/c-api/*' | ||
| 31 | + release: | ||
| 32 | + types: | ||
| 33 | + - published | ||
| 34 | + | ||
| 35 | + workflow_dispatch: | ||
| 36 | + inputs: | ||
| 37 | + release: | ||
| 38 | + description: "Whether to release" | ||
| 39 | + type: boolean | ||
| 40 | + | ||
| 41 | +env: | ||
| 42 | + RELEASE: | ||
| 43 | + |- # Release if there is a release tag name or a release flag in workflow_dispatch | ||
| 44 | + ${{ github.event.release.tag_name != '' || github.event.inputs.release == 'true' }} | ||
| 45 | + | ||
| 46 | +concurrency: | ||
| 47 | + group: linux-gpu-${{ github.ref }} | ||
| 48 | + cancel-in-progress: true | ||
| 49 | + | ||
| 50 | +jobs: | ||
| 51 | + linux_gpu: | ||
| 52 | + runs-on: ${{ matrix.os }} | ||
| 53 | + name: ${{ matrix.build_type }} | ||
| 54 | + strategy: | ||
| 55 | + fail-fast: false | ||
| 56 | + matrix: | ||
| 57 | + os: [ubuntu-latest] | ||
| 58 | + build_type: [Release, Debug] | ||
| 59 | + | ||
| 60 | + steps: | ||
| 61 | + - uses: actions/checkout@v2 | ||
| 62 | + with: | ||
| 63 | + fetch-depth: 0 | ||
| 64 | + | ||
| 65 | + - name: Configure CMake | ||
| 66 | + shell: bash | ||
| 67 | + run: | | ||
| 68 | + mkdir build | ||
| 69 | + cd build | ||
| 70 | + cmake -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=./install -DBUILD_SHARED_LIBS=ON -DSHERPA_ONNX_ENABLE_GPU=ON .. | ||
| 71 | + | ||
| 72 | + - name: Build sherpa-onnx for ubuntu | ||
| 73 | + shell: bash | ||
| 74 | + run: | | ||
| 75 | + cd build | ||
| 76 | + make -j2 | ||
| 77 | + make install | ||
| 78 | + | ||
| 79 | + ls -lh lib | ||
| 80 | + ls -lh bin | ||
| 81 | + | ||
| 82 | + - name: Display dependencies of sherpa-onnx for linux | ||
| 83 | + shell: bash | ||
| 84 | + run: | | ||
| 85 | + file build/bin/sherpa-onnx | ||
| 86 | + readelf -d build/bin/sherpa-onnx | ||
| 87 | + | ||
| 88 | + - name: Test offline Whisper | ||
| 89 | + shell: bash | ||
| 90 | + run: | | ||
| 91 | + export PATH=$PWD/build/bin:$PATH | ||
| 92 | + export EXE=sherpa-onnx-offline | ||
| 93 | + | ||
| 94 | + .github/scripts/test-offline-whisper.sh | ||
| 95 | + | ||
| 96 | + - name: Test offline CTC | ||
| 97 | + shell: bash | ||
| 98 | + run: | | ||
| 99 | + export PATH=$PWD/build/bin:$PATH | ||
| 100 | + export EXE=sherpa-onnx-offline | ||
| 101 | + | ||
| 102 | + .github/scripts/test-offline-ctc.sh | ||
| 103 | + | ||
| 104 | + - name: Test offline transducer | ||
| 105 | + shell: bash | ||
| 106 | + run: | | ||
| 107 | + export PATH=$PWD/build/bin:$PATH | ||
| 108 | + export EXE=sherpa-onnx-offline | ||
| 109 | + | ||
| 110 | + .github/scripts/test-offline-transducer.sh | ||
| 111 | + | ||
| 112 | + - name: Test online transducer | ||
| 113 | + shell: bash | ||
| 114 | + run: | | ||
| 115 | + export PATH=$PWD/build/bin:$PATH | ||
| 116 | + export EXE=sherpa-onnx | ||
| 117 | + | ||
| 118 | + .github/scripts/test-online-transducer.sh | ||
| 119 | + | ||
| 120 | + - name: Test online transducer (C API) | ||
| 121 | + shell: bash | ||
| 122 | + run: | | ||
| 123 | + export PATH=$PWD/build/bin:$PATH | ||
| 124 | + export EXE=decode-file-c-api | ||
| 125 | + | ||
| 126 | + .github/scripts/test-online-transducer.sh | ||
| 127 | + | ||
| 128 | + - name: Copy files | ||
| 129 | + if: env.RELEASE == 'true' | ||
| 130 | + shell: bash | ||
| 131 | + run: | | ||
| 132 | + SHERPA_ONNX_VERSION=v$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) | ||
| 133 | + | ||
| 134 | + dst=sherpa-onnx-${SHERPA_ONNX_VERSION}-linux-x64-gpu | ||
| 135 | + mkdir $dst | ||
| 136 | + | ||
| 137 | + cp -a build/install/bin $dst/ | ||
| 138 | + cp -a build/install/lib $dst/ | ||
| 139 | + cp -a build/install/include $dst/ | ||
| 140 | + | ||
| 141 | + tree $dst | ||
| 142 | + | ||
| 143 | + tar cjvf ${dst}.tar.bz2 $dst | ||
| 144 | + | ||
| 145 | + - name: Release pre-compiled binaries and libs for linux x64 | ||
| 146 | + if: env.RELEASE == 'true' && matrix.build_type == 'Release' | ||
| 147 | + uses: svenstaro/upload-release-action@v2 | ||
| 148 | + with: | ||
| 149 | + file_glob: true | ||
| 150 | + overwrite: true | ||
| 151 | + file: sherpa-onnx-*linux-x64-gpu.tar.bz2 |
| @@ -82,6 +82,19 @@ add_library(onnxruntime_providers_cuda SHARED IMPORTED) | @@ -82,6 +82,19 @@ add_library(onnxruntime_providers_cuda SHARED IMPORTED) | ||
| 82 | set_target_properties(onnxruntime_providers_cuda PROPERTIES | 82 | set_target_properties(onnxruntime_providers_cuda PROPERTIES |
| 83 | IMPORTED_LOCATION ${location_onnxruntime_cuda_lib} | 83 | IMPORTED_LOCATION ${location_onnxruntime_cuda_lib} |
| 84 | ) | 84 | ) |
| 85 | +message(STATUS "location_onnxruntime_cuda_lib: ${location_onnxruntime_cuda_lib}") | ||
| 86 | + | ||
| 87 | +# for libonnxruntime_providers_shared.so | ||
| 88 | +find_library(location_onnxruntime_providers_shared_lib onnxruntime_providers_shared | ||
| 89 | + PATHS | ||
| 90 | + "${onnxruntime_SOURCE_DIR}/lib" | ||
| 91 | + NO_CMAKE_SYSTEM_PATH | ||
| 92 | +) | ||
| 93 | +add_library(onnxruntime_providers_shared SHARED IMPORTED) | ||
| 94 | +set_target_properties(onnxruntime_providers_shared PROPERTIES | ||
| 95 | + IMPORTED_LOCATION ${location_onnxruntime_providers_shared_lib} | ||
| 96 | +) | ||
| 97 | +message(STATUS "location_onnxruntime_providers_shared_lib: ${location_onnxruntime_providers_shared_lib}") | ||
| 85 | 98 | ||
| 86 | file(GLOB onnxruntime_lib_files "${onnxruntime_SOURCE_DIR}/lib/libonnxruntime*") | 99 | file(GLOB onnxruntime_lib_files "${onnxruntime_SOURCE_DIR}/lib/libonnxruntime*") |
| 87 | message(STATUS "onnxruntime lib files: ${onnxruntime_lib_files}") | 100 | message(STATUS "onnxruntime lib files: ${onnxruntime_lib_files}") |
| @@ -82,9 +82,18 @@ file(COPY ${onnxruntime_SOURCE_DIR}/lib/onnxruntime.dll | @@ -82,9 +82,18 @@ file(COPY ${onnxruntime_SOURCE_DIR}/lib/onnxruntime.dll | ||
| 82 | ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE} | 82 | ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE} |
| 83 | ) | 83 | ) |
| 84 | 84 | ||
| 85 | +# for onnxruntime_providers_cuda.dll | ||
| 86 | + | ||
| 87 | +find_library(location_onnxruntime_providers_cuda_lib onnxruntime_providers_cuda | ||
| 88 | + PATHS | ||
| 89 | + "${onnxruntime_SOURCE_DIR}/lib" | ||
| 90 | + NO_CMAKE_SYSTEM_PATH | ||
| 91 | +) | ||
| 92 | +message(STATUS "location_onnxruntime_providers_cuda_lib: ${location_onnxruntime_providers_cuda_lib}") | ||
| 93 | + | ||
| 85 | add_library(onnxruntime_providers_cuda SHARED IMPORTED) | 94 | add_library(onnxruntime_providers_cuda SHARED IMPORTED) |
| 86 | set_target_properties(onnxruntime_providers_cuda PROPERTIES | 95 | set_target_properties(onnxruntime_providers_cuda PROPERTIES |
| 87 | - IMPORTED_LOCATION ${location_onnxruntime} | 96 | + IMPORTED_LOCATION ${location_onnxruntime_providers_cuda_lib} |
| 88 | INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_SOURCE_DIR}/include" | 97 | INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_SOURCE_DIR}/include" |
| 89 | ) | 98 | ) |
| 90 | 99 | ||
| @@ -93,7 +102,28 @@ set_property(TARGET onnxruntime_providers_cuda | @@ -93,7 +102,28 @@ set_property(TARGET onnxruntime_providers_cuda | ||
| 93 | IMPORTED_IMPLIB "${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_cuda.lib" | 102 | IMPORTED_IMPLIB "${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_cuda.lib" |
| 94 | ) | 103 | ) |
| 95 | 104 | ||
| 96 | -file(COPY ${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_cuda.dll | 105 | +# for onnxruntime_providers_shared.dll |
| 106 | + | ||
| 107 | +find_library(location_onnxruntime_providers_shared_lib onnxruntime_providers_shared | ||
| 108 | + PATHS | ||
| 109 | + "${onnxruntime_SOURCE_DIR}/lib" | ||
| 110 | + NO_CMAKE_SYSTEM_PATH | ||
| 111 | +) | ||
| 112 | +message(STATUS "location_onnxruntime_providers_shared_lib: ${location_onnxruntime_providers_shared_lib}") | ||
| 113 | +add_library(onnxruntime_providers_shared SHARED IMPORTED) | ||
| 114 | +set_target_properties(onnxruntime_providers_shared PROPERTIES | ||
| 115 | + IMPORTED_LOCATION ${location_onnxruntime_providers_shared_lib} | ||
| 116 | + INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_SOURCE_DIR}/include" | ||
| 117 | +) | ||
| 118 | +set_property(TARGET onnxruntime_providers_shared | ||
| 119 | + PROPERTY | ||
| 120 | + IMPORTED_IMPLIB "${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_shared.lib" | ||
| 121 | +) | ||
| 122 | + | ||
| 123 | +file( | ||
| 124 | + COPY | ||
| 125 | + ${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_cuda.dll | ||
| 126 | + ${onnxruntime_SOURCE_DIR}/lib/onnxruntime_providers_shared.dll | ||
| 97 | DESTINATION | 127 | DESTINATION |
| 98 | ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE} | 128 | ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE} |
| 99 | ) | 129 | ) |
| @@ -90,6 +90,7 @@ endif() | @@ -90,6 +90,7 @@ endif() | ||
| 90 | if(SHERPA_ONNX_ENABLE_GPU) | 90 | if(SHERPA_ONNX_ENABLE_GPU) |
| 91 | target_link_libraries(sherpa-onnx-core | 91 | target_link_libraries(sherpa-onnx-core |
| 92 | onnxruntime_providers_cuda | 92 | onnxruntime_providers_cuda |
| 93 | + onnxruntime_providers_shared | ||
| 93 | ) | 94 | ) |
| 94 | endif() | 95 | endif() |
| 95 | 96 |
-
请 注册 或 登录 后发表评论