From 5d58b930b575e48bbb1aa5f705c9585eed9ebaad Mon Sep 17 00:00:00 2001 From: John Gibson <5562125+jgibson2@users.noreply.github.com> Date: Fri, 28 Nov 2025 17:32:29 +0000 Subject: [PATCH 1/2] Support negative dimensions on "aten.split_with_sizes_copy.default" --- backends/apple/mps/operators/shape_ops.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backends/apple/mps/operators/shape_ops.py b/backends/apple/mps/operators/shape_ops.py index 76c559018be..528a6b60bd8 100644 --- a/backends/apple/mps/operators/shape_ops.py +++ b/backends/apple/mps/operators/shape_ops.py @@ -243,6 +243,8 @@ def define_node( split_sizes = eval_shape(cast(torch.SymInt, node.args[1])) dim = cast(int, node.args[2]) input_shape = get_shape(get_input_node(node, 0)) + if dim < 0: + dim += len(input_shape) if dim < 0 or dim >= len(input_shape): raise RuntimeError( From 5f1a078491d239e639c4e2517bcd02e26237ca7b Mon Sep 17 00:00:00 2001 From: John Gibson <5562125+jgibson2@users.noreply.github.com> Date: Fri, 28 Nov 2025 17:42:49 +0000 Subject: [PATCH 2/2] Report original uncorrected dimension on failure. --- backends/apple/mps/operators/shape_ops.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/apple/mps/operators/shape_ops.py b/backends/apple/mps/operators/shape_ops.py index 528a6b60bd8..d75e42d1c45 100644 --- a/backends/apple/mps/operators/shape_ops.py +++ b/backends/apple/mps/operators/shape_ops.py @@ -248,7 +248,7 @@ def define_node( if dim < 0 or dim >= len(input_shape): raise RuntimeError( - f"split_copy: dim {dim} out of range for input tensor with {len(input_shape)} dimensions" + f"split_copy: dim {cast(int, node.args[2])} out of range for input tensor with {len(input_shape)} dimensions" ) mps_node = MPSNode(