siliconflow / onediff

OneDiff: An out-of-the-box acceleration library for diffusion models.
https://github.com/siliconflow/onediff/wiki
Apache License 2.0
1.42k stars 85 forks source link

A10 性能下降 #854

Closed maidabu closed 7 hours ago

maidabu commented 1 month ago

onediff从0.12.1开始相比于0.12.0有10%以上的性能下降,是怎么回事。

strint commented 1 month ago

onediff从0.12.1开始相比于0.12.0有10%以上的性能下降,是怎么回事。

请问是什么模型,什么设备。能否说明下复现方式。

maidabu commented 1 month ago

onediff从0.12.1开始相比于0.12.0有10%以上的性能下降,是怎么回事。

请问是什么模型,什么设备。能否说明下复现方式。

A10上,SD1.5。就跑https://github.com/siliconflow/onediff/blob/main/onediff_diffusers_extensions/examples/text_to_image.py

strint commented 1 month ago

onediff从0.12.1开始相比于0.12.0有10%以上的性能下降,是怎么回事。

请问是什么模型,什么设备。能否说明下复现方式。

A10上,SD1.5。就跑https://github.com/siliconflow/onediff/blob/main/onediff_diffusers_extensions/examples/text_to_image.py

好的,我们已经在复现和定位问题

lijunliangTG commented 1 month ago

你提到的情况确实存在,为了支持动态分辨率,所以在 A10 上性能多了10%的开销,我们会继续深入了解下这个性能的开销能否缩减。对应改动的 PR:

https://github.com/siliconflow/onediff/pull/552/files

你之前用的应该是这个 PR 之前的版本,不支持动态分辨率切换。如果你觉得不需要动态分辨率切换,我们应该可以提供一个开关避免这个开销。 @maidabu

maidabu commented 1 month ago

您提到的情况确实存在,为了支持动态分辨率,所以性能多了10%的开销。 https://github.com/siliconflow/onediff/pull/552/files

为什么支持动态分辨率性能会下降这么多,底层跑的kernel应该都一样吧

strint commented 7 hours ago

您提到的情况确实存在,为了支持动态分辨率,所以性能多了10%的开销。 https://github.com/siliconflow/onediff/pull/552/files

为什么支持动态分辨率性能会下降这么多,底层跑的kernel应该都一样吧

是不一样的,一些不支持动态 shape 的 op 被替换掉了。我们在做一些技术栈重构,会在新技术栈来改进这块。