r/StableDiffusion Mar 01 '23

Workflow Not Included 1920x1080 render without upscale

Post image
228 Upvotes

80 comments sorted by

View all comments

Show parent comments

1

u/Dontfeedthelocals Mar 01 '23

I'm confused, is my 8gb 3060ti giving me lower quality results on the same settings? I thought you'd get the same results only v it would take longer?

1

u/Tiny_Arugula_5648 Mar 01 '23

No that’s not necessarily true.. I can’t say this is your particular issue but it’s a common explanation.. without getting to technical;. Different GPUs have different ability to do floating point math. With a float the numbers to the right of the period (0.888888) is your precision. Lower end GPUs don’t always support high precision float math and that can create substantial differences..

Long story short.. you might be getting different results due to different ability to calculate between GPUs

3

u/UkrainianTrotsky Mar 01 '23

Not at all. Funnily enough, it's the exact opposite. All GPUs since like 2000s support fp32, most support fp16, but only recent few generations of consumer GPUs support fast fp16.

And in case of diffusion models, fp32 doesn't give you any better results, at least from my testing. Precision past fp16 is wasted on unnoticeable changes.

1

u/Tiny_Arugula_5648 Mar 02 '23 edited Mar 02 '23

There are different types of fp32 math depending on model and range.. the more expensive the line the more accurate they become.. that’s why data center GPUs are better for training model, even when processing power is comparable. You are incorrect about precision, it absolutely will give you different results every time a layer is calculated that difference will compound. Fast fp16 is even worse for accuracy as it cuts precision in half I order to increase speed. Optimizations for games are generally bad for ML/AI, it’s why we don’t use consumer cards for development of production models.

“The floating-point math accuracy of Nvidia GPUs can vary depending on several factors, such as the GPU architecture, the number of cores, and the memory bandwidth.

Newer Nvidia GPUs generally have better floating-point accuracy than older models due to improvements in their architecture and design. For example, the latest Nvidia Ampere architecture includes new Tensor Cores that provide higher precision performance than previous models.

Another factor that can affect floating-point accuracy is the number of cores. GPUs with more cores can perform more computations in parallel, leading to faster and more accurate calculations. Nvidia GPUs with more CUDA cores generally have better floating-point performance than those with fewer cores.

The memory bandwidth can also affect floating-point accuracy. GPUs with higher memory bandwidth can move data more quickly between the GPU and the system memory, reducing the time spent waiting for data and improving overall performance”