ci: release 1.30.0 - #125
Merged
Merged
Conversation
onnxruntime 1.30.0 builds its cuda13 release package against CUDA 13.0 with cuDNN 9.14.0.64, and its cuda12 package on nvidia/cuda:12.8.1-cudnn-devel-ubi8 (tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines*.yml and tools/ci_build/github/linux/docker/Dockerfile.manylinux2_28_cuda). The base images had drifted ahead of that to 13.1.1 / 12.9.1, which bought nothing -- onnxruntime never calls the newer CUDA APIs -- while raising NVIDIA_REQUIRE_CUDA and with it the minimum driver every user of these images needs. Pin both to what onnxruntime actually built against. nvidia/cuda:13.0.3-cudnn ships cuDNN 9.14.0.64, the exact version in the onnxruntime pipeline. The driver floor drops in both variants: linux-cuda13: cuda>=13.1 -> cuda>=13.0 (driver 590 -> 580) linux-cuda12: cuda>=12.9 -> cuda>=12.8 (driver 575 -> 570) Going the other way is a hard break, not a warning: a 13.3-based image fails `docker run` outright with "unsatisfied condition: cuda>=13.3", and setting NVIDIA_DISABLE_REQUIRE=1 to bypass that only moves the failure to session create, where cudaSetDevice returns "CUDA failure 100: no CUDA-capable device is detected". There is no user-side workaround short of a driver upgrade. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
deploy/update-version.sh 1.29.1 -> 1.30.0.Upstream surface review (1.29.1 -> 1.30.0)
ONNX_TENSOR_ELEMENT_DATA_TYPE_*is identical between the two releases, sovalue_info::type_name/get_tensor_data/input_value.cppneed no change.GraphOptimizationLevelis still{DISABLE_ALL, ENABLE_BASIC, ENABLE_EXTENDED, ENABLE_LAYOUT, ENABLE_ALL}andExecutionModestill{SEQUENTIAL, PARALLEL};parse_graph_opt_level/parse_execution_modeand the openapi enums already cover every value.Ort::SessionOptionssetters. The method set ofSessionOptionsImplis unchanged, soapply_session_optionshas nothing to expose.ORT_EXTERNAL_MEMORY_HANDLE_TYPE_{HOST_ALLOCATION,MEMORY_OPAQUE_FD,MEMORY_WIN32}— part of the new memory-importing API, which the server does not mirror.kOrtSessionOptionsConfigEnableSavedRuntimeOptimizationsandkOrtSessionOptionsMlasNchwcPointwiseConvMaxInputChannelBatch—config_entriesforwards arbitrary keys verbatim, and the openapi docs describe the passthrough rather than enumerating keys, so there is no doc drift either.src/onnx/cuda/session_options.cppforwards keys verbatim regardless.cmake/deps.txtidentical inrel-1.29.1andrel-1.30.0), so the opset 23 pin intest/sample-onnx-generator/sample-datatypes.pyis still current.onnxruntime-linux-aarch64-1.30.0.tgzis a valid archive again, so the nupkg fallback indownload-onnxruntime.shstays dormant as intended.Version-pinned assumptions re-validated (still true at 1.30.0, left unchanged)
value_info.cpp/unit_test_value_info.cpp: onnxruntime still stores uint2 unpacked, one value per byte. TheEXPECT_NEtripwire inunit_test_contextdid not fire.value_info.cpp/ComplexNotConstructibleInOrt127: onnxruntime still cannot allocate complex tensors.Docker base images
c-api-noopenmp-packaging-pipelines-cuda13.ymlpins the cuda13 package to CUDA13.0with cuDNN9.14.0.64, andDockerfile.manylinux2_28_cudabuilds the cuda12 package onnvidia/cuda:12.8.1-cudnn-devel-ubi8. Our base images had drifted ahead of both, raisingNVIDIA_REQUIRE_CUDAwithout onnxruntime ever using the newer CUDA APIs.linux-cuda1313.1.1-cudnn(cuDNN 9.17.1.4)13.0.3-cudnn(cuDNN 9.14.0.64 — exact match)cuda>=13.1->cuda>=13.0linux-cuda1212.9.1-cudnn(cuDNN 9.10.2.21)12.8.1-cudnn(cuDNN 9.8.0.87)cuda>=12.9->cuda>=12.8Moving in the opposite direction was measured and rejected: a
13.3.1-based image builds fine but failsdocker runwithunsatisfied condition: cuda>=13.3, and bypassing that withNVIDIA_DISABLE_REQUIRE=1only defers the failure to session create (CUDA failure 100: no CUDA-capable device is detected). CUDA 13.3 needs driver >= 610, so every user on 590-609 would have lost the image with no workaround.Test plan
linux-cuda13on13.0.3-cudnnbuilds and passesdocker-image-test.sh(CUDAdevice_id: 0, inference OK).linux-cuda12on12.8.1-cudnnbuilds and passesdocker-image-test.sh(CUDAdevice_id: 0, inference OK).