using OpenCL
OpenCL.cl.platform!(only(filter(p -> occursin("Intel(R) OpenCL Graphics", p.name), OpenCL.cl.platforms())))
Int32.(CLArray(Float32[0.5, 1.0])) # Int32[0, 1], no error
On PoCL the same call throws a KernelException (the InexactError of Int32(0.5f0)); on NEO the kernel completes and the result silently contains a wrong value. Seen with OpenCL.jl 0.10.11 and Julia 1.13.0-rc4 on an Intel Iris Xe (device 0x9a49), rechecked on 2026-09-24.
AcceleratedKernels.jl works around it for its predicates: any, all and findall check on the host, where inference allows, that the predicate returns a Bool (WORKAROUND(Intel NEO) in src/predicates.jl on JuliaGPU/AcceleratedKernels.jl#133), since the kernel's TypeError would otherwise be lost there. It will drop that check once errors are reported.
On PoCL the same call throws a
KernelException(theInexactErrorofInt32(0.5f0)); on NEO the kernel completes and the result silently contains a wrong value. Seen with OpenCL.jl 0.10.11 and Julia 1.13.0-rc4 on an Intel Iris Xe (device 0x9a49), rechecked on 2026-09-24.AcceleratedKernels.jl works around it for its predicates:
any,allandfindallcheck on the host, where inference allows, that the predicate returns aBool(WORKAROUND(Intel NEO)insrc/predicates.jlon JuliaGPU/AcceleratedKernels.jl#133), since the kernel'sTypeErrorwould otherwise be lost there. It will drop that check once errors are reported.