mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/37681 By passing by value, we can std::move, and avoid unnecessarily copying args that are part of any std::function/lambda state (e.g. in the jit interpreter, there is a std::vector<> stack passed in the InterpreterContinuation) This makes the api also consistent with e.g. folly and best practices. Added a minor at::launch() benchmark to test/cpp/, the difference is mostly noticeable when copying the std::function<> internal args is non-trivial. Benchmarks pre/post (min over ~5 runs) NoData: 5.81 us -> 5.63 us (-3.2%) WithData(0): 6.67 us -> 5.88 us (-11.8%) WithData(4): 6.98 us -> 6.51 us (-6.7%) WithData(256): 9.44 us -> 7.89 (-16.5%) ghstack-source-id: 103322321 Test Plan: - perf: buck run mode/opt caffe2/test/cpp/api:parallel_benchmark pre/post - correctness buck test mode/dev-nosan caffe2/test/... Reviewed By: dzhulgakov Differential Revision: D21355148 fbshipit-source-id: 3567e730845106f1991091e4a892d093e00571c3 |
||
|---|---|---|
| .. | ||
| api | ||
| common | ||
| dist_autograd | ||
| jit | ||
| rpc | ||
| tensorexpr | ||
| __init__.py | ||