-
Notifications
You must be signed in to change notification settings - Fork 84
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
Add nv_enable_options
and nv_disable_options
#1432
Conversation
Maybe @jjsjann123 or @kevinstephano would like to review this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick on the test. Code change looks good to me otherwise.
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
ba56a4e
to
f60ad93
Compare
for more information, see https://pre-commit.ci
What would be sane defaults here? |
By default, no options need to be used. The primary objective of these options is nvfuser development. This PR coupled with NVIDIA/Fuser#3270 allows us to enable nvfuser codegen for matmul/linear through Thunder using these options. This is to primarily support direct experimentation on nvfuser's matmul scheduler from Thunder. |
These are good questions. I think it's OK for now because these are just developer-facing options to continue experimentation. Maybe we should review how options are presented more generally, to clarify what is for practitioners vs. internal developers? Maybe developer options should be better documented somewhere, too? |
We could rename the above options to
I can add a wiki to the nvfuser page listing our options and/or add those to error messages in nvfuser. |
That's a cool idea! Or maybe "developer_nv_enable" or something? Let's not rename anything just yet, but a different naming scheme could make this clearer.
Also a great idea! Again: nothing required now. Maybe the Thunder github repo should havea wiki, too |
I wonder if it would be useful to think about making this an option for NVFuser now. |
I think what we need to follow-up on is that this isn't UX, it's DevX, and maybe we need to do something to make that clearer going forward. |
Fair that it's DevX, but it will easily become UX if we don't pay attention. Like I can totally see these options percolate into reference models, benchmarks, etc just because they are there. So, we can merge, but then we will need to call out when these are actually used in the wild because it could spiral out of control. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nvFuser version >= 0.2.23
will support settingNVFUSER_ENABLE/NVFUSER_DISABLE
through the python frontend using_enable_options
and_disable_options
flags. This is to enable matmul/linear codegen for nvfuser through Thunder using flagsnv_enable_options=["fuse_matmul"], nv_disable_options=["matmul_expr_eval"]
Issue: NVIDIA/Fuser#3022
nvFuser PR: NVIDIA/Fuser#3270