Skip to content

Errors thrown in kernels are not reported on Intel's OpenCL driver (NEO) #501

Description

@maleadt
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.

Activity

  1. maleadt commented on Sep 25, 2026

    @maleadt
    MemberAuthor

    This was because of an outdated OpenCL.jl version, which didn't have error reporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions