{"push_id":4023148855,"size":5,"distinct_size":0,"ref":"refs/heads/gh/smessmer/19/orig","head":"ae3659e68a7622f0265ff13f25aa0741c2a985a9","before":"9fd9a28f7e1260d5dc930055085edaadf72f6f84","commits":[{"sha":"613339f975c1402fe6a15693e7e16024cbcdbcf4","author":{"name":"Sebastian Messmer","email":"ef83834e7ce69695dd3376888da48b8a95d5228b@fb.com"},"message":"Register ATen ops with c10\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/23667\n\nChanges in this PR:\n- For each operator with use_c10_dispatcher: True, additionally generate a c10 registration line in TypeDefault.cpp, CPUType.cpp, and other backend files.\n- This doesn't change globalATenDispatch yet, the c10 registration is purely additional and the operator calling path doesn't change. A diff further up the stack will change these things.\n- Enable the use_c10_dispatcher: True flag for about ~70% of operators\n- This also changes the c10->jit operator export because ATen ops are already exported to JIT directly and we don't want to export the registered c10 ops because they would clash\n- For this, we need a way to recognize if a certain operator is already moved from ATen to c10, this is done by generating a OpsAlreadyMovedToC10.cpp file with the list. A diff further up in the stack will also need this file to make sure we don't break the backend extension API for these ops.\n\n\nReasons for some ops to be excluded (i.e. not have the `use_c10_dispatcher` flag set to true):\n- `Tensor?(a!)` (i.e. optional tensor with annotations) not supported in c++ function schema parser yet\n- `-> void` in native_functions.yaml vs `-> ()` expected by function schema parser\n- out functions have different argument order in C++ as in the jit schema\n- `Tensor?` (i.e. optional tensor) doesn't work nicely with undefined tensor sometimes being undefined tensor and sometimes being None.\n- fixed-size arrays like `int[3]` not supported in c10 yet\n\nThese will be fixed in separate diffs and then the exclusion tag will be removed.\n\nghstack-source-id: 89911199\n\nDifferential Revision: [D16603131](https://our.internmc.facebook.com/intern/diff/D16603131/)","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/613339f975c1402fe6a15693e7e16024cbcdbcf4"},{"sha":"561ef44249a2827b799f1ae3f140eea6d5316321","author":{"name":"Sebastian Messmer","email":"ef83834e7ce69695dd3376888da48b8a95d5228b@fb.com"},"message":"forward c10 registrations to aten\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25969\n\nWhen an op is registered with the c10 dispatcher but the op is actually one of the ops that still lives on globalATenDispatch(), the c10 dispatcher will forward the registration call to globalATenDispatch().\n\nThis will allow backend extensions like XLA to immediately move to the new c10 registration API, while we are moving ops from globalATenDispatch to the c10 dispatcher behind the scenes without breaking their API.\n\nNote that for consistency, this also changes all op registrations in TypeDefault/CPUType/... They now also directly go to the c10 dispatcher, and will be rerouted to globalATenDispatch from there.\n\nghstack-source-id: 89911202\n\nDifferential Revision: [D17301917](https://our.internmc.facebook.com/intern/diff/D17301917/)","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/561ef44249a2827b799f1ae3f140eea6d5316321"},{"sha":"e0635d7ca5d7216c41c941d45aa4409e35404ba3","author":{"name":"Sebastian Messmer","email":"ef83834e7ce69695dd3376888da48b8a95d5228b@fb.com"},"message":"Allow overwriting catch-all kernels\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25947\n\nPreviously, the c10 dispatcher didn't allow having a catch-all kernel and backend specific kernels at the same time.\nThis is also the long term goal. But to make the current XLA implementation work, we need to allow them to overwrite these ops with XLA variants.\n\nThis diff changes that so that ops can have both, catchall and backend specific kernels, and will call into the catchall kernel if there is no more specific kernel registered.\nThis is also the current behavior of globalATenDispatch.\nghstack-source-id: 89911198\n\nDifferential Revision: [D17293036](https://our.internmc.facebook.com/intern/diff/D17293036/)","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/e0635d7ca5d7216c41c941d45aa4409e35404ba3"},{"sha":"0dca61a6cd933221274e6806409cdb80aed5efc6","author":{"name":"Sebastian Messmer","email":"ef83834e7ce69695dd3376888da48b8a95d5228b@fb.com"},"message":"Call aten ops through c10 dispatcher\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/23668\n\n- The eager mode frontend now calls operators who are defined in native_functions.yaml with `use_c10_dispatcher: True` through the c10 dispatcher and not anymore through globalATenDispatch().\n- These operators aren't registered with globalAtenDispatch anymore, only on c10 now.\n- Backend extensions calling globalATenDispatch().registerOp() to add their own kernels still work, this function will forward the registration to the c10 dispatcher for them.\n\n\nghstack-source-id: 89911203\n\nDifferential Revision: [D16603133](https://our.internmc.facebook.com/intern/diff/D16603133/)","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/0dca61a6cd933221274e6806409cdb80aed5efc6"},{"sha":"ae3659e68a7622f0265ff13f25aa0741c2a985a9","author":{"name":"Sebastian Messmer","email":"ef83834e7ce69695dd3376888da48b8a95d5228b@fb.com"},"message":"[wip] Fixed size arrays\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/23695\n\n\nghstack-source-id: 89911197\n\nDifferential Revision: [D16611697](https://our.internmc.facebook.com/intern/diff/D16611697/)","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/ae3659e68a7622f0265ff13f25aa0741c2a985a9"}]}
{"actor":{"display_login":"smessmer"}}