-
Notifications
You must be signed in to change notification settings - Fork 224
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
error in using torchao and torch compile on rtx 4090 #1775
Comments
@jerryzh168 assigning this to you since its about autoquant perf |
actually,The same phenomenon also occurs when using the quantize_(pipe.transformer,float8_weight_only(weight_dtype=torch.float8_e4m3fn),device='cuda') |
seems like this works for me:
for autoquant, I can't test now, but can you test the following and report back:
|
Which versions of Torch and TorchAO are you using? i change to 0%| | 0/50 [00:08<?, ?it/s]
Traceback (most recent call last):
File "/media/242hdd/research/arc_repose/quant.py", line 64, in <module>
transformer(**example_inputs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/eval_frame.py", line 574, in _fn
return fn(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 1380, in __call__
return self._torchdynamo_orig_callable(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 547, in __call__
return _compile(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 1036, in _compile
raise InternalTorchDynamoError(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 986, in _compile
guarded_code = compile_inner(code, one_graph, hooks, transform)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 715, in compile_inner
return _compile_inner(code, one_graph, hooks, transform)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_utils_internal.py", line 95, in wrapper_function
return function(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 750, in _compile_inner
out_code = transform_code_object(code, transform)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/bytecode_transformation.py", line 1361, in transform_code_object
transformations(instructions, code_options)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 231, in _fn
return fn(*args, **kwargs)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 662, in transform
tracer.run()
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 2868, in run
super().run()
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 1052, in run
while self.step():
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 962, in step
self.dispatch_table[inst.opcode](self, inst)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 3048, in RETURN_VALUE
self._return(inst)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 3033, in _return
self.output.compile_subgraph(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/output_graph.py", line 1136, in compile_subgraph
self.compile_and_call_fx_graph(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/output_graph.py", line 1329, in compile_and_call_fx_graph
fx.GraphModule(root, self.graph),
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 511, in __init__
self.graph = graph
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2029, in __setattr__
super().__setattr__(name, value)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 558, in graph
self.recompile()
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 808, in recompile
cls.forward = _forward_from_src(self._code, python_code.globals, co_fields)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 190, in fx_forward_from_src_skip_result
result = original_forward_from_src(src, globals, co_fields)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 92, in _forward_from_src
return _method_from_src(
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 102, in _method_from_src
_exec_with_source(src, globals_copy, co_fields)
File "/media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages/torch/fx/graph_module.py", line 88, in _exec_with_source
exec(compile(src, key, "exec"), globals)
torch._dynamo.exc.InternalTorchDynamoError: SystemError: excessive stack use: stack is 6366 deep
Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information
You can suppress this exception and fall back to eager by setting:
import torch._dynamo
torch._dynamo.config.suppress_errors = True this is my torch and torch ao version detail: Name: torch
Version: 2.6.0+cu124
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3-Clause
Location: /media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages
Requires: filelock, fsspec, jinja2, networkx, nvidia-cublas-cu12, nvidia-cuda-cupti-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-runtime-cu12, nvidia-cudnn-cu12, nvidia-cufft-cu12, nvidia-curand-cu12, nvidia-cusolver-cu12, nvidia-cusparse-cu12, nvidia-cusparselt-cu12, nvidia-nccl-cu12, nvidia-nvjitlink-cu12, nvidia-nvtx-cu12, sympy, triton, typing-extensions
Name: torchao
Version: 0.8.0+cu124
Summary: Package for applying ao techniques to GPU models
Home-page: https://github.com/pytorch/ao
Author:
Author-email:
License:
Location: /media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages
Requires:
Required-by:
Name: diffusers
Version: 0.32.0
Summary: State-of-the-art diffusion in PyTorch and JAX.
Home-page: https://github.com/huggingface/diffusers
Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/diffusers/graphs/contributors)
Author-email: diffusers@huggingface.co
License: Apache 2.0 License
Location: /media/74nvme/software/miniconda3/envs/repose/lib/python3.10/site-packages
Requires: filelock, huggingface-hub, importlib-metadata, numpy, Pillow, regex, requests, safetensors
|
@zhangvia I'm using the same version I think, I changed the code slightly, did you see it? specifically torch.compile is applied after quantize_. |
i'm pretty sure i apply the compile after quantize_, but the same error still happens without any compile log. and i try the autoquant script above in your reply, it also got error. when use autoquant after torch.compile. it will print some compile logs and then stack error happens. if use compile first, it gets this error: File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/eval_frame.py", line 574, in _fn
return fn(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1845, in _call_impl
return inner()
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1772, in inner
args_kwargs_result = hook(self, args, kwargs) # type: ignore[misc]
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 1380, in __call__
return self._torchdynamo_orig_callable(
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 547, in __call__
return _compile(
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 986, in _compile
guarded_code = compile_inner(code, one_graph, hooks, transform)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 715, in compile_inner
return _compile_inner(code, one_graph, hooks, transform)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_utils_internal.py", line 95, in wrapper_function
return function(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 750, in _compile_inner
out_code = transform_code_object(code, transform)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/bytecode_transformation.py", line 1361, in transform_code_object
transformations(instructions, code_options)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 231, in _fn
return fn(*args, **kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/convert_frame.py", line 662, in transform
tracer.run()
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 2868, in run
super().run()
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 1052, in run
while self.step():
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 962, in step
self.dispatch_table[inst.opcode](self, inst)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 659, in wrapper
return inner_fn(self, inst)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 1658, in CALL_FUNCTION
self.call_function(fn, args, {})
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 897, in call_function
self.push(fn.call_function(self, args, kwargs)) # type: ignore[arg-type]
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/functions.py", line 317, in call_function
return super().call_function(tx, args, kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/functions.py", line 118, in call_function
return tx.inline_user_function_return(self, [*self.self_args(), *args], kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 903, in inline_user_function_return
return InliningInstructionTranslator.inline_call(self, fn, args, kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 3072, in inline_call
return cls.inline_call_(parent, func, args, kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/symbolic_convert.py", line 3119, in inline_call_
sub_locals = func.bind_args(parent, args, kwargs)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/functions.py", line 255, in bind_args
contents_var = VariableTracker.build(
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/base.py", line 457, in build
return builder.VariableBuilder(tx, source)(value)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/builder.py", line 388, in __call__
vt = self._wrap(value)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/builder.py", line 567, in _wrap
return type_dispatch(self, value)
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/variables/builder.py", line 492, in wrap_removable_handle
unimplemented("unregistered hook removable handle")
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torch/_dynamo/exc.py", line 317, in unimplemented
raise Unsupported(msg, case_name=case_name)
torch._dynamo.exc.Unsupported: unregistered hook removable handle
from user code:
File "/media/sdb/zjy/miniconda3/envs/hunyuan/lib/python3.10/site-packages/torchao/quantization/autoquant.py", line 1315, in autoquant_prehook
module.finalize_autoquant()
Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information i mentioned that the error only happen on rtx 4090 in diffusers-torchao/#50. but it seems that when i reinstall the pytorch and torchao, the error also happens in l20. now i have no idea why the error happened. and someone got the same error on h20 diffusers-torchao/#45 |
reproduce script,you can download the serialized_inputs.pt
env:
torch:2.6.0+cu124
torchao:0.8.0+cu124
diffusers:0.32.0
gpu:rtx4090
error traceback:
i encounter the above error on rtx4090, but weirdly the above code can run on L20 successfully
The text was updated successfully, but these errors were encountered: