[Relax][ONNX][Transform] Add mode choice, new mode, and warning for take()#18061
Merged
Hzfengsy merged 1 commit intoapache:mainfrom Jul 8, 2025
Merged
[Relax][ONNX][Transform] Add mode choice, new mode, and warning for take()#18061Hzfengsy merged 1 commit intoapache:mainfrom
Hzfengsy merged 1 commit intoapache:mainfrom
Conversation
8d27973 to
fd051de
Compare
Member
|
cc @tlopex |
Hzfengsy
approved these changes
Jul 7, 2025
Member
|
Sorry for the late response. Please rebase the code, and we can get it in |
fda34d2 to
b0f02bd
Compare
- Add a `mode` parameter to Relax’s `take()` - Add `NaN` mode to `take()` - Add unit tests covering all `take()` modes - Add a warning log for `fast` mode - Unify default modes in lower layers to `fast` for consistency with Relax
Contributor
Author
|
@Hzfengsy I've rebased the code according to the newly introduced |
ShiboXing
pushed a commit
to ShiboXing/tvm
that referenced
this pull request
Aug 10, 2025
…ake() (apache#18061) [Relax][Transform] Add mode choice, NaN mode, and warning for take() - Add a `mode` parameter to Relax’s `take()` - Add `NaN` mode to `take()` - Add unit tests covering all `take()` modes - Add a warning log for `fast` mode - Unify default modes in lower layers to `fast` for consistency with Relax
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
I was trying to resolve #18004, where an ONNX model causes a segmentation fault in TVM but not in onnxruntime.
Why the seg fault occurs
This occurs because
take()(used inCompress)defaults tofastmode, which deliberately segfaults on out-of-bounds indices. (I guess for the sake of fast speed)Solution
onnxruntime's
Compressignores out-of-bounds indices, so I initially considered matching that behavior in TVM. However, the ONNX specification doesn’t actually mandate how to handle out-of-bounds indicesQuestion for maintainers
Would you prefer modifying
Compressto slice out invalid indices in order to mirror onnxruntime? although I guess this is unnecessary.Instead of resolving this seg-fault, for now, this PR focuses just on enhancing
take().Updates
modeparameter totake()in RelaxNaNmode totake()take()modesfastmode along an axisfastfor consistency with Relax