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

[Performance 3/6] Disable nan check by default #15805

Closed
wants to merge 1 commit into from

Conversation

huchenlei
Copy link
Contributor

@huchenlei huchenlei commented May 15, 2024

Description

According to lllyasviel/stable-diffusion-webui-forge#716 (comment) , nan check has ~20ms/it overhead. The overhead is large enough that option should only be used for debugging purpose.

Screenshots/videos:

image

Checklist:

@SLAPaper
Copy link

can the nan check only enable for VAE?

@wfjsw
Copy link
Contributor

wfjsw commented May 18, 2024

nan check is not great but disabling that has a lot of implications for example the VAE fallback will no longer work

@wfjsw
Copy link
Contributor

wfjsw commented May 18, 2024

long term wise it may be desirable to load VAE as bfloat16 instead

@AUTOMATIC1111
Copy link
Owner

As it is now it will break automatically switching to full precision VAE.

@AUTOMATIC1111
Copy link
Owner

AUTOMATIC1111 commented Jun 8, 2024

Can we maybe just get the needed performance improvement by checking a single element instead of the whole tensor? Since there are batch norms, single values becoming NaN dooms the whole tensor to become all NaNs.

I pushed 547778b to dev with this change.

@AUTOMATIC1111
Copy link
Owner

AUTOMATIC1111 commented Jun 8, 2024

Also what tool is being used here for those performance visualizations? I'd like that too.

Edit: it's torch's profiler visualized in chrome https://pytorch.org/tutorials/recipes/recipes/profiler_recipe.html

@huchenlei
Copy link
Contributor Author

Can we maybe just get the needed performance improvement by checking a single element instead of the whole tensor? Since there are batch norms, single values becoming NaN dooms the whole tensor to become all NaNs.

I pushed 547778b to dev with this change.

I think checking only a single element is a better way to handle this. Thanks for doing that!

@huchenlei huchenlei closed this Jun 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants