Skip to content
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

Allow linear to be consumed by nvFuser by default #1371

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
4 changes: 4 additions & 0 deletions thunder/executors/nvfuserex_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -2240,6 +2240,10 @@ def map_inside_replacement(x: Any) -> None:

def _linear_check(a: TensorProxy, b: TensorProxy, bias: TensorProxy | None) -> bool:
enable_linear: None | bool = get_compile_option("nv_enable_linear", "Enable nvFuser linear.")
# Enable linear by default if nvFuser version is 0.2.23 or later
# Because nvFuser 0.2.23 has a fix for https://github.com/NVIDIA/Fuser/issues/3369
if enable_linear is None and nvfuser_version() >= LooseVersion("0.2.23"):
enable_linear = True
if not enable_linear:
return False
# Verify linear inputs and bias (optional) are supported tensors.
Expand Down
1 change: 1 addition & 0 deletions thunder/tests/test_nvfuser.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ def test_cse_rematerialization(executor, device, _):
disable_torch_autograd=True,
executors=executor.executors_list(),
nv_enable_bookend=False,
nv_enable_linear=False,
)
compiled_func(x, y)

Expand Down
Loading