Op Eligibility
Ops that run in "float64" or non-floating-point dtypes are not
eligible, and will run in these types whether or not autocast is
enabled.
Only out-of-place ops and Tensor methods are eligible. In-place
variants and calls that explicitly supply an "out=..." Tensor are
allowed in autocast-enabled regions, but won't go through autocasting.
For example, in an autocast-enabled region "a.addmm(b, c)" can
autocast, but "a.addmm_(b, c)" and "a.addmm(b, c, out=d)" cannot. For
best performance and stability, prefer out-of-place ops in autocast-
enabled regions.
Ops called with an explicit "dtype=..." argument are not eligible, and
will produce output that respects the "dtype" argument.
CUDA Op-Specific Behavior
The following lists describe the behavior of eligible ops in autocast-
enabled regions. These ops always go through autocasting whether they
are invoked as part of a "torch.nn.Module", as a function, or as a