[pytorch] Elide more Thrift Tensor send copies. (#31998)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/31998
This change builds on recent torch::from_blob() changes to avoid Tensor
copies on send in more cases.
Particularly, this change adds an enabled option to assume if the Tensor
Storage's DataPtr has a non-trivial deleter, then the Tensor does in fact
manage the underlying memory. And hence we can reference the Tensor's Storage
via an IOBuf that is referenced while sending, saving a Tensor copy.
We add appropriate test cases, particularly re: torch::from_blob() which
would have been problematic would recent changes.
ghstack-source-id: 97778619
Test Plan: buck test mode/dev caffe2/torch/fb/distributed/wireSerializer/test/...
Reviewed By: satgera
Differential Revision: D19306682
fbshipit-source-id: 05f56efb2d5d6279ae4b54dfcbba0f729c2c13fa