Skip to content

Comments

Support rankRange for op output tensors in opSupportLimits#857

Merged
huningxin merged 5 commits intowebmachinelearning:mainfrom
huningxin:output_tensor_rank
Sep 25, 2025
Merged

Support rankRange for op output tensors in opSupportLimits#857
huningxin merged 5 commits intowebmachinelearning:mainfrom
huningxin:output_tensor_rank

Conversation

@huningxin
Copy link
Contributor

@huningxin huningxin commented Jun 4, 2025

This PR also supports rankRange for graph input, constant and output in opSupportLimits.

Fix #835


Preview | Diff

@huningxin huningxin requested review from fdwr and reillyeon June 4, 2025 08:08
@huningxin
Copy link
Contributor Author

/cc @philloooo

Copy link
Collaborator

@fdwr fdwr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Ningxin. 👍

@huningxin
Copy link
Contributor Author

FYI, I am prototyping it in Chromium, will inform whether this PR is good to merge.

Copy link
Collaborator

@fdwr fdwr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Contributor Author

@huningxin huningxin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fdwr @reillyeon , adding new changes that are based on Chromium prototype: https://chromium-review.googlesource.com/c/chromium/src/+/6903617, please take another look. Thanks!

<td>*output*</td>
<td>{{MLArgMinMaxOptions/outputDataType}}</td>
<td>{{input}}'s [=MLOperand/rank=] - 1 to {{input}}'s [=MLOperand/rank=]</td>
<td>{{MLOperandDataType/"int32"}}, {{MLOperandDataType/"int64"}}</td>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: This should list all allowed data types. The original outputDatatype is more useful for output data type calculation in the algorithm steps.

<td>*output*</td>
<td>[=/same type as|same as=] {{a}}</td>
<td>maximum of {{a}}'s [=MLOperand/rank=] and {{b}}'s [=MLOperand/rank=]</td>
<td>[=/any rank|N=]</td>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: Same here and the following, the allowed ranks, not the output rank calculation.

Copy link
Collaborator

@fdwr fdwr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔

1. Add allowed ranks for all lstm and gru output tensors.
2. Validate new shape's rank of expand and reshape operations.
3. Simplify allowed ranks for some operations based on implementation
   experience.
4. Other minor changes for consistency.
Move the output tensor rank range info from constraints table to Returns
section for argMin/Max and reduction ops.

The element-wise binary and logical ops, matmul and where ops already have
such info in the Returns section.

Fix issues of output rank description of prelu and scatterND.
Copy link
Collaborator

@fdwr fdwr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Thanks NH.

chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 17, 2025
This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
aarongable pushed a commit to chromium/chromium that referenced this pull request Sep 18, 2025
This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1516982}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 18, 2025
This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1516982}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 18, 2025
This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1516982}
aarongable pushed a commit to chromium/chromium that referenced this pull request Sep 18, 2025
…mits"

This reverts commit 6591b48.

Reason for revert: A lot of virtual/webnn-service-on-npu tests are failing.

Bug: 445793611

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I7a4d7c4b3d2296ebaf5b7285fa7448adaa79546c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963214
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Tsuyoshi Horo <[email protected]>
Owners-Override: Tsuyoshi Horo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517021}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 18, 2025
…mits"

This reverts commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5.

Reason for revert: A lot of virtual/webnn-service-on-npu tests are failing.

Bug: 445793611

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I7a4d7c4b3d2296ebaf5b7285fa7448adaa79546c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963214
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Tsuyoshi Horo <[email protected]>
Owners-Override: Tsuyoshi Horo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517021}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 18, 2025
…mits"

This reverts commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5.

Reason for revert: A lot of virtual/webnn-service-on-npu tests are failing.

Bug: 445793611

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I7a4d7c4b3d2296ebaf5b7285fa7448adaa79546c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963214
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Tsuyoshi Horo <[email protected]>
Owners-Override: Tsuyoshi Horo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517021}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 18, 2025
…mits"

This is a reland of commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
aarongable pushed a commit to chromium/chromium that referenced this pull request Sep 19, 2025
…mits"

This is a reland of commit 6591b48

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963704
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517665}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 19, 2025
…mits"

This is a reland of commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963704
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517665}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 19, 2025
…mits"

This is a reland of commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963704
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517665}
@fdwr
Copy link
Collaborator

fdwr commented Sep 23, 2025

@huningxin
Copy link
Contributor Author

@huningxin : Are you waiting for https://chromium-review.googlesource.com/c/chromium/src/+/6972836 to complete before completing this one?

@fdwr , I don't think Chromium CL-6972836 blocks this PR. @anssiko helped put this PR onto this week's WG meeting's agenda. I'd like to wait for the discussion before merging this one.

@fdwr
Copy link
Collaborator

fdwr commented Sep 23, 2025

I'd like to wait for the discussion before merging this one.

Okie dokie.

UPDATE 2025-09-25 meeting: Good to merge.

lando-prod-mozilla bot pushed a commit to mozilla-firefox/firefox that referenced this pull request Sep 24, 2025
…ensors in opSupportLimits, a=testonly

Automatic update from web-platform-tests
WebNN: Support rankRange for op output tensors in opSupportLimits

This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1516982}

--

wpt-commits: 34da2092da4074353852e8c29cbdef803f96de86
wpt-pr: 54904
lando-prod-mozilla bot pushed a commit to mozilla-firefox/firefox that referenced this pull request Sep 24, 2025
…output tensors in opSupportLimits", a=testonly

Automatic update from web-platform-tests
Revert "WebNN: Support rankRange for op output tensors in opSupportLimits"

This reverts commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5.

Reason for revert: A lot of virtual/webnn-service-on-npu tests are failing.

Bug: 445793611

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I7a4d7c4b3d2296ebaf5b7285fa7448adaa79546c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963214
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Tsuyoshi Horo <[email protected]>
Owners-Override: Tsuyoshi Horo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517021}

--

wpt-commits: 63da81f59a723a0ac53e1c19ce5d3848801bc82b
wpt-pr: 54916
lando-prod-mozilla bot pushed a commit to mozilla-firefox/firefox that referenced this pull request Sep 24, 2025
…output tensors in opSupportLimits", a=testonly

Automatic update from web-platform-tests
Reland "WebNN: Support rankRange for op output tensors in opSupportLimits"

This is a reland of commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try​:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963704
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517665}

--

wpt-commits: 611eeeaf5144cc732b63b68a716bc1d1cbd96cbf
wpt-pr: 54932
@huningxin
Copy link
Contributor Author

No further comments were received in WebML WG Teleconference – 25 September 2025, I am going to merge it.

@huningxin huningxin merged commit e281c95 into webmachinelearning:main Sep 25, 2025
2 checks passed
github-actions bot added a commit that referenced this pull request Sep 25, 2025
SHA: e281c95
Reason: push, by huningxin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Honry added a commit to Honry/onnxruntime that referenced this pull request Sep 29, 2025
WebNN spec changed the output names of gru and lstm for
OpSupportLimits in webmachinelearning/webnn#857,
renamed them in WebNN EP as well.
fdwr pushed a commit to microsoft/onnxruntime that referenced this pull request Sep 30, 2025
WebNN spec changed the output names of `gru` and `lstm` for
`OpSupportLimits` in
webmachinelearning/webnn#857, renamed them in
WebNN EP as well.
fs-eire pushed a commit to microsoft/onnxruntime that referenced this pull request Oct 24, 2025
WebNN spec changed the output names of `gru` and `lstm` for
`OpSupportLimits` in
webmachinelearning/webnn#857, renamed them in
WebNN EP as well.
mertcanaltin pushed a commit to mertcanaltin/wpt that referenced this pull request Oct 26, 2025
This CL prototypes WebNN spec change [1] that supports tensor rank
range for graph input, constant, output and each operation's output.

This CL adds new shape rank validation according to allowed output
tensor rank of expand and reshape operations.

The sequence output of gru and cell operations has different rank,
this CL extends context properties to support them.

For logical ops, the output rank ranges are set to each op's input
rank ranges, while the output data types are set to unified logical
output data type of context properties.

[1]: webmachinelearning/webnn#857

Bug: 442209350
Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Alex Gough <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1516982}
mertcanaltin pushed a commit to mertcanaltin/wpt that referenced this pull request Oct 26, 2025
…mits"

This reverts commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5.

Reason for revert: A lot of virtual/webnn-service-on-npu tests are failing.

Bug: 445793611

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I7a4d7c4b3d2296ebaf5b7285fa7448adaa79546c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963214
Bot-Commit: Rubber Stamper <[email protected]>
Commit-Queue: Tsuyoshi Horo <[email protected]>
Owners-Override: Tsuyoshi Horo <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517021}
mertcanaltin pushed a commit to mertcanaltin/wpt that referenced this pull request Oct 26, 2025
…mits"

This is a reland of commit 6591b48a057a42cc1a621b2e7b74aa35157c2bd5

This reland fixes WPT failures for CoreML by keeping the error message
consistent and adding the WPT rebaseline results.

Because blink-side can validate the rank range of operation output,
graph input and output, this reland removes the async error handling
for reshape output, graph input and output in CoreML backend.

Original change's description:
> WebNN: Support rankRange for op output tensors in opSupportLimits
>
> This CL prototypes WebNN spec change [1] that supports tensor rank
> range for graph input, constant, output and each operation's output.
>
> This CL adds new shape rank validation according to allowed output
> tensor rank of expand and reshape operations.
>
> The sequence output of gru and cell operations has different rank,
> this CL extends context properties to support them.
>
> For logical ops, the output rank ranges are set to each op's input
> rank ranges, while the output data types are set to unified logical
> output data type of context properties.
>
> [1]: webmachinelearning/webnn#857
>
> Bug: 442209350
> Change-Id: Ie5ca5c794cebb4586bcccaaa8d237be1dffea458
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6903617
> Reviewed-by: Reilly Grant <[email protected]>
> Reviewed-by: Alex Gough <[email protected]>
> Commit-Queue: ningxin hu <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1516982}

Bug: 442209350, 445793611
Change-Id: Id666c89b8860abe06bac9a1e912057887c3fe03f
Cq-Include-Trybots: luci.chromium.try:win11-blink-rel, mac14.arm64-blink-rel, mac14-blink-rel, mac15.arm64-blink-rel, mac15-blink-rel, linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6963704
Reviewed-by: Alex Gough <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: ningxin hu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1517665}
naomiOvad pushed a commit to naomiOvad/onnxruntime that referenced this pull request Nov 2, 2025
WebNN spec changed the output names of `gru` and `lstm` for
`OpSupportLimits` in
webmachinelearning/webnn#857, renamed them in
WebNN EP as well.
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.

opSupportLimits: Level of detail for output tensor(s)?

3 participants