From eb8f84e2a2dc2299e1c0c670a9c9e5065e7f7209 Mon Sep 17 00:00:00 2001 From: Chi Lo <54722500+chilo-ms@users.noreply.github.com> Date: Thu, 26 Aug 2021 10:16:16 -0700 Subject: [PATCH] Fix issue of GPU tarball/zip/java package (#8850) * modify for test * modify for test * modify for test * modify for test * modify for test * modify for test * prepare for PR * Rename cuda directory to gpu directory in tarball * Fix gpu java package * fix bug * fix small bug --- .../c-api-noopenmp-packaging-pipelines.yml | 9 ++++---- .../linux/extract_and_bundle_gpu_package.sh | 4 +++- .../github/windows/extract_zip_files_gpu.ps1 | 23 +++++++++++-------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml b/tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml index b745497b19..901f2f32c0 100644 --- a/tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml +++ b/tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml @@ -110,9 +110,10 @@ jobs: buildArch: x64 msbuildPlatform: x64 packageName: x64-tensorrt - buildparameter: --use_tensorrt --tensorrt_home="C:\local\TensorRT-8.0.1.6.Windows10.x86_64.cuda-11.3.cudnn8.2" --cuda_version=11.1 --cuda_home="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1" --cudnn_home="C:\local\cudnn-11.4-windows-x64-v8.2.2.26\cuda" --enable_onnx_tests --enable_wcos --cmake_extra_defines "CMAKE_CUDA_ARCHITECTURES=37;52;60;61;70;75;80" + buildparameter: --use_tensorrt --tensorrt_home="C:\local\TensorRT-8.0.1.6.Windows10.x86_64.cuda-11.3.cudnn8.2" --cuda_version=11.1 --cuda_home="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1" --cudnn_home="C:\local\cudnn-11.4-windows-x64-v8.2.2.26\cuda" --enable_onnx_tests --enable_wcos --build_java --cmake_extra_defines "CMAKE_CUDA_ARCHITECTURES=37;52;60;61;70;75;80" runTests: ${{ parameters.RunOnnxRuntimeTests }} - buildJava: false + buildJava: true + java_artifact_id: onnxruntime_gpu - template: templates/android-java-api-aar.yml parameters: @@ -135,7 +136,7 @@ jobs: displayName: 'Download Pipeline Artifact - Win x64' inputs: buildType: 'current' - artifactName: 'drop-onnxruntime-java-win-x64-cuda' + artifactName: 'drop-onnxruntime-java-win-x64-tensorrt' targetPath: '$(Build.BinariesDirectory)\java-artifact\onnxruntime-java-win-x64' - task: DownloadPipelineArtifact@2 @@ -296,7 +297,7 @@ jobs: - task: ArchiveFiles@2 inputs: rootFolderOrFile: '$(Build.BinariesDirectory)/tgz-artifacts/onnxruntime-linux-x64-gpu' - includeRootFolder: true + includeRootFolder: false archiveType: 'tar' # Options: zip, 7z, tar, wim tarCompression: 'gz' archiveFile: '$(Build.ArtifactStagingDirectory)/onnxruntime-linux-x64-gpu-$(OnnxRuntimeVersion).tgz' diff --git a/tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh b/tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh index e4597f549f..04ac0e35a6 100755 --- a/tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh +++ b/tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh @@ -18,9 +18,11 @@ mkdir -p $ARTIFACT_DIR/onnxruntime-linux-x64-tensorrt tar zxvf $ARTIFACT_DIR/onnxruntime-linux-x64-tensorrt-*.tgz -C onnxruntime-linux-x64-tensorrt rm $ARTIFACT_DIR/onnxruntime-linux-x64-tensorrt-*.tgz +# Rename cuda directory to gpu directory mkdir -p $ARTIFACT_DIR/onnxruntime-linux-x64-gpu -TAR_NAME=`ls $ARTIFACT_DIR/onnxruntime-linux-x64-cuda-*.tgz` tar zxvf $ARTIFACT_DIR/onnxruntime-linux-x64-cuda-*.tgz -C onnxruntime-linux-x64-gpu +VERSION=`ls $ARTIFACT_DIR/onnxruntime-linux-x64-gpu | sed 's/onnxruntime-linux-x64-cuda-//'` +mv $ARTIFACT_DIR/onnxruntime-linux-x64-gpu/* $ARTIFACT_DIR/onnxruntime-linux-x64-gpu/onnxruntime-linux-x64-gpu-$VERSION rm $ARTIFACT_DIR/onnxruntime-linux-x64-cuda-*.tgz cp onnxruntime-linux-x64-tensorrt/*/lib/libonnxruntime.so* onnxruntime-linux-x64-gpu/*/lib diff --git a/tools/ci_build/github/windows/extract_zip_files_gpu.ps1 b/tools/ci_build/github/windows/extract_zip_files_gpu.ps1 index a99ecbc7c2..6671fecfbe 100644 --- a/tools/ci_build/github/windows/extract_zip_files_gpu.ps1 +++ b/tools/ci_build/github/windows/extract_zip_files_gpu.ps1 @@ -1,6 +1,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. +# extract *-cuda-*.zip and *-tensorrt-*.zip Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\zip-artifacts -Filter *.zip | Foreach-Object { $cmd = "7z.exe x $($_.FullName) -y -o$Env:BUILD_BINARIESDIRECTORY\zip-artifacts" @@ -8,13 +9,17 @@ Foreach-Object { Invoke-Expression -Command $cmd } -Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\zip-artifacts -Filter *onnxruntime-win-x64-cuda*.zip | -Foreach-Object { - $($_.FullName) -match '.*onnxruntime-win-x64-cuda-(.*).zip' - $version=$matches[1] - Rename-Item -Path $($_.FullName) -NewName onnxruntime-win-x64-gpu-$version.zip -} - -Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\zip-artifacts | Where-Object { $_.Name -match 'onnxruntime-win-x64-cuda-\d{1,}\.\d{1,}\.\d{1,}$' } | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\zip-artifacts\onnxruntime-win-x64-gpu - +# Rename tensorrt directory for later use in bundle_dlls_gpu.bat Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\zip-artifacts | Where-Object { $_.Name -match 'onnxruntime-win-x64-tensorrt-\d{1,}\.\d{1,}\.\d{1,}$' } | Rename-Item -NewName $Env:BUILD_BINARIESDIRECTORY\zip-artifacts\onnxruntime-win-x64-tensorrt +Remove-Item $Env:BUILD_BINARIESDIRECTORY\zip-artifacts\*.zip + +# Rename cuda directory to gpu directory and re-compress it for later use in bundle_dlls_gpu.bat +Get-ChildItem $Env:BUILD_BINARIESDIRECTORY\zip-artifacts -Filter *cuda* | +Foreach-Object { + $($_.FullName) -match '.*onnxruntime-win-x64-cuda-(.*)' + $version=$matches[1] + Rename-Item -Path $($_.FullName) -NewName onnxruntime-win-x64-gpu-$version + $cmd = "7z.exe a $Env:BUILD_BINARIESDIRECTORY\zip-artifacts\onnxruntime-win-x64-gpu-$version.zip $Env:BUILD_BINARIESDIRECTORY\zip-artifacts\onnxruntime-win-x64-gpu-$version" + Write-Output $cmd + Invoke-Expression -Command $cmd +}