Commit Graph

141 Commits

Author SHA1 Message Date
Richard Zou
ad42c7d0f3 Implement name inference rule for empty_like, clone (#24108)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/24108

`torch.empty_like(tensor)` and `tensor.clone()` both propagate names to
the output tensor.

As a part of this change, I fixed the empty(..., names=) overload to
include the `memory_format` argument in the normal `empty` declaration
in native_functions.yaml.

Test Plan: - [namedtensor ci]

Differential Revision: D16763392

Pulled By: zou3519

fbshipit-source-id: c7b2bc058d26a515a5fd8deef22c2acb290c8816
2019-08-14 06:19:24 -07:00
Richard Zou
65fa0233c5 Add names argument to ones, rand, randn, zeros, full; fix empty (#24107)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/24107

In the short term, we implement this by having overloads for each of
these functions. In the long term, the plan is to move DimnameList to
TensorOptions so that we do not have to duplicate work.

Also fixes the implementation of empty. If there are no names, we should
just return an unnamed tensor instead of telling the user we don't
support their backend/layout.

Test Plan: - [namedtensor ci]

Differential Revision: D16763393

Pulled By: zou3519

fbshipit-source-id: 7324a6b157187d4f74abc5459052f3323a417412
2019-08-14 06:19:21 -07:00
Richard Zou
98a3b3d565 Add name propagation for at::alias, add tensor.set_names (#24202)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/24202

tensor.set_names(names) is the out-of-place variant of
tensor.set_names_(names). This naming is probably confusing so I am
taking any and all suggestions.

Test Plan: - run tests [namedtensor ci]

Differential Revision: D16773014

Pulled By: zou3519

fbshipit-source-id: 61024303c1a34db631cc4cb2c53757345e40d72c
2019-08-13 17:01:18 -07:00
Richard Zou
75db368031 Revert D16763388: Add name propagation for at::alias, add tensor.set_names
Differential Revision:
D16763388

Original commit changeset: 4b2fb3acc051

fbshipit-source-id: 5be35bdcc2e7c71378af9e34be19305bdd4ba0d1
2019-08-12 13:42:43 -07:00
Richard Zou
6772f537f0 Revert D16763390: Improve test_namedtensor.py with named tensor equality check
Differential Revision:
D16763390

Original commit changeset: 170e27ebc4d7

fbshipit-source-id: dbabe837793d8db6493a221b91e43a065baece75
2019-08-12 13:42:39 -07:00
Richard Zou
90f3f9d9aa Improve test_namedtensor.py with named tensor equality check (#24106)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/24106

Test Plan
- Code reading. assertTensorDataAndNamesEqual isn't used in this commit
but it'll be used in future commits.
- [namedtensor ci]

Test Plan: Imported from OSS

Differential Revision: D16763390

Pulled By: zou3519

fbshipit-source-id: 170e27ebc4d79aca939c5d101489b20faedc6133
2019-08-12 12:45:00 -07:00
Richard Zou
1108fa1acb Add name propagation for at::alias, add tensor.set_names (#24105)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/24105

tensor.set_names(names) is the out-of-place variant of
tensor.set_names_(names). This naming is probably confusing so I am
taking any and all suggestions.

Test Plan: - run tests [namedtensor ci]

Differential Revision: D16763388

Pulled By: zou3519

fbshipit-source-id: 4b2fb3acc0514515e7ca805dbc5c3d4a9bd96317
2019-08-12 12:44:56 -07:00
Richard Zou
0bba302da5 Revert D16621830: Add name propagation for at::alias, add tensor.set_names
Differential Revision:
D16621830

Original commit changeset: f8a3837d3a37

fbshipit-source-id: 801ab858a0741d98b0b9d56763fa70a9010fe75e
2019-08-09 10:55:18 -07:00
Richard Zou
71352fbd9a Revert D16667816: Improve test_namedtensor.py with named tensor equality check
Differential Revision:
D16667816

Original commit changeset: 66519cd5d17b

fbshipit-source-id: 51a26cdfb5624695a492d3ac93fb7a402c44e11a
2019-08-09 10:55:14 -07:00
Richard Zou
de97b12dbd Revert D16647820: Add names argument to ones, rand, randn, zeros, full
Differential Revision:
D16647820

Original commit changeset: c6c53c5f26a8

fbshipit-source-id: a341c6eda49f5dd2e1712b65e61fef99791f0668
2019-08-09 10:55:10 -07:00
Richard Zou
177a5c3f41 Revert D16647821: Implement name inference rule for empty_like, clone
Differential Revision:
D16647821

Original commit changeset: 43b261f3456b

fbshipit-source-id: 03caecd6898efd292b4f5c5b7254f7d31d502d6a
2019-08-09 10:55:06 -07:00
Richard Zou
521484eaec Revert D16657926: Named inference for contiguous(), bernoulli variants, and dropout.
Differential Revision:
D16657926

Original commit changeset: 8cd46765b1c7

fbshipit-source-id: fce2202dd101cfc3153f279a0a4651c9b735e044
2019-08-09 10:32:48 -07:00
Richard Zou
4dd2908dd6 Named inference for contiguous(), bernoulli variants, and dropout. (#23808)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23808

See title.

Test Plan: - New tests [namedtensor ci]

Differential Revision: D16657926

Pulled By: zou3519

fbshipit-source-id: 8cd46765b1c791b73448ddf4585dae56d635364d
2019-08-09 09:17:47 -07:00
Richard Zou
16b6466e5e Implement name inference rule for empty_like, clone (#23746)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23746

`torch.empty_like(tensor)` and `tensor.clone()` both propagate names to
the output tensor.

As a part of this change, I fixed the empty(..., names=) overload to
include the `memory_format` argument in the normal `empty` declaration
in native_functions.yaml.

Test Plan: - [namedtensor ci]

Differential Revision: D16647821

Pulled By: zou3519

fbshipit-source-id: 43b261f3456b6bf5fca7b6313e659b259a2ba66d
2019-08-09 09:17:43 -07:00
Richard Zou
11cff2981b Add names argument to ones, rand, randn, zeros, full (#23743)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23743

In the short term, we implement this by having overloads for each of
these functions. In the long term, the plan is to move DimnameList to
TensorOptions so that we do not have to duplicate work.

Test Plan: - [namedtensor ci]

Differential Revision: D16647820

Pulled By: zou3519

fbshipit-source-id: c6c53c5f26a86b730cbc4d4eb69907ac0e08fc65
2019-08-09 09:17:39 -07:00
Richard Zou
5fbe824398 Improve test_namedtensor.py with named tensor equality check (#23801)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23801

Test Plan
- Code reading. assertTensorDataAndNamesEqual isn't used in this commit
but it'll be used in future commits.
- [namedtensor ci]

gh-metadata: pytorch pytorch 23801 gh/zou3519/90/head

Test Plan: Imported from OSS

Differential Revision: D16667816

Pulled By: zou3519

fbshipit-source-id: 66519cd5d17bda4c4304a1bc6e2a03ae59d49e39
2019-08-09 09:17:35 -07:00
Richard Zou
78f3b883f0 Add name propagation for at::alias, add tensor.set_names (#23624)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23624

tensor.set_names(names) is the out-of-place variant of
tensor.set_names_(names). This naming is probably confusing so I am
taking any and all suggestions.

Test Plan:
- run tests [namedtensor ci]

gh-metadata: pytorch pytorch 23624 gh/zou3519/86/head

Differential Revision: D16621830

Pulled By: zou3519

fbshipit-source-id: f8a3837d3a370b41210e938369348dcbb4aee53a
2019-08-09 09:17:31 -07:00
Richard Zou
57fc793650 Add names to repr for named tensors
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23316

Test Plan:
- [namedtensor ci]

gh-metadata: pytorch pytorch 23316 gh/zou3519/80/head

Imported from OSS

Differential Revision: D16494415

Pulled By: zou3519

fbshipit-source-id: e483f57bdb0610d0eadbe70d673e20dc3d3f9502
2019-08-02 11:37:29 -07:00
Richard Zou
8e466b7e21 Add torch._C._BUILD_NAMEDTENSOR() (#23623)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23623

This is a quick, not-user-facing check for if pytorch was built with BUILD_NAMEDTENSOR=1.

Test Plan:
- run tests [namedtensor ci]

gh-metadata: pytorch pytorch 23623 gh/zou3519/85/head

Differential Revision: D16621829

Pulled By: zou3519

fbshipit-source-id: d7e1161dc176bab2c1f953265722daeba1e63102
2019-08-02 11:37:25 -07:00
Richard Zou
08f7f27c6a Fix named tensor build by enabling tensor.is_pinned and removing support for clone() (#23597)
Summary:
`is_pinned` was moved to native_functions.yaml, disabling it for named
tensors. This PR re-enables its usage for named tensors.

I wrote a named inference rule for torch.clone(), but something happened
to it. Disable it for now so we can get the namedtensor ci to be green.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23597

Test Plan: - run tests [namedtensor ci]

Differential Revision: D16581771

Pulled By: zou3519

fbshipit-source-id: 498018cdc55e269bec80634b8c0a63ba5c72914b
2019-07-31 11:48:40 -07:00
Richard Zou
c5482e33e9 Rename tensor.is_named to has_named, expose has_named to python.
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23315

Test Plan:
- [namedtensor ci]

gh-metadata: pytorch pytorch 23315 gh/zou3519/79/head

Imported from OSS

Differential Revision: D16494414

Pulled By: zou3519

fbshipit-source-id: d2d6beb45db9288e5df707b68b6046d783ca9f97
2019-07-31 07:14:07 -07:00
Richard Zou
725e41e955 Enable named tensors for arithmetic, clone, and tensor conversion ops
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23237

Test Plan: Imported from OSS

Differential Revision: D16494416

Pulled By: zou3519

fbshipit-source-id: 29bc390797c99088d50a2b59c3e2402a93562e2c
2019-07-31 07:14:04 -07:00
Richard Zou
437a8b3eed Named inference rule for copy_
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23229

Test Plan: Imported from OSS

Differential Revision: D16494413

Pulled By: zou3519

fbshipit-source-id: 4acb85e5a4ad09bf5f7cbb84cc8d4ceac0cd9967
2019-07-30 07:17:34 -07:00
Richard Zou
505fa83b2f Implement named inference rule for mul
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23193

Test Plan:
- [namedtensor ci]

gh-metadata: pytorch pytorch 23193 gh/zou3519/75/head

Imported from OSS

Differential Revision: D16494401

Pulled By: zou3519

fbshipit-source-id: 0e2395d7de39158ec51feed5da0389715ec52600
2019-07-29 09:58:18 -07:00
Richard Zou
0dcb8755c8 Implement tensor.set_names_, tensor.names setter
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23172

Test Plan:
- [namedtensor ci]

gh-metadata: pytorch pytorch 23172 gh/zou3519/74/head

Imported from OSS

Differential Revision: D16494364

Pulled By: zou3519

fbshipit-source-id: 8d0e26b33346d4eadba30b2e76610f6d7be7c373
2019-07-26 08:50:49 -07:00
Richard Zou
c8a50a26d2 Named inference rule for torch.prod
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23106

Test Plan:
- [namedtensor ci]

Imported from OSS

Differential Revision: D16419175

Pulled By: zou3519

fbshipit-source-id: beb9ef838525c1ea7d7839cb9b8d68028fb4917f
2019-07-26 08:50:45 -07:00
Richard Zou
9817d7e16b Implement named inference rule for torch.sum
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/23081

Test Plan:
- New tests [namedtensor ci]

Imported from OSS

Differential Revision: D16419174

Pulled By: zou3519

fbshipit-source-id: 8679f77f121664d0398d7f062a53c0fa37482481
2019-07-26 08:50:40 -07:00
Richard Zou
b4b51ed5ec Implement tensor.size(Dimname), tensor.stride(Dimname)
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/22989

Test Plan: Imported from OSS

Differential Revision: D16364437

Pulled By: zou3519

fbshipit-source-id: 393a93fecac27b5d3b1a7f7692590d8fd5e95a5d
2019-07-22 13:11:59 -07:00
Richard Zou
662fe699c5 Named inference rules for some initializer fns
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/22972

Test Plan:
- [namedtensor ci]

Imported from OSS

Differential Revision: D16342782

Pulled By: zou3519

fbshipit-source-id: 25277688ab51e1e98af0e19aeb9c79399171d2fb
2019-07-18 10:04:29 -07:00
Richard Zou
57cec0a720 Named inference rules for split/chunk
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/22971

Test Plan: Imported from OSS

Differential Revision: D16342783

Pulled By: zou3519

fbshipit-source-id: 379edc8eb2f45a82ee8a6320f8285f8f81ea0b1b
2019-07-18 10:04:25 -07:00
Hong Xu
693871ded3 Rename macros and build options NAMEDTENSOR_ENABLED to BUILD_NAMEDTENSOR (#22360)
Summary:
Currently the build system accepts USE_NAMEDTENSOR from the environment
variable and turns it into NAMEDTENSOR_ENABLED when passing to CMake.
This discrepancy does not seem necessary and complicates the build
system. The naming of this build option is also semantically incorrect
("BUILD_" vis-a-vis "USE_").  This commit eradicate this issue before it
is made into a stable release.

The support of NO_NAMEDTENSOR is also removed, since PyTorch has been
quite inconsistent about "NO_*" build options.

 ---

Note: All environment variables with their names starting with `BUILD_` are currently automatically passed to CMake with no need of an additional wrapper.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/22360

Differential Revision: D16074509

Pulled By: zou3519

fbshipit-source-id: dc316287e26192118f3c99b945454bc50535b2ae
2019-07-02 11:46:13 -07:00
Richard Zou
f894ef7263 Add smoke test for information fn/method/attrs to test_namedtensor
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/22341

Test Plan:
- `python test/test_namedtensor.py -v` [namedtensor ci]

gh-metadata: pytorch pytorch 22341 gh/zou3519/66/head

Imported from OSS

Differential Revision: D16053440

Pulled By: zou3519

fbshipit-source-id: 400f2e1c136cd7db4346a42b58813e42595ca755
2019-07-01 07:24:54 -07:00
Richard Zou
496e35f76b More named inference rules for pointwise unary ops
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/22308

Test Plan:
- `python test/test_namedtensor.py -v` [namedtensor ci]

gh-metadata: pytorch pytorch 22308 gh/zou3519/65/head

Imported from OSS

Differential Revision: D16053441

Pulled By: zou3519

fbshipit-source-id: 2e8d4cc11d7a711d2b789752a316a11fffc0996e
2019-07-01 07:24:51 -07:00
Richard Zou
177b8bf6e7 Named inference rule for more pointwise ops. (#22268)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/22268
ghimport-source-id: c722f9fbb3fc529c872dcccbf58ba1a8c5fcda8e

Test Plan:
- `python test/test_namedtensor.py -v` [namedtensor ci]

Imported from OSS

Differential Revision: D16030549

Pulled By: zou3519

fbshipit-source-id: 5cbb2c8626335a32a22ed8079245a5faa7cf553f
2019-06-27 12:49:36 -07:00
Richard Zou
7732b1a604 Enable named inference for some unary pointwise ops (#22267)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/22267
ghimport-source-id: 1566df9a20712cada6ea1209e000c5ff757daa14

Test Plan: Imported from OSS

Differential Revision: D16030550

Pulled By: zou3519

fbshipit-source-id: 183ca1d14dc0fb6f1ee6e114b48c2703c61e11ce
2019-06-27 12:49:32 -07:00
Richard Zou
6386e4d244 Named inference rule for abs. (#22151)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/22151
ghimport-source-id: 54c1726b578ac162af817f78df6f540b764e46e3

Test Plan:
- `python test/test_namedtensor.py` [namedtensor ci]

Imported from OSS

Differential Revision: D15970326

Pulled By: zou3519

fbshipit-source-id: 4ea25f0a73bbc24b604d3ded2027eeb4ce800de0
2019-06-27 12:49:25 -07:00
Richard Zou
4bc89bd5a6 Implement tensor.select(Dimname,int) (#21795)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/21795
ghimport-source-id: d13af6078a47de1d6045cfbb7d278c378fe734fe

Test Plan: Imported from OSS

Differential Revision: D15833457

Pulled By: zou3519

fbshipit-source-id: fa52aff25ce0e12f31da3eef83ea948b4f7a5d9f
2019-06-21 16:16:45 -07:00
Richard Zou
1aa16d356e named inference rule for tensor.select (#21752)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/21752
ghimport-source-id: 95e17087b8c29c9bd88003ae225cb7329d0b67e6

Test Plan:
- `python test/test_namedtensor.py` [namedtensor ci]

gh-metadata: pytorch pytorch 21752 gh/zou3519/50/head

Imported from OSS

Differential Revision: D15833453

Pulled By: zou3519

fbshipit-source-id: 7b51e4137e54712aa9c6274a9e6bb48ab7191b8d
2019-06-17 13:12:49 -07:00
Richard Zou
2b23fac8da Disallow creation of tensors with duplicate names (#21781)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/21781
ghimport-source-id: d77e0c97fe0104b4b29571fd5828967399d34fb1

Test Plan:
- `python test/test_namedtensor.py -v` [namedtensor ci]

gh-metadata: pytorch pytorch 21781 gh/zou3519/51/head

Imported from OSS

Differential Revision: D15833454

Pulled By: zou3519

fbshipit-source-id: fca4de83fba4bced615ec3cbd4ce4c441ddfcaf2
2019-06-17 09:59:50 -07:00
Richard Zou
0d6eb209e6 Expose torch.empty(sizes, *, names, ...) to Python (#21648)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/21648
ghimport-source-id: 583f155c8ee95967d2f8b9d8df27d94b9e725694

Differential Revision: D15804482

Pulled By: zou3519

fbshipit-source-id: f86520dda479100be2a752e4db8a902167413a83
2019-06-14 11:52:47 -07:00
Richard Zou
83a80d2b31 Add test/test_namedtensor.py (#20168)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/20168
ghimport-source-id: 78bd3c4b6bc87c216ce33dba13b61feb87e5fe53

Reviewed By: gchanan

Differential Revision: D15278222

Pulled By: zou3519

fbshipit-source-id: 3bcdb1cb654400350d42464dd9e0d5e0a7116e1e
2019-05-09 09:09:22 -07:00