[random] Add generator arg to rand*_like APIs #166160
[random] Add generator arg to rand*_like APIs #166160KarhouTam wants to merge 7 commits intopytorch:mainfrom
generator arg to rand*_like APIs #166160Conversation
(cherry picked from commit 3727a5e)
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/166160
Note: Links to docs will display an error until the docs builds have been completed. ❗ 1 Active SEVsThere are 1 currently active SEVs. If your PR is affected, please view them below: ✅ You can merge normally! (1 Unrelated Failure)As of commit 2394bc2 with merge base e67e3d9 ( FLAKY - The following job failed but was likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
|
@pytorchbot label "module: random" "release notes: random" |
|
Didn't find following labels among repository labels: release notes: random |
Attention! native_functions.yaml was changedIf you are adding a new function or defaulted argument to native_functions.yaml, you cannot use it from pre-existing Python frontend code until our FC window passes (two weeks). Split your PR into two PRs, one which adds the new C++ functionality, and one that makes use of it from Python, and land them two weeks apart. See https://github.com/pytorch/pytorch/wiki/PyTorch's-Python-Frontend-Backward-and-Forward-Compatibility-Policy#forwards-compatibility-fc for more info. Caused by: |
|
@pytorchbot label "release notes: python_frontend" |
|
I think this PR is ready for review! |
|
Hi, @albanD @malfet @bobrenjc93. PTAL. If anything this PR missed, please let me know. |
albanD
left a comment
There was a problem hiding this comment.
SGTM!
Thanks for taking the time to look at this one!
|
@pytorchbot merge |
Merge startedYour change will be merged once all checks pass (ETA 0-4 Hours). Learn more about merging in the wiki. Questions? Feedback? Please reach out to the PyTorch DevX Team |
Fixes #165865 ## What this PR does? - [x] Add `generator` arg to `rand*_like` APIs (`rand_like()`, `randn_like()`, `randint_like()`). - [x] Add unit tests for `rand*_like` APIs - [x] Add corresponding arg docs - [x] Refactor `rand*_like()` codes in `TensorFactories.cpp` - [x] Add corresponding and former missed items in `VmapModeRegistrations.cpp` ## Example (using `rand_like()`) ```python gen0 = torch.Generator() gen1 = torch.Generator() gen2 = torch.Generator() gen0.manual_seed(42) gen1.manual_seed(42) gen2.manual_seed(2025) tensor = torch.empty(10) t0 = torch.rand_like(tensor, generator=gen0) t1 = torch.rand_like(tensor, generator=gen1) t2 = torch.rand_like(tensor, generator=gen2) assert t0 == t1 assert t2 != t0 assert t2 != t1 ``` Pull Request resolved: #166160 Approved by: https://github.com/cyyever, https://github.com/albanD
…functions (#167824) As the title stated. PR #166160 add generator variants to `rand*_like()` functions, this PR is for finding out staled signatures and fixing them. Pull Request resolved: #167824 Approved by: https://github.com/cyyever, https://github.com/albanD
…functions (#167824) As the title stated. PR #166160 add generator variants to `rand*_like()` functions, this PR is for finding out staled signatures and fixing them. Pull Request resolved: #167824 Approved by: https://github.com/cyyever, https://github.com/albanD
Fixes #165865
What this PR does?
generatorarg torand*_likeAPIs (rand_like(),randn_like(),randint_like()).rand*_likeAPIsrand*_like()codes inTensorFactories.cppVmapModeRegistrations.cppExample (using
rand_like())cc @pbelevich @albanD