mirror of
https://github.com/saymrwulf/pytorch.git
synced 2026-05-14 20:57:59 +00:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/36607 PR #36258 and subsequent PRs in the stack switch c10 registrations to the new pybind11 style registration API. One notable difference from old c10 registration API is that, operator's namespace is no longer in op schema string, e.g. "aten::" will be factored out from "aten::conv", "aten::emtpy" and etc. The namespace string will be declared at the beginning of registrations with TORCH_LIBRARY / TORCH_LIBRARY_IMPL macro. A rather simple fix is to extract namespace string from the name of enclosing function of registrations, as the TORCH_LIBRARY macro will always create an init function (per namespace) by appending namespace string to a common prefix. Another side effect of the API change is that it adds some debug string constants to the registration API, and because of factoring out the namespace part from op name, there is no longer an effect way to differentiate between real op name and debug strings. A simple workaround is that we only keep the first string constant it encounters while BFSing the LLVM IR - the real op name is directly passed into the registration call while the debug string is indirectly passed via CppFunction. These new assumptions might be broken by future changes but it's so simple to implement to unblock the API work. Test Plan: Imported from OSS Differential Revision: D21026008 Pulled By: ljk53 fbshipit-source-id: c8c171d23aaba6d6b7985d342e8797525126a713 |
||
|---|---|---|
| .. | ||
| analyzer.cpp | ||
| build.sh | ||
| CMakeLists.txt | ||
| gen_op_registration_whitelist.py | ||
| op_dependency.cpp | ||
| run_analyzer.sh | ||