[ET-VK] TagMemoryMetaPass skips a tensor that sits in a list alongside None
メンテナーはふだん 1 日以内に返信
評価
この issue はまだ評価されていません。
説明
🐛 Describe the bug
is_tensor_arg_node() and is_non_constant_tensor_node() in backends/vulkan/utils.py only recognise a list argument when every entry is a tensor node. An argument that mixes tensor nodes with None is therefore treated as a non-tensor and skipped entirely by TagMemoryMetaPass, so the tensors inside it never get a storage or memory-layout representation.
index.Tensor is the case that surfaces it: x[:, :, idx] reaches the edge dialect as index.Tensor(x, [None, None, idx]), and idx lives in a list whose other entries are None. Any op implementation that then asserts on the layout of that tensor fails, because nothing assigned it one.
This is easy to miss because the op that exposed it can be routed around. #22481 makes index.Tensor work on any axis by forcing CONTIGUOUS_BUFFER for higher-rank self, which sidesteps the tagging gap rather than closing it. The gap is still there for the next operator that takes an optional-tensor list.
A fix is a helper along the lines of
def tensor_nodes_in_arg(arg):
"""The tensor nodes of an argument, skipping Nones."""
used everywhere the tagging pass walks a list argument. Lists that are entirely tensors, which is every other operator today, would behave exactly as before.
Originally found while working on #22406, which is being closed in favour of #22481; filing separately so the finding is not lost with it.
Versions
Reproduces on main (a6b115bff6).
cc @SS-JIA @manuelcandales @digantdesai @cbilgin
- 主要言語
- Python
- スター
- 5.1k
- フォーク
- 1.2k
- 平均マージ
- 2日 8時間
- マージ済み PR(30日)
- 610
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pytorch/executorch のほかの issue
-
Portable remainder kernel: wrong sign for integers and float64 rounded to float対応中かも @JakeStevens が今日担当しました。 オープンbug module: kernels triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
pytorch/executorch#23682 · 担当者 2 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement triaged
難易度 2/5 半日 初心者へのやさしさ 68/100
pytorch/executorch#21640 ·
メンテナーはふだん 1 日以内に返信
-
Feedback about Toolsオープンinvalid module: doc
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
pytorch/executorch#23706 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Portable floor_divide returns non-whole numbers for floats and wrong values for a zero divisor対応中かも @JakeStevens が今日担当しました。 オープンbug module: kernels
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
pytorch/executorch#23684 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
torch.var_mean and torch.std_mean fail in to_edge: aten.var_mean.correction is not core ATen and has no core decomposition対応中かも @usmanmateen が今日担当しました。 オープンbug module: exir triaged
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
pytorch/executorch#23680 · 担当者 2 名 ·
メンテナーはふだん 1 日以内に返信
pytorch/executorch の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
spec-kitty/spec-kitty#6112 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: OpenRouter streaming chunks report the requested router name instead of the model OpenRouter served対応中かも @Mrun25 が今日担当しました。 オープンbug llm translation
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
BerriAI/litellm#46095 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
uberdeveloper/fastbt#29 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
andrew-blake/melcloudhome#368 ·
メンテナーはふだん 1 日以内に返信
-
lane:discover
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
SPARDiffData/differential-data-collection#33 ·
メンテナーはふだん 1 日以内に返信