diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6813806..50e9c40 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: include: - artifact_name: onnxruntime-win-x64 os: windows-2022 - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86_64 Rust_CARGO_TARGET=x86_64-pc-windows-msvc --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build/Release release_config: Release - artifact_name: onnxruntime-win-x64-gpu @@ -45,17 +45,17 @@ jobs: # Windowsの場合デフォルトのパッケージ群では不十分であるため、必要そうなパッケージを指定する。ただしいくつかは不要かもしれない cuda_sub_packages: '["cudart", "cuobjdump", "nvcc", "nvdisasm", "thrust", "cublas_dev", "cufft_dev", "curand_dev", "cusolver_dev", "cusparse_dev", "visual_studio_integration"]' cudnn_url: https://developer.download.nvidia.com/compute/redist/cudnn/v8.5.0/local_installers/11.7/cudnn-windows-x86_64-8.5.0.96_cuda11-archive.zip - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --use_dml --use_cuda --cuda_version 11.8 + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86_64 Rust_CARGO_TARGET=x86_64-pc-windows-msvc --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --use_dml --use_cuda --cuda_version 11.8 result_dir: build/Release release_config: Release - artifact_name: onnxruntime-win-x86 os: windows-2022 - build_opts: --x86 --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --x86 --cmake_extra_defines CMAKE_SYSTEM_NAME=Windows CMAKE_SYSTEM_PROCESSOR=x86 Rust_CARGO_TARGET=i686-pc-windows-msvc --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build/Release release_config: Release - artifact_name: onnxruntime-linux-x64 os: ubuntu-20.04 - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=x86_64 Rust_CARGO_TARGET=x86_64-unknown-linux-gnu --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build release_config: Release - artifact_name: onnxruntime-linux-x64-gpu @@ -63,7 +63,7 @@ jobs: cuda_version: 11.8.0 cuda_sub_packages: "[]" # デフォルト cudnn_url: https://developer.download.nvidia.com/compute/redist/cudnn/v8.2.4/cudnn-11.4-linux-x64-v8.2.4.15.tgz - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --use_cuda + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=x86_64 Rust_CARGO_TARGET=x86_64-unknown-linux-gnu --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --use_cuda result_dir: build release_config: Release - artifact_name: onnxruntime-linux-armhf @@ -72,7 +72,7 @@ jobs: cxx_version: "10" linux_cross_arch: arm-linux-gnueabihf symlink_workaround: true - build_opts: --arm --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=armv7l --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --arm --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=armv7l Rust_CARGO_TARGET=armv7-unknown-linux-gnueabihf --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build release_config: Release - artifact_name: onnxruntime-linux-arm64 @@ -81,44 +81,44 @@ jobs: cxx_version: "10" linux_cross_arch: aarch64-linux-gnu symlink_workaround: true - build_opts: --arm64 --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=aarch64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --arm64 --cmake_extra_defines CMAKE_SYSTEM_NAME=Linux CMAKE_SYSTEM_PROCESSOR=aarch64 Rust_CARGO_TARGET=aarch64-unknown-linux-gnu --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build release_config: Release - artifact_name: onnxruntime-osx-arm64 os: macos-11 - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Darwin CMAKE_OSX_ARCHITECTURES=arm64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Darwin CMAKE_OSX_ARCHITECTURES=arm64 Rust_CARGO_TARGET=aarch64-apple-darwin --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build release_config: Release - artifact_name: onnxruntime-osx-x86_64 os: macos-11 - build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Darwin CMAKE_OSX_ARCHITECTURES=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib + build_opts: --cmake_extra_defines CMAKE_SYSTEM_NAME=Darwin CMAKE_OSX_ARCHITECTURES=x86_64 Rust_CARGO_TARGET=x86_64-apple-darwin --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib result_dir: build release_config: Release - artifact_name: onnxruntime-android-x64 os: ubuntu-20.04 - build_opts: --android_abi x86_64 --cmake_extra_defines CMAKE_SYSTEM_NAME=Android CMAKE_SYSTEM_PROCESSOR=x86_64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --android + build_opts: --android_abi x86_64 --cmake_extra_defines CMAKE_SYSTEM_NAME=Android CMAKE_SYSTEM_PROCESSOR=x86_64 Rust_CARGO_TARGET=x86_64-linux-android --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --android result_dir: build release_config: Release - artifact_name: onnxruntime-android-arm64 os: ubuntu-20.04 - build_opts: --android_abi arm64-v8a --cmake_extra_defines CMAKE_SYSTEM_NAME=Android CMAKE_SYSTEM_PROCESSOR=aarch64 --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --android + build_opts: --android_abi arm64-v8a --cmake_extra_defines CMAKE_SYSTEM_NAME=Android CMAKE_SYSTEM_PROCESSOR=aarch64 Rust_CARGO_TARGET=aarch64-linux-android --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --android result_dir: build release_config: Release - artifact_name: onnxruntime-ios-arm64 - os: macos-12 - build_opts: --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphoneos --osx_arch arm64 --apple_deploy_target 16.0 + os: macos-13 + build_opts: --cmake_extra_defines Rust_CARGO_TARGET=aarch64-apple-ios --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphoneos --osx_arch arm64 --apple_deploy_target 16.0 build_opts_workaround_protoc: --path_to_protoc_exe /usr/local/opt/protobuf@21/bin/protoc result_dir: build/Release release_config: Release-iphoneos - artifact_name: onnxruntime-ios-sim-arm64 - os: macos-12 - build_opts: --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphonesimulator --osx_arch arm64 --apple_deploy_target 16.0 + os: macos-13 + build_opts: --cmake_extra_defines Rust_CARGO_TARGET=aarch64-apple-ios-sim --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphonesimulator --osx_arch arm64 --apple_deploy_target 16.0 build_opts_workaround_protoc: --path_to_protoc_exe /usr/local/opt/protobuf@21/bin/protoc result_dir: build/Release release_config: Release-iphonesimulator - artifact_name: onnxruntime-ios-sim-x86_64 - os: macos-12 - build_opts: --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphonesimulator --osx_arch x86_64 --apple_deploy_target 16.0 + os: macos-13 + build_opts: --cmake_extra_defines Rust_CARGO_TARGET=x86_64-apple-ios --config Release --parallel --compile_no_warning_as_error --update --build --build_shared_lib --skip_tests --use_xcode --ios --apple_sysroot iphonesimulator --osx_arch x86_64 --apple_deploy_target 16.0 build_opts_workaround_protoc: --path_to_protoc_exe /usr/local/opt/protobuf@21/bin/protoc result_dir: build/Release release_config: Release-iphonesimulator @@ -149,9 +149,9 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - repository: microsoft/onnxruntime + repository: qryxip/onnxruntime submodules: true - ref: v${{ env.ONNXRUNTIME_VERSION }} + ref: b83441eca570f377c3fea1c37871b9f146851415 - name: Checkout builder uses: actions/checkout@v4 with: @@ -174,6 +174,10 @@ jobs: key: ${{ matrix.artifact_name }}-v${{ env.ONNXRUNTIME_VERSION }}-cache-${{ hashFiles('matrix.json') }} + - name: df -h + if: steps.cache-build-result.outputs.cache-hit != 'true' && runner.os == 'Linux' + run: df -h + - name: Install tree if: steps.cache-build-result.outputs.cache-hit != 'true' && runner.os == 'Windows' uses: msys2/setup-msys2@v2 @@ -248,6 +252,41 @@ jobs: echo "CUDNN_HOME=$cudnn_path" >> "$GITHUB_ENV" + - name: Extract Rust toolchain and target triple + id: rust-toolchain-and-target-triple + if: steps.cache-build-result.outputs.cache-hit != 'true' + run: | + echo "toolchain=$(cat ./rust-toolchain)" >> "$GITHUB_OUTPUT" + # shellcheck disable=SC2001 + echo "target=$(sed -E 's/.*Rust_CARGO_TARGET=([a-z0-9_-]+).*/\1/' <<< '${{ matrix.build_opts }}')" >> "$GITHUB_OUTPUT" + + - name: Set up Rust + if: steps.cache-build-result.outputs.cache-hit != 'true' + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ steps.rust-toolchain-and-target-triple.outputs.toolchain }} + targets: ${{ steps.rust-toolchain-and-target-triple.outputs.target }} + + - name: Try building `decrypt_vv_model` + if: steps.cache-build-result.outputs.cache-hit != 'true' + run: cargo build --manifest-path decrypt_vv_model/Cargo.toml --release -vv + + - name: df -h + if: steps.cache-build-result.outputs.cache-hit != 'true' && runner.os == 'Linux' + run: df -h + + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main + if: runner.os == 'Linux' + with: + tool-cache: false + large-packages: false + swap-storage: false + + - name: df -h + if: steps.cache-build-result.outputs.cache-hit != 'true' && runner.os == 'Linux' + run: df -h + - name: Configure build environment for non-x86_64 Linux if: steps.cache-build-result.outputs.cache-hit != 'true' && startsWith(matrix.os, 'ubuntu') && matrix.linux_cross_arch run: |