Make stats tests numerically more stable for oneAPI #662
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On oneAPI.jl, the cor(A; dims=2) test failed for
Float16(one some GPUs), caused by numerical instability when computing the variance of rows with only 2 elements drawn from [0, 1). This leads to subnormal variances, which are flushed to zero on the CPU (causing NaN or -1 results) but preserved on the oneAPI GPU (causing valid results), resulting in a mismatch.Now I'm not a stats person, and I don't want to fix anything deeper in Intel oneAPI, but it seems to be fixed with an extended range. I saw that there was already such a special case for
Real. Unfortunately, that still doesn't fix theComplexF32case.