Skip to content

[PyTorch] RFC: Add tuple inline storage #64066

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 50 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5f06e2f
[PyTorch] RFC: Add tuple inline storage
swolchok Aug 26, 2021
2e3fb4b
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 27, 2021
8496eb9
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 27, 2021
a2726bc
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 27, 2021
2451f9f
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 27, 2021
9dcf2ae
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 30, 2021
a7d23fd
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 31, 2021
ca08c5f
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Aug 31, 2021
8fce745
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 3, 2021
031bc4a
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 7, 2021
8a7ef90
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 8, 2021
e03440d
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 9, 2021
757281a
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 9, 2021
9a1cc85
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 9, 2021
27eca8b
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 9, 2021
b4c2fd4
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 13, 2021
9e66764
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 14, 2021
a5e5bfe
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 15, 2021
1475ad1
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 16, 2021
436ccc5
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 20, 2021
305c8a1
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 20, 2021
edad395
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 20, 2021
a010999
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 21, 2021
0719493
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 21, 2021
5df6b5b
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 22, 2021
8c71367
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 22, 2021
23264d8
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 22, 2021
51f9a65
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 22, 2021
9232e2e
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 23, 2021
5f4f9f8
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 23, 2021
dcf699e
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 23, 2021
121a192
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 24, 2021
d897b89
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 27, 2021
d82cd75
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 29, 2021
09ee5d8
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 30, 2021
4fddc8d
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 30, 2021
0ce2d6d
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Sep 30, 2021
59e3375
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 5, 2021
7e17dd6
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 6, 2021
cf1d072
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 8, 2021
a66f9a9
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 8, 2021
adfdb14
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 8, 2021
161a240
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 11, 2021
236cf76
give up on making TupleElements noncopyable on "[PyTorch] RFC: Add tu…
swolchok Oct 11, 2021
be384f7
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 12, 2021
5b55485
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 12, 2021
88f8ce9
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 13, 2021
eadc443
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 14, 2021
4d1ef84
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 14, 2021
b58e12f
Update on "[PyTorch] RFC: Add tuple inline storage"
swolchok Oct 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update on "[PyTorch] RFC: Add tuple inline storage"
I noticed a bunch of time being spent heap-allocating Tuples
in the unpickler. 1-, 2-, and 3-element Tuples are apparently common
enough that they get their own bytecode instructions, so I decided to
try also giving them their own representation. We store up to 3
IValues inline in `Tuple` rather than doing a second heap allocation
for a `std::vector<IValue>`.

Differential Revision: [D30592622](https://our.internmc.facebook.com/intern/diff/D30592622/)

**NOTE FOR REVIEWERS**: This PR has internal Facebook specific changes or comments, please review them on [Phabricator](https://our.internmc.facebook.com/intern/diff/D30592622/)!

[ghstack-poisoned]
  • Loading branch information
swolchok committed Aug 27, 2021
commit 8496eb9a4499bbd62c019627fef30c2343a5f289
4 changes: 4 additions & 0 deletions aten/src/ATen/core/ivalue_inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,10 @@ struct TORCH_API TupleElements {
// space in our use case.
union {
std::vector<IValue> elementsVector_;
// Don't want to declare a std::array because the convenient
// iteration and size members are a footgun in this case -- the
// actual size of the array may be smaller than 3!
// NOLINTNEXTLINE(modernize-avoid-c-arrays)
IValue elementsInline_[3];
};

Expand Down