Skip to content

Error handling/reporting API #383

Open
@maleadt

Description

@maleadt

I noticed DiffEqGPU doing a plain error() in GPU code: https://github.com/SciML/DiffEqGPU.jl/blob/dddcb594ce054c0677bc1b18fdabca2fc0c2eaa9/src/perform_step/gpu_tsit5_perform_step.jl#L152

That's of course not great, and leads to inscrutable errors:

ERROR: a exception was thrown during kernel execution.
       Run Julia on debug level 2 for device stack traces.

Running on -g2 doesn't actually help because the error function is not inlined, leading to multiple call sites.

KA.jl should probably offer an @error and @assert macro that display an error message and halt execution. On CUDA.jl the latter may be implemented using @cuassert (which has the annoying consequence of breaking CUDA, because it yields a sticky error, so we may not want to).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions