pytorch/c10/impl
Edward Yang 3df79f403e Tighten up invariants regarding StreamId. (#15125)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/15125

I realized that it is really bad juju if you fake a StreamId
out of thin air, because in general this isn't going to work.
So, make the constructor a lot scarier.

Most "faking StreamId out of thin air" happens because someone
just wants to put something on the default stream.

Reviewed By: dzhulgakov

Differential Revision: D13432800

fbshipit-source-id: a86991d6fc1d8aa4e54e8175e5f06f90856238e6
2018-12-17 13:30:54 -08:00
..
DeviceGuardImplInterface.cpp Rename c10::detail to c10::impl (#13838) 2018-11-14 07:39:37 -08:00
DeviceGuardImplInterface.h Rename c10::detail to c10::impl (#13838) 2018-11-14 07:39:37 -08:00
FakeGuardImpl.h Tighten up invariants regarding StreamId. (#15125) 2018-12-17 13:30:54 -08:00
InlineDeviceGuard.h Move CUDAGuard, CUDAStream and CUDAGuardImpl to c10/cuda (#14248) 2018-12-12 11:24:26 -08:00
InlineStreamGuard.h Rename c10::detail to c10::impl (#13838) 2018-11-14 07:39:37 -08:00
README.md Rename c10::detail to c10::impl (#13838) 2018-11-14 07:39:37 -08:00
VirtualGuardImpl.h Rename c10::detail to c10::impl (#13838) 2018-11-14 07:39:37 -08:00

c10/impl provides headers for functionality that is only needed in very specific use-cases (e.g., you are defining a new device type), which are generally only needed by C10 or PyTorch code. If you are an ordinary end-user, you should not use headers in this folder. We permanently give NO backwards-compatibility guarantees for implementations in this folder.

Compare with c10/util, which provides functionality that is not directly related to being a deep learning library (e.g., C++20 polyfills), but may still be generally useful and visible to users.

(We don't call this c10/detail, because the detail namespace convention is for header private details. However, c10::impl may be utilized from external headers; it simply indicates that the functionality is not for end users.)