benchmark
8c5abe8e - Support for proxying frozen dataclasses (#134846)

Commit
1 year ago
Support for proxying frozen dataclasses (#134846) Summary: Fixes https://github.com/pytorch/pytorch/issues/133858 Details: Previously Dynamo would treat dataclasses as UserDefinedVariables. This was non-desirable if we would like to proxy the value into the graph, which is needed for TensorSubclassMetadata. To rectify this, frozen dataclasses are now able to be proxied similarly to NamedTuples. We require the object to be frozen, because if arbitrary mutation were allowed, we would need to replay those mutations in the graph after construction of the object. For tracing construction of the variable, the generated `__init__` for the dataclass uses `object.__setattr__` because frozen dataclasses throw errors on the usual `__setattr__` invocation. With this treatment, no special handling is needed in dynamo for frozen dataclass construction. X-link: https://github.com/pytorch/pytorch/pull/134846 Approved by: https://github.com/bdhirsh, https://github.com/anijain2305 Reviewed By: izaitsevfb Differential Revision: D62214715 Pulled By: mlazos fbshipit-source-id: 5d23a33adc34ae7522a85d021cfbef0e77ed824a
Author
Parents
Loading