single precision floating point error


in Appendix A of the programming guide 2.0:

"For single-precision floating-point numbers only […]

Denormalized numbers are not supported"

imho 1.4E-45 is the smallest positive denormalized number in single precision and shoud not be supported in CUDA.

But CUDA can deal with this number and gives the correct result. why?

How can I prove the precision of IEEE-754 in CUDA as written in table B-1 of the programming guide 2.0?

Has anybody already worked with single precision error in CUDA?

Thank you for your answer!


What exactly do you mean by “deal with this number” and “gives correct results”?

The GPU will flush denormals to zero, but not necessarily every time it sees one. If you just copy it from one place to another, it may get preserved. Do you seek to find the exact rules?

Do you know the rules?

Do you know an example where Cuda flushes an denormalized number to zero? I did not find one.