Buckets:
| # Copyright (c) 2025 SandAI. All Rights Reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| from typing import Any | |
| import torch | |
| from torch import fx | |
| from torch.fx.experimental.symbolic_shapes import is_symbolic | |
| from magi_compiler.utils.logger import magi_logger | |
| def is_func(node: fx.Node, target) -> bool: | |
| return node.op == "call_function" and node.target == target | |
| def detect_symbolic_tensor_indices(fake_args: list[Any]) -> list[int]: | |
| """Detect indices of input tensors that have symbolic shapes.""" | |
| sym_tensor_indices = [ | |
| i | |
| for i, x in enumerate(fake_args) | |
| if isinstance(x, torch._subclasses.fake_tensor.FakeTensor) and any(is_symbolic(d) for d in x.size()) | |
| ] | |
| if sym_tensor_indices: | |
| magi_logger.info(f"Detected {len(sym_tensor_indices)} symbolic input tensors (dynamic seqlen) for CUDA Graph.") | |
| return sym_tensor_indices | |
Xet Storage Details
- Size:
- 1.39 kB
- Xet hash:
- f3f01572c9a9015f9ce0decc5d879ca01d825b67c6661bd7676b730966425c0d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.