payload: {"push_id":4055421368,"size":357,"distinct_size":1,"ref":"refs/heads/gh/zhaojuanmao/1/orig","head":"ced999e4fdfb0fe165a755180f8385c92ca59991","before":"fce21ca7b4ba82ecc59d7510ee0db1aed645ada8","commits":[{"sha":"1559c64417d15925e999c9df0600c087079339e9","author":{"name":"Swati Rallapalli","email":"937feeadeacdb245bea6f50fc3484b6d52e87ed5@fb.com"},"message":"Cyclical learning rate multiplier: use fabs(base_lr) (#25628)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25628\n\nWe figured that base_lr is negative in learning_rate_functors.h. So using fabs(base_lr) for cyclical learning rate multiplier\ncomputation.\n\nTest Plan: Canary: f135306794\n\nReviewed By: chenshouyuan\n\nDifferential Revision: D17167635\n\nfbshipit-source-id: e7fb55835f9fc07712edd63e81f1cf355e05b9f4","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/1559c64417d15925e999c9df0600c087079339e9"},{"sha":"c6dd4036f52b510a0c317faa7c5931d6ca4fbdc8","author":{"name":"Johannes M Dieterich","email":"77f0bd067ad47450966011ebf1d7514e05735095@amd.com"},"message":"Enable two tests that were skipped b/c of rocThrust bugs fixed in ROCm 2.7\n\nSummary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/25724\n\nDifferential Revision: D17212373\n\nPulled By: bddppq\n\nfbshipit-source-id: 2978bc13cdcd0e96a82c0019a08b589f67c0fe1d","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/c6dd4036f52b510a0c317faa7c5931d6ca4fbdc8"},{"sha":"0be29ee2ba5c3f089f1d5a39a934dff884ab6380","author":{"name":"davidriazati","email":"ff36620a3ee63bd6d8ae92408cbddaf6f4dc951a@fb.com"},"message":"Finish testing code examples in the docs (#25668)\n\nSummary:\nAll of the code examples should now run as unit tests, save for those\nthat require interaction (i.e. show `pdb` usage) and those that use\nCUDA.\n\n`save` had to be moved before `load` in `jit/__init__.py` so `load`\ncould use the file generated by `save`\n](https://our.intern.facebook.com/intern/diff/17192417/)\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25668\n\nPulled By: driazati\n\nDifferential Revision: D17192417\n\nfbshipit-source-id: 931b310ae0c3d2cc6affeabccae5296f53fe42bc","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/0be29ee2ba5c3f089f1d5a39a934dff884ab6380"},{"sha":"76bc44fb30b6beb2dde3bc3528b692b3d45b817d","author":{"name":"Richard Zou","email":"32cb0331e7af743fc44515966c14887fb6c0bc3c@gmail.com"},"message":"Move most BUILD_NAMEDTENSOR macros out of header areas (#25721)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25721\n\nContext: I am starting to work on removing the BUILD_NAMEDTENSOR flag.\nHere is the approach:\n- Move the macro out of header areas\n- Include a new `enable_namedtensor.h` header that does a `#ifndef\nBUILD_NAMEDTENSOR #define BUILD_NAMEDTENSOR`.\n- Include `enable_namedtensor.h` where necessary. This only really needs\nto happen in two files (c10/TensorImpl.h, ATen/Dimname.h).\n- Incrementally delete usages of the BUILD_NAMEDTENSOR macro later.\n\nThe alternative is to straight up delete all instances of\nBUILD_NAMEDTENSOR. This alternative could be disruptive, lead to merge\nconflicts, and isn't incremental.\n\nAlong with the above, some work needs to be done on feature flagging\nnamed tensors, and merging the namedtensor CI with the regular CI, and\ncommunicating with devs. This work will too be done incrementally.\n\nTest Plan\n- [namedtensor ci]\n\nTest Plan: Imported from OSS\n\nDifferential Revision: D17210913\n\nPulled By: zou3519\n\nfbshipit-source-id: c73f128b976bb90212639e8f2a3ad2a6a52b8e0c","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/76bc44fb30b6beb2dde3bc3528b692b3d45b817d"},{"sha":"82c8949a9d16886086ea3d7b24bb2fc9c9437894","author":{"name":"Elias Ellison","email":"32bcb86024d493ca261d5686b38111589a7092c1@fb.com"},"message":"add __getitem__ to class types (#25664)\n\nSummary:\nAdd magic method for `class_type[index]`. Since the compiler has custom logic for indexing this was not included with the other magic methods.\n\nFix for https://github.com/pytorch/pytorch/issues/25637\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25664\n\nDifferential Revision: D17214996\n\nPulled By: eellison\n\nfbshipit-source-id: bf77f70851f6c3487147da710cc996624492a0c8","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/82c8949a9d16886086ea3d7b24bb2fc9c9437894"},{"sha":"9c5a8997737eb0049b57cb43e988707d1d87596b","author":{"name":"Johannes M Dieterich","email":"77f0bd067ad47450966011ebf1d7514e05735095@amd.com"},"message":"Enable jit fusion on ROCm (#22872)\n\nSummary:\nAs of ROCm 2.6, we support hiprtc - the HIP runtime compilation API. Enable the jit fusion feature depending on the existence of such an API. This entails\n* new hipification rules for API_RTC\n* add hiprtc APIs to the shim loader\n* update cmake infrastructure to find the hiprtc library (it is part of the HIP package)\n* enabling of unit tests in the jit_fuser test set\n* special casing in resource strings for HIP - the typedefs CUDA requires would be redundant\n* for now disable the occupancy calculation we do not support yet and hard-code\n\nThanks to t-vi for working with me on getting this integration done!\nPull Request resolved: https://github.com/pytorch/pytorch/pull/22872\n\nDifferential Revision: D17207425\n\nPulled By: bddppq\n\nfbshipit-source-id: 93409f3051ad0ea06afacc2239fd6c402152debe","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/9c5a8997737eb0049b57cb43e988707d1d87596b"},{"sha":"88e4cee3e70aac95dd2c18b898808ce3426cb3c9","author":{"name":"Brian Vaughan","email":"c71edce6b75d16c178991d43e283078e17ef4fcd@users.noreply.github.com"},"message":"Improve handling of mixed-type tensor operations (#22273)\n\nSummary:\nImprove handling of mixed-type tensor operations.\n\nThis PR affects the arithmetic (add, sub, mul, and div) operators implemented via TensorIterator (so dense but not sparse tensor ops).\n\nFor these operators, we will now promote to reasonable types where possible, following the rules defined in https://github.com/pytorch/pytorch/issues/9515, and error in cases where the cast would require floating point -> integral or non-boolean to boolean downcasts.\n\nThe details of the promotion rules are described here:\nhttps://github.com/nairbv/pytorch/blob/promote_types_strict/docs/source/tensor_attributes.rst\n\nSome specific backwards incompatible examples:\n* now `int_tensor * float` will result in a float tensor, whereas previously the floating point operand was first cast to an int. Previously `torch.tensor(10) * 1.9` => `tensor(10)` because the 1.9 was downcast to `1`. Now the result will be the more intuitive `tensor(19)`\n* Now `int_tensor *= float` will error, since the floating point result of this operation can't be cast into the in-place integral type result.\n\nSee more examples/detail in the original issue (https://github.com/pytorch/pytorch/issues/9515), in the above linked tensor_attributes.rst doc, or in the test_type_promotion.py tests added in this PR:\nhttps://github.com/nairbv/pytorch/blob/promote_types_strict/test/test_type_promotion.py\nPull Request resolved: https://github.com/pytorch/pytorch/pull/22273\n\nReviewed By: gchanan\n\nDifferential Revision: D16582230\n\nPulled By: nairbv\n\nfbshipit-source-id: 4029cca891908cdbf4253e4513c617bba7306cb3","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/88e4cee3e70aac95dd2c18b898808ce3426cb3c9"},{"sha":"38e4766349338174c126a65bc8c241c8f37a7785","author":{"name":"TortillasAlfred","email":"b1e709beb79aa0f5f7ceb376dfb4a0fcc34b5fdf@ulaval.ca"},"message":"Add CosineAnnealingWarmRestarts to optim documentation (#25421)\n\nSummary:\nFixes https://github.com/pytorch/pytorch/issues/20028.\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25421\n\nDifferential Revision: D17221542\n\nPulled By: soumith\n\nfbshipit-source-id: 9c83c9ad6bf34ba59713c61485e4ef4b782a2792","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/38e4766349338174c126a65bc8c241c8f37a7785"},{"sha":"d939ee2d85412f86b148f3f83c6cdc9c9567bef7","author":{"name":"Igor Fedan","email":"fdebf9a9ab2f778c7024b4d0092eeee23f1d472d@fb.com"},"message":"Migrate digamma and polygamma from the TH to Aten (CUDA) (#25662)\n\nSummary:\nClose https://github.com/pytorch/pytorch/issues/24550\nClose https://github.com/pytorch/pytorch/issues/24612\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25662\n\nDifferential Revision: D17205206\n\nPulled By: ifedan\n\nfbshipit-source-id: 625602ff88940e11e4f7d63bb8950754427b4242","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/d939ee2d85412f86b148f3f83c6cdc9c9567bef7"},{"sha":"ed6433829795055df5108fc405e9f43381728ffd","author":{"name":"Wanchao Liang","email":"cec3728d98a9425a5de254a15f6461e93e451168@fb.com"},"message":"Make tensor key in Dict works in serialization (#25442)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25442\n\nThis make the tensor key in dict works in serialzation by comparing the\ntensor keys TensorImpl address directly. Given that we just want to\nensure the ordering be stable when iterating, it should be good enough,\nwe will need careful consideration if we want to stick with python 3.7\ninsertion order\n\nTest Plan: Imported from OSS\n\nDifferential Revision: D17216377\n\nfbshipit-source-id: 80df17dc2fa9eddd73a66e3979d7f8d7934660c0","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/ed6433829795055df5108fc405e9f43381728ffd"},{"sha":"f7bcba33a6888383832575626b26ca6006d2d2ae","author":{"name":"James Reed","email":"f6111144b37277d4771706e14416c5fc33d0fdf4@fb.com"},"message":"Vectorized specialization of max_pool2d for channels-last layout (#25676)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25676\n\nThis PR achieves two things:\n\n1) Ensures the channels-last layout is propagated through the operator if we receive an input in that layout. This helps to alleviate unnecessary data movement in, e.g. ResNet inference\n2) Applies interleaved vectorization along the channel dimension in the kernel. This allows us to use the functional units on the CPU much more effectively.\n\nBenchmark script\n\n```\nimport torch, time\n\nfor dtype in [torch.qint8, torch.quint8, torch.qint32]:\n    print('****', str(dtype), '*****')\n    x = torch.rand(1, 56, 56, 256)\n\n    q_x = torch.quantize_linear(x, 0.5, 1, dtype)\n    q_x = q_x.permute([0, 3, 1, 2])\n\n    x = x.permute([0, 3, 1, 2])\n\n    NITER = 100\n\n    s = time.time()\n    for i in range(NITER):\n        float_out = torch.max_pool2d(x, kernel_size=3, stride=None, padding=0, dilation=1)\n    time_per_iter_float = (time.time() - s) / NITER\n\n    s = time.time()\n    for i in range(NITER):\n        quant_out = torch.max_pool2d(q_x, kernel_size=3, stride=None, padding=0, dilation=1)\n    time_per_iter_quant = (time.time() - s) / NITER\n\n    ref_quantized = torch.quantize_linear(float_out, 0.5, 1, dtype)\n    torch.testing.assert_allclose(ref_quantized.dequantize(), quant_out.dequantize())\n\n    print('time/iter ms (float)', 'time/iter ms (quant)', 'quant/float', sep='\\t')\n    print(time_per_iter_float * 1000, time_per_iter_quant * 1000, time_per_iter_quant / time_per_iter_float, sep='\\t')\n\n    bytes_float = (x.numel() + float_out.numel()) * x.element_size()\n    bytes_quant = (q_x.numel() + quant_out.numel()) * q_x.element_size()\n\n    float_bw_gbps = bytes_float / time_per_iter_float / 1e9\n    quant_bw_gbps = bytes_quant / time_per_iter_quant / 1e9\n\n    print('GB/s float', 'GB/s quant', sep='\\t')\n    print(float_bw_gbps, quant_bw_gbps, sep='\\t')\n\n```\n\nBefore this change (DynDisp to AVX2)\n\n```\n**** torch.qint8 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n5.197856426239014       1.2381434440612793      0.23820270175433766\nGB/s float      GB/s quant\n0.6816348335661166      0.7153936841878243\n**** torch.quint8 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n5.14232873916626        1.1790156364440918      0.2292765974808621\nGB/s float      GB/s quant\n0.6889952353715999      0.7512707826941549\n**** torch.qint32 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n4.918942451477051       3.401169776916504       0.6914432950715265\nGB/s float      GB/s quant\n0.7202849057394649      1.041712185038912\n```\n\nAfter this change (DynDisp to AVX2)\n\n```\n**** torch.qint8 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n5.0574493408203125      0.018107891082763672    0.0035804394394243393\nGB/s float      GB/s quant\n0.700558673203699       48.915690731270566\n**** torch.quint8 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n4.984829425811768       0.016908645629882812    0.0033920209069399163\nGB/s float      GB/s quant\n0.7107645412406512      52.38503540665539\n**** torch.qint32 *****\ntime/iter ms (float)    time/iter ms (quant)    quant/float\n4.973354339599609       0.13938188552856445     0.028025729922108406\nGB/s float      GB/s quant\n0.7124044976624851      25.419658993448625\n```\n\nTest Plan: Imported from OSS\n\nDifferential Revision: D17196457\n\nPulled By: jamesr66a\n\nfbshipit-source-id: 614be60ed74bed5d0369c58cc450b430cfabe5fb","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/f7bcba33a6888383832575626b26ca6006d2d2ae"},{"sha":"21ba9b3c6d650d7124118cf16b8206e2d2212d7f","author":{"name":"James Reed","email":"f6111144b37277d4771706e14416c5fc33d0fdf4@fb.com"},"message":"Copy quantize routine to vec256 (#25685)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25685\n\nThis saves a bunch of dynamic linking/function call overhead\n\nBenchmark script\n\n```\nimport torch\nimport time\n\nx = torch.rand(1, 256, 56, 56)\ny = torch.rand(1, 256, 56, 56)\n\nprint('dtype', 'ms/iter (float)', 'ms/iter (quant)', 'quant / float', sep='\\t')\n\nfor dtype in [torch.quint8, torch.qint8, torch.qint32]:\n    qX = torch.quantize_linear(x, 0.1, 5, dtype).permute([0, 3, 1, 2])\n    qY = torch.quantize_linear(y, 0.1, 5, dtype).permute([0, 3, 1, 2])\n\n    _x = x.permute([0, 3, 1, 2])\n    _y = y.permute([0, 3, 1, 2])\n\n    NITER = 1000\n\n    # Test float\n    s = time.time()\n    for i in range(NITER):\n        _x + _y\n    elapsed_float = time.time() - s\n    ms_per_iter_float = elapsed_float / NITER * 1000\n\n    # Test quantized\n    s = time.time()\n    for i in range(NITER):\n        torch.ops.quantized.add(qX, qY, 0.1, 5)\n    elapsed = time.time() - s\n    ms_per_iter = elapsed / NITER * 1000\n\n    print(str(dtype), ms_per_iter_float, ms_per_iter, ms_per_iter / ms_per_iter_float, sep='\\t')\n```\n\nBefore this change (DynDisp to AVX2)\n```\ndtype   ms/iter (float) ms/iter (quant) quant / float\ntorch.quint8    0.47539472579956055     0.5174136161804199      1.0883873717996941\ntorch.qint8     0.46573758125305176     0.5322310924530029      1.1427703365080666\ntorch.qint32    0.47144651412963867     4.043398380279541       8.576579228174513\n```\n\nAfter this change (DynDisp to AVX2)\n\n```\ndtype   ms/iter (float) ms/iter (quant) quant / float\ntorch.quint8    0.48140883445739746     0.3396260738372803      0.705483675263412\ntorch.qint8     0.4651052951812744      0.3467671871185303      0.7455670591395397\ntorch.qint32    0.4986207485198975      4.015796899795532       8.053810259031533\n```\n\nTest Plan: Imported from OSS\n\nDifferential Revision: D17199438\n\nPulled By: jamesr66a\n\nfbshipit-source-id: d518500c2b5f4e3a202d9ebc2a5862b4062ef118","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/21ba9b3c6d650d7124118cf16b8206e2d2212d7f"},{"sha":"a6fb6e1fb39f1f4a509dec04e4719ff9e2d04c83","author":{"name":"Lu Fang","email":"6e6bc3b7f607f5d674fb8a406040e26b26ffec27@fb.com"},"message":"Expose an API to iterate all the registered operators (#23207)\n\nSummary:\nSo we can iterate over the operator registry, and check the backward compatiblity.\n\nPull Request resolved: https://github.com/pytorch/pytorch/pull/23207\nghstack-source-id: 89570438\n\nTest Plan: ci and the round trip tests added in the last diff\n\nReviewed By: zrphercule\n\nDifferential Revision: D16434335\n\nfbshipit-source-id: 86a66d746a1f122a8aafe39e936606d6ba7ef362","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/a6fb6e1fb39f1f4a509dec04e4719ff9e2d04c83"},{"sha":"2bed2011901ccef90a9920db0b3b014ce9be0980","author":{"name":"Jiakai Liu","email":"7a87ee36a0d99b899585cbb8c0d4f87bb4b81c5c@fb.com"},"message":"remove caffe2.pb.h dependency for embedding_lookup_idx.cc (#25670)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25670\n\nThis is part of the effort to get rid of protobuf dependency for\nlibtorch mobile build.\n\nembedding_lookup_idx.cc is used by ATen/EmbeddingBag.cpp. It indirectly\nincludes caffe2.pb.h but doesn't really need it. Clean up the headers to\nunblock no-protobuf mobile build.\n\nThe broader problem is that many common headers in pytorch/caffe2 directly\nor indirectly include caffe2.pb.h. After landing the stack of changes to\nremove protobuf from OSS libtorch mobile build, it's going to constraint\nhow ATen and other parts of pytorch use caffe2 components: it will break\nOSS mobile CI if a PR introduces a dependency to a caffe2 file that\nindirectly includes caffe2.pb.h. We will need to tease out caffe2.pb.h\ndependencies like in this diff, or do a refactor to replace protobuf\ngenerated types.\n\nChatted with gchanan and ezyang to confirm that there is no plan to\nadd more dependencies to caffe2 components from ATen in near future,\nso this should be fine.\n\nTest Plan: - build locally with stacked diffs\n\nDifferential Revision: D17191913\n\nPulled By: ljk53\n\nfbshipit-source-id: 1248fe6424060a8bedcf20e73942b7500ae5e815","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/2bed2011901ccef90a9920db0b3b014ce9be0980"},{"sha":"d47ced49ad8a6abd6479794ab3208223b9b86d73","author":{"name":"Cameron Long","email":"869b46827c9ec817602e44583401146d59839700@keywcorp.com"},"message":"Adds a -m flag to pytorch.distributed.launch (#24910)\n\nSummary:\nAdds a '-m' flag to torch.distributed.launch that allows users to launch python modules using launch instead of specifying the full file path.\nPull Request resolved: https://github.com/pytorch/pytorch/pull/24910\n\nDifferential Revision: D17221653\n\nPulled By: pietern\n\nfbshipit-source-id: 5c6453ed266fd121103b11caab303e3f9404227d","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/d47ced49ad8a6abd6479794ab3208223b9b86d73"},{"sha":"cc4211069ee841738468a0f5897c97b4f097a42a","author":{"name":"Hong Xu","email":"0b3307686866342c46008b0805da3549c5788939@topbug.net"},"message":"Do not pass down USE_GLOO_IBVERBS to CMake (#25720)\n\nSummary:\nIt doesn't seem to be used anywhere once down to CMake in this repo or any submodules\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25720\n\nDifferential Revision: D17225088\n\nPulled By: pietern\n\nfbshipit-source-id: a24b080e6346a203b345e2b834fe095e3b9aece0","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/cc4211069ee841738468a0f5897c97b4f097a42a"},{"sha":"d95763b4dcf9d610232c7d02a7d6bdacc423562c","author":{"name":"Summer Deng","email":"601255e35563852a4b111fcd0d33280e92d488e9@fb.com"},"message":"Enable loading int8 prepacked models in PredictorContainer\n\nSummary: To test the int8 ads models on CPU and accelerators with the ads replayer, we need to load the PREPACKING_INIT_NET_TYPE in the int8 model to initialize the int8 w_packed blobs.\n\nTest Plan:\nAds replayer test.\n\nP74811059\n\nReviewed By: zrphercule\n\nDifferential Revision: D16518888\n\nfbshipit-source-id: cee212710ad37d9e491c970b25b2fe484373e5e4","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/d95763b4dcf9d610232c7d02a7d6bdacc423562c"},{"sha":"66ac6698f67ad37c291eb94ca16bd8160be24c92","author":{"name":"Hong Xu","email":"0b3307686866342c46008b0805da3549c5788939@topbug.net"},"message":"remove tools/setup_helpers/cudnn.py (#25482)\n\nSummary:\nFindCUDNN.cmake and cuda.cmake have done the detection. This commit deletes `tools/setup_helpers/cudnn.py` as it is no longer needed.\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25482\n\nDifferential Revision: D17226408\n\nPulled By: ezyang\n\nfbshipit-source-id: abd9cd0244cabea1f5d9f93f828d632d77c8dd5e","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/66ac6698f67ad37c291eb94ca16bd8160be24c92"},{"sha":"3e843115c0dc62f5ecd380144cc4e9d0ca644c95","author":{"name":"Pieter Noordhuis","email":"f2de9eb0f834bcce60d9834a48c4365c3f6ec82c@fb.com"},"message":"Use whitelist instead of blacklist for USE_DISTRIBUTED (#25759)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25759\n\nIn #25260, USE_DISTRIBUTED was defaulted to OFF for Windows and macOS\nonly. The Android builds didn't run for the PR and started to fail\nwhen it was merged to master. It turns out the mobile builds\nexplicitly disable USE_DISTRIBUTED but only after the USE_DISTRIBUTED\noption, and derivative dependent options were defined. The result\nbeing that USE_GLOO was enabled while USE_DISTRIBUTED was disabled.\n\nThis commit ensures that USE_DISTRIBUTED defaults to OFF unless the\nbuild is for a supported platform.\nghstack-source-id: 89613698\n\nTest Plan: N/A\n\nDifferential Revision: D17224842\n\nfbshipit-source-id: 459039b79ad5240e81dfa3caf486858d6e77ba4b","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/3e843115c0dc62f5ecd380144cc4e9d0ca644c95"},{"sha":"4c7189d0f4304f69debb8c829f6a364b9a2d44c6","author":{"name":"Jiakai Liu","email":"7a87ee36a0d99b899585cbb8c0d4f87bb4b81c5c@fb.com"},"message":"fix OSS mobile CI (#25755)\n\nSummary:\nPull Request resolved: https://github.com/pytorch/pytorch/pull/25755\n\nPR #25721 breaks mobile CI (with USE_STATIC_DISPATCH=1) due to circular\nheader dependency.\nMove 'ATen/core/Tensor.h' back into '#ifdef BUILD_NAMEDTENSOR' to work\naround the CI issue.\n\nTest Plan: - build android library locally\n\nDifferential Revision: D17223997\n\nPulled By: ljk53\n\nfbshipit-source-id: d8b5fd26e332953f1b592758fc76947ea2af94dc","distinct":false,"url":"https://api.github.com/repos/pytorch/pytorch/commits/4c7189d0f4304f69debb8c829f6a364b9a2d44c6"}]}
other: {"actor":{"display_login":"zhaojuanmao"}}