class_docstr: auto_functionalized(op, mutated_args_names, kwargs)
  
  This HOP runs a "functional" version of op.
  
  Concretely, it clones kwargs that `op` mutates (specified by
  mutated_args_names), runs `out = op(**kwargs)` with the cloned values,
  and then returns (out, Tuple of the cloned values that were mutated).
  
  We have some restrictions on `op`.
  See `can_auto_functionalize` for the restrictions. We can likely lift
  many of these if users request it.
class_docstr_tok: ["auto_functionalized","(","op",",","mutated_args_names",",","kwargs",")","This","HOP","runs","a","``","functional","''","version","of","op",".","Concretely",",","it","clones","kwargs","that","`","op","`","mutates","(","specified","by","mutated_args_names",")",",","runs","`","out","=","op","(","*","*","kwargs",")","`","with","the","cloned","values",",","and","then","returns","(","out",",","Tuple","of","the","cloned","values","that","were","mutated",")",".","We","have","some","restrictions","on","`","op","`",".","See","`","can_auto_functionalize","`","for","the","restrictions",".","We","can","likely","lift","many","of","these","if","users","request","it","."]
code: def __call__(
      self,
      op: torch._ops.OpOverload,
      mutated_args_names: List[str],
      kwargs: Dict[str, Any],
  ) -> Tuple[Any, Tuple[Tensor, ...]]:
      assert can_auto_functionalize(op)
      assert isinstance(mutated_args_names, list)
      assert isinstance(kwargs, dict)
      return super().__call__(op, mutated_args_names, kwargs)
  
file_path: pytorch/torch/_higher_order_ops/auto_functionalize.py
imports: from typing import Any, Dict, List, Tuple
  import torch
  import torch.utils._pytree
  from torch import Tensor
  from torch._C import DispatchKey
  from torch._ops import HigherOrderOperator
  from torch._prims_common import clone_preserve_strides
  from torch._subclasses.fake_tensor import FakeTensorMode
  from torch.fx.experimental.proxy_tensor import disable_proxy_modes_tracing, ProxyTorchDispatchMode, track_tensor_tree
label_desc: Use image node_id 2 for calling the AutoFunctionalized obj's underlying member method code with example usage: obj.__call__(op, mutated_args_names, kwargs) and returns: super