Repository navigation
Remove stale Intel MKL third-party notice (#33233) #24613
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ONNX Runtime CUDA Builds | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - rel-* | |
| pull_request: | |
| branches: | |
| - main | |
| - rel-* | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.sha }} | |
| cancel-in-progress: true | |
| #TODO: enable --build_nodejs | |
| jobs: | |
| build: | |
| name: Windows GPU CUDA CI Pipeline | |
| runs-on: [ | |
| "self-hosted", | |
| "1ES.Pool=onnxruntime-github-vs2022-latest", | |
| "JobId=windows-cuda-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" | |
| ] | |
| timeout-minutes: 210 | |
| steps: | |
| - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'none' | |
| - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 | |
| with: | |
| python-version: '3.14' | |
| architecture: x64 | |
| - name: Locate vcvarsall and Setup Env | |
| uses: ./.github/actions/locate-vcvarsall-and-setup-env | |
| with: | |
| architecture: x64 | |
| - name: Setup VCPKG Cache | |
| uses: ./.github/actions/setup-vcpkg-cache | |
| with: | |
| key: windows-x64-cuda-relwithdebinfo | |
| path: ${{ runner.temp }}/vcpkg-binary-cache | |
| - name: Install python modules | |
| run: python -m pip install -r .\tools\ci_build\github\windows\python\requirements.txt | |
| working-directory: ${{ github.workspace }} | |
| shell: cmd | |
| - name: Download CUDA SDK v12.8 | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| azcopy.exe cp --recursive "https://lotusscus.blob.core.windows.net/models/cuda_sdk/v12.8" . | |
| dir | |
| shell: pwsh | |
| - name: Add CUDA to PATH | |
| shell: powershell | |
| run: | | |
| Write-Host "Adding CUDA to PATH" | |
| Write-Host "CUDA Path: $env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\extras\CUPTI\lib64" | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: '24.x' | |
| - uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| architecture: x64 | |
| - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 | |
| id: onnx-node-tests-cache | |
| with: | |
| path: ${{ github.workspace }}/js/test/ | |
| key: onnxnodetests-${{ hashFiles('js/scripts/prepare-onnx-node-tests.ts') }} | |
| - name: API Documentation Check and generate | |
| run: | | |
| set ORT_DOXY_SRC=${{ github.workspace }} | |
| set ORT_DOXY_OUT=${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo | |
| mkdir %ORT_DOXY_SRC% | |
| mkdir %ORT_DOXY_OUT% | |
| "C:\Program Files\doxygen\bin\doxygen.exe" ${{ github.workspace }}\tools\ci_build\github\Doxyfile_csharp.cfg | |
| working-directory: ${{ github.workspace }} | |
| shell: cmd | |
| - uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0 | |
| env: | |
| PROCESSOR_ARCHITECTURE: x64 | |
| with: | |
| dotnet-version: '8.x' | |
| - name: Use Nuget 6.x | |
| uses: nuget/setup-nuget@d105a947828025cd7a980103c35ba2bfae586d0f # v2.0.2 | |
| with: | |
| nuget-version: '6.x' | |
| - name: NuGet restore | |
| run: nuget restore ${{ github.workspace }}\packages.config -ConfigFile ${{ github.workspace }}\NuGet.config -PackagesDirectory ${{ runner.temp }}\build\RelWithDebInfo | |
| shell: cmd | |
| - name: Set OnnxRuntimeBuildDirectory | |
| shell: pwsh | |
| run: | | |
| $buildDir = Join-Path ${{ runner.temp }} "build" | |
| echo "OnnxRuntimeBuildDirectory=$buildDir" >> $env:GITHUB_ENV | |
| - name: Configure build | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| npm install -g typescript | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| python.exe ${{ github.workspace }}\tools\ci_build\build.py --update --config RelWithDebInfo --build_dir build --skip_submodule_sync --build_csharp --parallel --nvcc_threads 4 --flash_nvcc_threads 4 --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --build_shared_lib --build_wheel --build_java --use_cuda --cuda_home="$env:RUNNER_TEMP\v12.8" --enable_cuda_profiling --use_vcpkg --use_vcpkg_ms_internal_asset_cache --enable_transformers_tool_test --cmake_extra_defines onnxruntime_QUICK_BUILD=ON --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES=86 --cmake_extra_defines onnxruntime_ENABLE_CUDA_EP_INTERNAL_TESTS=ON | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| shell: pwsh | |
| - name: Verify targeted provider-test build | |
| shell: pwsh | |
| run: | | |
| python.exe ${{ github.workspace }}\tools\ci_build\test_gen_test_exports.py | |
| if ($LASTEXITCODE -ne 0) { | |
| exit $LASTEXITCODE | |
| } | |
| $buildDir = Join-Path $env:OnnxRuntimeBuildDirectory "RelWithDebInfo" | |
| $binaryDir = Join-Path $buildDir "RelWithDebInfo" | |
| $testBinaries = @("onnxruntime_provider_test.exe", "onnxruntime_provider_test.lib", "onnxruntime_providers_cuda_ut.dll") | |
| foreach ($binary in $testBinaries) { | |
| $path = Join-Path $binaryDir $binary | |
| if (Test-Path -LiteralPath $path) { | |
| throw "The targeted-build check requires fresh outputs, but $path already exists." | |
| } | |
| } | |
| cmake --build "$buildDir" --config RelWithDebInfo --target onnxruntime_provider_test --parallel | |
| if ($LASTEXITCODE -ne 0) { | |
| exit $LASTEXITCODE | |
| } | |
| foreach ($binary in $testBinaries) { | |
| $path = Join-Path $binaryDir $binary | |
| if (-not (Test-Path -LiteralPath $path -PathType Leaf)) { | |
| throw "Building only onnxruntime_provider_test did not produce $path" | |
| } | |
| } | |
| - name: Build and Clean Binaries | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| python.exe ${{ github.workspace }}\tools\ci_build\build.py --build --config RelWithDebInfo --build_dir build --skip_submodule_sync --build_csharp --parallel --nvcc_threads 4 --flash_nvcc_threads 4 --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --build_shared_lib --build_wheel --build_java --use_cuda --cuda_home="$env:RUNNER_TEMP\v12.8" --enable_cuda_profiling --use_vcpkg --use_vcpkg_ms_internal_asset_cache --enable_transformers_tool_test --cmake_extra_defines onnxruntime_QUICK_BUILD=ON --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES=86 --cmake_extra_defines onnxruntime_ENABLE_CUDA_EP_INTERNAL_TESTS=ON | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| # Clean up the output directory before uploading artifacts | |
| $outputDir = "${{ runner.temp }}\build\RelWithDebInfo" | |
| Write-Host "Cleaning up files from $outputDir..." | |
| Remove-Item -Path "$outputDir\onnxruntime" -Recurse -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\pybind11" -Recurse -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\models" -Recurse -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\vcpkg_installed" -Recurse -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\_deps" -Recurse -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\CMakeCache.txt" -Force -ErrorAction SilentlyContinue | |
| Remove-Item -Path "$outputDir\CMakeFiles" -Recurse -Force -ErrorAction SilentlyContinue | |
| # Remove intermediate object files as in the original script | |
| Remove-Item -Path $outputDir -Include "*.obj" -Recurse | |
| shell: pwsh | |
| - name: Upload build artifacts | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: build-artifacts | |
| path: ${{ runner.temp }}\build | |
| env: | |
| OrtPackageId: Microsoft.ML.OnnxRuntime.Gpu | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| setVcvars: true | |
| ALLOW_RELEASED_ONNX_OPSET_ONLY: '0' | |
| DocUpdateNeeded: false | |
| ONNXRUNTIME_TEST_GPU_DEVICE_ID: '0' | |
| AZCOPY_AUTO_LOGIN_TYPE: MSI | |
| AZCOPY_MSI_CLIENT_ID: d712a4c7-a0cf-4e87-af75-31510eba0a8e | |
| test: | |
| name: Windows GPU CUDA CI Pipeline Test Job | |
| needs: build | |
| timeout-minutes: 300 | |
| runs-on: [ | |
| "self-hosted", | |
| "1ES.Pool=onnxruntime-github-Win2022-GPU-A10", | |
| "JobId=windows-cuda-test-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" | |
| ] | |
| steps: | |
| - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'none' | |
| - name: Download build artifacts | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: build-artifacts | |
| path: ${{ runner.temp }}\build | |
| - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 | |
| with: | |
| python-version: '3.14' | |
| architecture: x64 | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: '24.x' | |
| - uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| architecture: x64 | |
| - name: Locate vcvarsall and Setup Env | |
| uses: ./.github/actions/locate-vcvarsall-and-setup-env | |
| with: | |
| architecture: x64 | |
| - name: Install python modules | |
| run: python -m pip install -r .\tools\ci_build\github\windows\python\requirements.txt | |
| working-directory: ${{ github.workspace }} | |
| shell: cmd | |
| - name: Download CUDA SDK v12.8 | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| azcopy.exe cp --recursive "https://lotusscus.blob.core.windows.net/models/cuda_sdk/v12.8" . | |
| dir | |
| shell: pwsh | |
| - name: Add CUDA to PATH | |
| shell: powershell | |
| run: | | |
| Write-Host "Adding CUDA to PATH" | |
| Write-Host "CUDA Path: $env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\extras\CUPTI\lib64" | |
| - name: Set OnnxRuntimeBuildDirectory | |
| shell: pwsh | |
| run: | | |
| $buildDir = Join-Path ${{ runner.temp }} "build" | |
| echo "OnnxRuntimeBuildDirectory=$buildDir" >> $env:GITHUB_ENV | |
| - name: Install ONNX Runtime Wheel | |
| uses: ./.github/actions/install-onnxruntime-wheel | |
| with: | |
| whl-directory: ${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo\dist | |
| # Verify the GPU is accessible before running the full test suite. | |
| # If the NVIDIA driver is not available, tests will fail with | |
| # "CUDA failure 100" and waste significant time. | |
| - name: Verify GPU access | |
| shell: pwsh | |
| run: nvidia-smi | |
| - name: Verify CUDA EP internal tests execute | |
| working-directory: ${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo | |
| shell: pwsh | |
| run: | | |
| if (Test-Path -LiteralPath cuda_ep_internal_ci.xml) { | |
| Remove-Item -LiteralPath cuda_ep_internal_ci.xml | |
| } | |
| .\onnxruntime_provider_test.exe --gtest_filter=CUDA_EP_Unittest.All --gtest_output=xml:cuda_ep_internal_ci.xml | |
| if ($LASTEXITCODE -ne 0) { | |
| exit $LASTEXITCODE | |
| } | |
| [xml]$results = Get-Content -LiteralPath cuda_ep_internal_ci.xml -Raw | |
| $executedTest = $results.SelectNodes("/testsuites/testsuite[@name='CUDA_EP_Unittest']/testcase[@name='All' and @status='run' and @result='completed']") | |
| if ($executedTest.Count -ne 1) { | |
| throw "CUDA_EP_Unittest.All did not execute: the test must be present and must not be skipped." | |
| } | |
| - name: Run Tests | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| npm install -g typescript | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| python.exe ${{ github.workspace }}\tools\python\update_ctest_path.py "${{ runner.temp }}\build\RelWithDebInfo\CTestTestfile.cmake" "${{ runner.temp }}\build\RelWithDebInfo" | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| python.exe ${{ github.workspace }}\tools\ci_build\build.py --test --config RelWithDebInfo --build_dir build --skip_submodule_sync --build_csharp --parallel --nvcc_threads 4 --flash_nvcc_threads 4 --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --build_shared_lib --build_wheel --build_java --use_cuda --cuda_home="$env:RUNNER_TEMP\v12.8" --enable_cuda_profiling --use_vcpkg --use_vcpkg_ms_internal_asset_cache --enable_transformers_tool_test --cmake_extra_defines onnxruntime_QUICK_BUILD=ON --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES=86 --cmake_extra_defines onnxruntime_ENABLE_CUDA_EP_INTERNAL_TESTS=ON | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| shell: pwsh | |
| - name: Validate C# native delegates | |
| run: python tools\ValidateNativeDelegateAttributes.py | |
| working-directory: ${{ github.workspace }}\csharp | |
| shell: cmd | |
| env: | |
| OrtPackageId: Microsoft.ML.OnnxRuntime.Gpu | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| setVcvars: true | |
| ALLOW_RELEASED_ONNX_OPSET_ONLY: '0' | |
| DocUpdateNeeded: false | |
| ONNXRUNTIME_TEST_GPU_DEVICE_ID: '0' | |
| AZCOPY_AUTO_LOGIN_TYPE: MSI | |
| AZCOPY_MSI_CLIENT_ID: d712a4c7-a0cf-4e87-af75-31510eba0a8e |