-
Notifications
You must be signed in to change notification settings - Fork 43
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
Test for min / max broadcasting issue #389
Comments
Seems like the custom maximum / minimum implementation for metal in juliagpu/GPUCompiler is broken. |
Bisected to JuliaLang/julia#47814. |
Would probably be valuable to add this as a test though. |
I just noticed that this was fixed in GPUCompiler.jl. Would pushing a PR bumping its version be helpful? |
@cncastillo The minimum supported Julia version was increased to 1.10 on master/main for both repos. I assume the next GPUCompiler version will be breaking and that's why it hasn't been bumped yet. |
I've run into an issue broadcasting min and max together over a Metal array:
The last two lines produce different results, with the results for the CPU array A being correct and the GPU array B being incorrect. For the GPU result, it seems to produce the same results as the line below, interestingly:
max.((B .- t_start) ./ (t_end - t_start), one(Float32))
I'm seeing this on Julia 1.10.4 with a Mac M1, and I've confirmed this issue to be the cause of this failing build: https://buildkite.com/julialang/komamri-dot-jl/builds/824 which passes for Julia 1.9, so it's possible this is a regression in Julia 1.10, but I haven't confirmed this to be the case. For our use case, we should be able to work around the issue by using a tmp array to separate the min / max broadcasts, or writing an actual kernel to do the equivalent of the failing operation.
Full version info:
The text was updated successfully, but these errors were encountered: