-
Notifications
You must be signed in to change notification settings - Fork 24.7k
Config fuzzer #139736
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Config fuzzer #139736
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/139736
Note: Links to docs will display an error until the docs builds have been completed. ⏳ No Failures, 1 PendingAs of commit 6dde38c with merge base fd382f1 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
b93f94a
to
2812500
Compare
63de493
to
543da65
Compare
8a89a60
to
3d45863
Compare
7f66a53
to
50619b4
Compare
Summary: Adds types to Configs, and fixes a bug in options that was caused by the lack of types. fixes: #139822 Configs are used by many modules so not sure which label to put. Types also allow #139736 to fuzz configs Pull Request resolved: #139833 Approved by: https://github.com/c00w
ef24f3f
to
234d251
Compare
fa11c3d
to
f87cea5
Compare
@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 |
Merge failedReason: 2 mandatory check(s) failed. The first few are:
Dig deeper by viewing the failures on hud |
@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 |
The merge job was canceled or timed out. This most often happen if two merge requests were issued for the same PR, or if merge job was waiting for more than 6 hours for tests to finish. In later case, please do not hesitate to reissue the merge command |
This tool makes it easy to search through config state-space with a minimal reproduction or test. It presents a similar interface to the config bisector by taking a test_function that should either raise on Exception or return False upon failure. It has two entry points: fuzz_n_tuple, which tries every combination of n configs, and fuzz_with_bisect, which randomly flips configs and tries to find the minimal reproduction upon failure. fuzz_with_bisect is a much more efficient way to search the space, but fuzz_n_tuple can give you peace of mind that a new config will compose with every other config. It's been used to find two bugs so far in the inductor config: This PR also adds a bunch of missing types to the inductor config to get them to play nice with the fuzzer, so it can be a good forcing function for adding types to config.
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
0bcb9d2
to
658cfd1
Compare
@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 |
This tool makes it easy to search through config state-space with a minimal reproduction or test. It presents a similar interface to the config bisector by taking a test_function that should either raise on Exception or return False upon failure.
It has two entry points:
fuzz_n_tuple
, which tries every combination of n configs, andbisect
, which randomly flips configs and tries to find the minimal reproduction upon failure.bisect
is a much more efficient way to search the space, butfuzz_n_tuple
can give you peace of mind that a new config will compose with every other config.It's been used to find three bugs so far in the inductor config:
#140220 #140219
#143524
This PR also adds a bunch of missing types to the inductor config to get them to play nice with the fuzzer, so it can be a good forcing function for adding types to config.
cc @voznesenskym @penguinwu @EikanWang @jgong5 @Guobing-Chen @XiaobingSuper @zhuhaozhe @blzheng @wenzhe-nrv @jiayisunx @ipiszy @yf225 @chenyang78 @kadeng @muchulee8 @ColinPeppler @amjames @desertfire @chauhang @aakhundov