[Functionalization] Fix test_non_view (#4505)
Summary:
This pull request implements the _propagate_xla_data op to propagate information through the in-place ops transform pass in during functionalization such that we can preserve the InputOutputAlias optimization.
I have tried to compare the usage of InputOutputAlias with and without Functionalization by using resnet fake data with one epoch:
Without Func:
Metric: InputOutputAliasCount
TotalSamples: 11
Accumulator: 1071.00
ValueRate: 0.90 / second
Rate: 0.00927083 / second
Percentiles: 1%=0.00; 5%=0.00; 10%=0.00; 20%=0.00; 50%=1.00; 80%=267.00; 90%=320.00; 95%=481.00; 99%=481.00
With Func:
Metric: InputOutputAliasCount
TotalSamples: 13
Accumulator: 859.00
ValueRate: 0.54 / second
Rate: 0.0082071 / second
Percentiles: 1%=0.00; 5%=0.00; 10%=0.00; 20%=0.00; 50%=1.00; 80%=214.00; 90%=214.00; 95%=269.00; 99%=269.00
Test Plan:
CI