Skip to content

Fill opset gap for RandomNormal, RandomNormalLike, RandomUniform, RandomUniformLike CUDA ops#27759

Draft
Copilot wants to merge 1 commit intomainfrom
copilot/update-random-onnx-operators
Draft

Fill opset gap for RandomNormal, RandomNormalLike, RandomUniform, RandomUniformLike CUDA ops#27759
Copilot wants to merge 1 commit intomainfrom
copilot/update-random-onnx-operators

Conversation

Copy link
Contributor

Copilot AI commented Mar 19, 2026

Summary

Fills the opset gap for RandomNormal, RandomNormalLike, RandomUniform, and RandomUniformLike operators in the CUDA execution provider, extending coverage from opset 1 to opset 22.

Related issue: #27729

Motivation

These operators were registered only at opset 1 using ONNX_OPERATOR_KERNEL_EX (non-versioned), which per the kernel matching logic in kernel_registry.cc only matches nodes with SinceVersion == 1 (exact match). Models exported with newer opset versions (e.g., opset 22) would fail to find matching CUDA kernels for these operators.

Changes

Following the same pattern as EyeLike (PR #27757):

onnxruntime/core/providers/cuda/generator/random.cc

  • Changed each ONNX_OPERATOR_KERNEL_EX to ONNX_OPERATOR_VERSIONED_KERNEL_EX with version range 1-21
  • Added new ONNX_OPERATOR_KERNEL_EX registrations at opset 22

onnxruntime/core/providers/cuda/cuda_execution_provider.cc

  • Updated forward declarations: ONNX_OPERATOR_KERNEL_CLASS_NAMEONNX_OPERATOR_VERSIONED_KERNEL_CLASS_NAME (1, 21)
  • Added new opset 22 forward declarations
  • Updated BuildKernelCreateInfo entries to use versioned macros (1, 21)
  • Added new opset 22 BuildKernelCreateInfo entries

docs/OperatorKernels.md

  • Updated version ranges for all four CUDA random operators to show [1, 21] and 22+ ranges

…domUniformLike CUDA ops

Cap existing kernels at opset 1-21 (VERSIONED) and add new non-versioned
kernels at opset 22 to match the latest ONNX spec, following the same
pattern as EyeLike (PR #27757).

Changes:
- random.cc: Split each operator into versioned (1-21) and non-versioned (22+)
- cuda_execution_provider.cc: Update forward declarations and registrations
- docs/OperatorKernels.md: Update version ranges for CUDA random operators

Co-authored-by: tianleiwu <30328909+tianleiwu@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants