{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":65600975,"defaultBranch":"main","name":"pytorch","ownerLogin":"pytorch","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-08-13T05:26:41.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/21003710?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718113536.0","currentOid":""},"activityList":{"items":[{"before":"7d750ca15e04b967a661841a46062c3d8b33d053","after":"441cb2441cdb4250a7d73d8dc7a73e7aba6e382e","ref":"refs/heads/gh/soulitzer/304/orig","pushedAt":"2024-06-11T13:39:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"[checkpoint] Clean up selective activation checkpoint and make public\n\nghstack-source-id: 0dfb866b0e087f4d5bccbe4cd14ce673ae7ff619\nPull Request resolved: https://github.com/pytorch/pytorch/pull/125795","shortMessageHtmlLink":"[checkpoint] Clean up selective activation checkpoint and make public"}},{"before":"9c1a2ad50e24325d9b962bf60655bbeef751164e","after":"c5427a8ae5647eb3484938d2f87c0d5723584e02","ref":"refs/heads/gh/soulitzer/306/orig","pushedAt":"2024-06-11T13:39:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Support nested tensor with activation checkpoint\n\nghstack-source-id: fb514383b45a7bb292683818fca9581d60e7aa24\nPull Request resolved: https://github.com/pytorch/pytorch/pull/127959","shortMessageHtmlLink":"Support nested tensor with activation checkpoint"}},{"before":"b1c1ba9e507b1cdbf82b686812d5fb7f7020a471","after":"046ca667046bcd1ae077877319a32862c51cda6a","ref":"refs/heads/gh/soulitzer/306/head","pushedAt":"2024-06-11T13:39:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update on \"Support nested tensor with activation checkpoint\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"Support nested tensor with activation checkpoint\""}},{"before":"01883a5c33299595bdf47fb01de763d115a60241","after":"606d0137c8e0987b590785067cd84f24cf75402f","ref":"refs/heads/gh/soulitzer/304/head","pushedAt":"2024-06-11T13:39:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update on \"[checkpoint] Clean up selective activation checkpoint and make public\"\n\n\r\nRelated doc: https://docs.google.com/document/d/1BKyizkZPdri9mHqdDOLAUpkI7SbbKfLHRFVVpK9ZWqo/edit\r\n\r\nMemory considerations:\r\n- As with the existing SAC, cached values are cleared upon first use. \r\n- We error if the user wishes to backward a second time on a region forwarded with SAC enabled.\r\n\r\nIn-place:\r\n- We use version counting to enforce that if any cached tensor has been mutated. In-place operations not mutating cached tensors are allowed.\r\n- `allow_cache_entry_mutation=True` can be passed to disable this check (useful in the case of auto AC where the user is cleverly also saves the output of the in-place)\r\n\r\nRandomness, views\r\n- Currently in this PR, we don't do anything special for randomness or views, the author of the policy function is expected to handle them properly. (Would it would be beneficial to error? - we either want to save all or recompute all random tensors)\r\n\r\nTensor object preservation\r\n- We guarantee that if a tensor does not requires grad, and it is saved, then what you get out is the same tensor object. If the tensor does require grad, we must detach to avoid creating a reference cycle. This is a nice guarantee for nested tensors which care about the object identity of of the offsets tensor.\r\n\r\nPolicy function \r\n- Enum values are `{MUST,PREFER}_{SAVE,RECOMPUTE}` (bikeshed welcome). Alternatively there was `{SAVE,RECOMPUTE}_{NON_,}OVERRIDABLE`. The former was preferred bc it seemed clearer that two `MUST` clashing should error, versus it is ambiguous whether two `NON_OVERRIDABLE` being stacked should silently ignore or error.\r\n- The usage of Enum today. There actually is NO API to stack SAC policies today. The only thing the Enum should matter for in the near term is the compiler. The stacking SAC policy would be useful if someone wants to implement something like simple FSDP, but it is not perfect because with a policy of `PREFER_SAVE` you are actually saving more than autograd would save normally (would be fixed with AC v3).\r\n- The number of times we call the policy_fn is something documented part of public API. We call the policy function for all ops except detach because detach is itself called a different number of times by AC between forward and recompute. \r\n- The policy function can be a stateful object (we do NOT make separate copies of this object for forward/recompute, the user is expected to handle that via is_recompute see below).\r\nTensors guaranteed to be the same tensor as-is\r\n- Policy function signature takes ctx object as its first argument. The ctx function is an object encapsulating info that may be useful to the user, it currently only holds \"is_recompute\". Adding this indirection gives us flexibility to add more attrs later if necessary.\r\n\r\n\"bc-breaking\" for existing users of the private API:\r\n- Existing policy functions must now change their return value to use the Enum.\r\n- Existing calls to `_pt2_selective_checkpoint_context_fn_gen` must be renamed to `gen_selective_checkpoint_context_fn`. The way you use the API remains the same. It would've been nice to do something different (not make the user have to use functools.partial?), but this was the easiest to compile (idk if this should actually be a constraint). \r\n\r\ncc voznesenskym penguinwu EikanWang jgong5 Guobing-Chen XiaobingSuper zhuhaozhe blzheng wenzhe-nrv jiayisunx chenyang78 kadeng chauhang\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"[checkpoint] Clean up selective activation checkpoint and …"}},{"before":"45611852029ed1bde9223e950852493a84123037","after":"83bdeaffd0afe248ec8bdfb37587e99a65d3aec7","ref":"refs/heads/gh/soulitzer/306/base","pushedAt":"2024-06-11T13:39:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update base for Update on \"Support nested tensor with activation checkpoint\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update base for Update on \"Support nested tensor with activation chec…"}},{"before":"2a5e368e55d307548375141ad42a75dae9fc1621","after":"8eab822cb33e887d01727cfd2e0a51f78b4a7da4","ref":"refs/heads/gh/soulitzer/304/base","pushedAt":"2024-06-11T13:39:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update base for Update on \"[checkpoint] Clean up selective activation checkpoint and make public\"\n\n\r\nRelated doc: https://docs.google.com/document/d/1BKyizkZPdri9mHqdDOLAUpkI7SbbKfLHRFVVpK9ZWqo/edit\r\n\r\nMemory considerations:\r\n- As with the existing SAC, cached values are cleared upon first use. \r\n- We error if the user wishes to backward a second time on a region forwarded with SAC enabled.\r\n\r\nIn-place:\r\n- We use version counting to enforce that if any cached tensor has been mutated. In-place operations not mutating cached tensors are allowed.\r\n- `allow_cache_entry_mutation=True` can be passed to disable this check (useful in the case of auto AC where the user is cleverly also saves the output of the in-place)\r\n\r\nRandomness, views\r\n- Currently in this PR, we don't do anything special for randomness or views, the author of the policy function is expected to handle them properly. (Would it would be beneficial to error? - we either want to save all or recompute all random tensors)\r\n\r\nTensor object preservation\r\n- We guarantee that if a tensor does not requires grad, and it is saved, then what you get out is the same tensor object. If the tensor does require grad, we must detach to avoid creating a reference cycle. This is a nice guarantee for nested tensors which care about the object identity of of the offsets tensor.\r\n\r\nPolicy function \r\n- Enum values are `{MUST,PREFER}_{SAVE,RECOMPUTE}` (bikeshed welcome). Alternatively there was `{SAVE,RECOMPUTE}_{NON_,}OVERRIDABLE`. The former was preferred bc it seemed clearer that two `MUST` clashing should error, versus it is ambiguous whether two `NON_OVERRIDABLE` being stacked should silently ignore or error.\r\n- The usage of Enum today. There actually is NO API to stack SAC policies today. The only thing the Enum should matter for in the near term is the compiler. The stacking SAC policy would be useful if someone wants to implement something like simple FSDP, but it is not perfect because with a policy of `PREFER_SAVE` you are actually saving more than autograd would save normally (would be fixed with AC v3).\r\n- The number of times we call the policy_fn is something documented part of public API. We call the policy function for all ops except detach because detach is itself called a different number of times by AC between forward and recompute. \r\n- The policy function can be a stateful object (we do NOT make separate copies of this object for forward/recompute, the user is expected to handle that via is_recompute see below).\r\nTensors guaranteed to be the same tensor as-is\r\n- Policy function signature takes ctx object as its first argument. The ctx function is an object encapsulating info that may be useful to the user, it currently only holds \"is_recompute\". Adding this indirection gives us flexibility to add more attrs later if necessary.\r\n\r\n\"bc-breaking\" for existing users of the private API:\r\n- Existing policy functions must now change their return value to use the Enum.\r\n- Existing calls to `_pt2_selective_checkpoint_context_fn_gen` must be renamed to `gen_selective_checkpoint_context_fn`. The way you use the API remains the same. It would've been nice to do something different (not make the user have to use functools.partial?), but this was the easiest to compile (idk if this should actually be a constraint). \r\n\r\ncc voznesenskym penguinwu EikanWang jgong5 Guobing-Chen XiaobingSuper zhuhaozhe blzheng wenzhe-nrv jiayisunx chenyang78 kadeng chauhang\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update base for Update on \"[checkpoint] Clean up selective activation…"}},{"before":null,"after":"afcf7d833c97a01e4814650506c630a3878f1da9","ref":"refs/heads/gh/rec/14/orig","pushedAt":"2024-06-11T13:26:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Add decompositions for copy variants of view ops\n\nghstack-source-id: a290ff22d81cdf09038063a6bd2b5c47e103b460\nPull Request resolved: https://github.com/pytorch/pytorch/pull/128416","shortMessageHtmlLink":"Add decompositions for copy variants of view ops"}},{"before":null,"after":"0dc2b3b073bfbca56a223b400bb42083375d6852","ref":"refs/heads/gh/rec/14/head","pushedAt":"2024-06-11T13:26:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Add decompositions for copy variants of view ops\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Add decompositions for copy variants of view ops"}},{"before":null,"after":"f2d7f235a684c593f5a1ff2ca0b47b47274bfe85","ref":"refs/heads/gh/rec/14/base","pushedAt":"2024-06-11T13:26:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"[dynamo][yolov3] Track UnspecializedNNModuleVariable for mutation (#128269)\n\nFixes https://github.com/pytorch/pytorch/issues/101168\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/128269\nApproved by: https://github.com/jansel\nghstack dependencies: #128295, #126578, #128268, #128254","shortMessageHtmlLink":"[dynamo][yolov3] Track UnspecializedNNModuleVariable for mutation (#1…"}},{"before":"e3617e7470402dd54c33c2cde54773eac504cb35","after":null,"ref":"refs/tags/ciflow/mps/128393","pushedAt":"2024-06-11T13:18:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"00243a41a25c036c3d0ef9353a658b6132b9f627","after":null,"ref":"refs/tags/ciflow/mps/128393","pushedAt":"2024-06-11T13:17:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"1609efe3ffa40b5cc9a94f81dd335cd0856d3a23","after":"9c1a2ad50e24325d9b962bf60655bbeef751164e","ref":"refs/heads/gh/soulitzer/306/orig","pushedAt":"2024-06-11T13:16:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Support nested tensor with activation checkpoint\n\nghstack-source-id: ce7fa933284b8c7c3b7d7c2335f11f20634c0fee\nPull Request resolved: https://github.com/pytorch/pytorch/pull/127959","shortMessageHtmlLink":"Support nested tensor with activation checkpoint"}},{"before":"34a5838ff57f6e8911a68641fd92141b55ed28a8","after":"b1c1ba9e507b1cdbf82b686812d5fb7f7020a471","ref":"refs/heads/gh/soulitzer/306/head","pushedAt":"2024-06-11T13:16:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update on \"Support nested tensor with activation checkpoint\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"Support nested tensor with activation checkpoint\""}},{"before":"831a830b0393ec132342f81993d926c7f7b1ed69","after":"45611852029ed1bde9223e950852493a84123037","ref":"refs/heads/gh/soulitzer/306/base","pushedAt":"2024-06-11T13:16:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"soulitzer","name":"Jeffrey Wan","path":"/soulitzer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13428986?s=80&v=4"},"commit":{"message":"Update base for Update on \"Support nested tensor with activation checkpoint\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update base for Update on \"Support nested tensor with activation chec…"}},{"before":"024d5d88488b6c2fd59f6dd889f07ef46ebc6bb1","after":null,"ref":"refs/tags/ciflow/inductor/128318","pushedAt":"2024-06-11T13:06:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"024d5d88488b6c2fd59f6dd889f07ef46ebc6bb1","after":null,"ref":"refs/tags/ciflow/trunk/128318","pushedAt":"2024-06-11T13:06:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"adac8d6558e8834f365723e2cffbea73f0518998","after":null,"ref":"refs/tags/ciflow/mps/128142","pushedAt":"2024-06-11T12:54:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"adac8d6558e8834f365723e2cffbea73f0518998","after":null,"ref":"refs/tags/ciflow/inductor/128142","pushedAt":"2024-06-11T12:54:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"c9876f917f2f8f12fcc37a938aa80cd96202a673","after":null,"ref":"refs/tags/ciflow/inductor/127231","pushedAt":"2024-06-11T12:54:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"adac8d6558e8834f365723e2cffbea73f0518998","after":null,"ref":"refs/tags/ciflow/trunk/128142","pushedAt":"2024-06-11T12:54:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"87c3a9801f797e233ea6609d5b7b75b64695c289","after":"a3e9824844d7f11dee575b644bedad53f65c49ba","ref":"refs/heads/gh/rec/11/orig","pushedAt":"2024-06-11T12:54:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Add OpInfo entry for alias_copy (#127232)\n\nghstack-source-id: 271f218af71363ec2739f7fca135200f299db11e\nPull Request resolved: https://github.com/pytorch/pytorch/pull/128142","shortMessageHtmlLink":"Add OpInfo entry for alias_copy (#127232)"}},{"before":"c5c692202d91b04719558b4a6b256cb5fded163d","after":"d904638aa01aa530c1d81763dbec539137d68874","ref":"refs/heads/gh/rec/8/orig","pushedAt":"2024-06-11T12:54:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Add OpInfo entry for as_strided_copy\n\nghstack-source-id: e5adc8585ed0ec7a25ddebf13f3605a3dbcdba8a\nPull Request resolved: https://github.com/pytorch/pytorch/pull/127231","shortMessageHtmlLink":"Add OpInfo entry for as_strided_copy"}},{"before":"adac8d6558e8834f365723e2cffbea73f0518998","after":"56a529e89ff89dcc33ef9cccb516de2939d5b049","ref":"refs/heads/gh/rec/11/head","pushedAt":"2024-06-11T12:54:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Update on \"Add OpInfo entry for alias_copy (#127232)\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"Add OpInfo entry for alias_copy (#127232)\""}},{"before":"c9876f917f2f8f12fcc37a938aa80cd96202a673","after":"80fe89f9e2531b26901ebab9b14fbd837ba57e70","ref":"refs/heads/gh/rec/8/head","pushedAt":"2024-06-11T12:54:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Update on \"Add OpInfo entry for as_strided_copy\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update on \"Add OpInfo entry for as_strided_copy\""}},{"before":"f1d593b81371357c9bd98ef0057a9dee319d7fe4","after":"70ee4cfd3374170b0d16efaf8e08e90465af315d","ref":"refs/heads/gh/rec/8/base","pushedAt":"2024-06-11T12:54:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Update base for Update on \"Add OpInfo entry for as_strided_copy\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update base for Update on \"Add OpInfo entry for as_strided_copy\""}},{"before":"625ec666f9153734d6a78ce649d88a78557c23a6","after":"bf36f0abd2122a25e9a774d686433c625f9efc04","ref":"refs/heads/gh/rec/11/base","pushedAt":"2024-06-11T12:54:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rec","name":"Tom Ritchford","path":"/rec","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/253362?s=80&v=4"},"commit":{"message":"Update base for Update on \"Add OpInfo entry for alias_copy (#127232)\"\n\n\n\n\n[ghstack-poisoned]","shortMessageHtmlLink":"Update base for Update on \"Add OpInfo entry for alias_copy (#127232)\""}},{"before":"390c0fc119253dc15f41ae68c8f030852eeda2bf","after":null,"ref":"refs/tags/ciflow/trunk/128142","pushedAt":"2024-06-11T12:53:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"390c0fc119253dc15f41ae68c8f030852eeda2bf","after":null,"ref":"refs/tags/ciflow/mps/128142","pushedAt":"2024-06-11T12:53:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"390c0fc119253dc15f41ae68c8f030852eeda2bf","after":null,"ref":"refs/tags/ciflow/inductor/128142","pushedAt":"2024-06-11T12:53:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}},{"before":"26499e701cc0d74717403cc511e33b764974c80f","after":null,"ref":"refs/tags/ciflow/inductor/127231","pushedAt":"2024-06-11T12:53:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pytorch-bot[bot]","name":null,"path":"/apps/pytorch-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40112?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYkW-BwA","startCursor":null,"endCursor":null}},"title":"Activity · pytorch/pytorch"}