Catching all errors

Hi all,

I am working on a prototype of a product where undefined output from a computation is not acceptable (medical physics). I currently have a problem with one of my kernels returning seemingly arbitrary data only in high-memory usage scenarios (on Quadro 6000, but nowhere near 6 GB or MAX_MEM_ALLOC_SIZE), without any error code indicating a problem. I will try to get back to you with an example demonstrating the problem if replies don’t indicate that my error handling needs to be reworked…

My impression (perhaps unmotivated) was that it should be sufficient to examine all error codes to be certain that the code was executed properly (although errors could be returned in later calls in asynchronous cases). The thread Non-blocking Write Always Completes Without Error indicates that may not be the case and callbacks must also be used…

Is there a complete list somewhere of what needs to be checked to be certain that all errors are caught?

The OpenCL 1.1 spec for clCreateContext is rather worrying…

“NOTE: There are a number of cases where error notifications need to be delivered due to an error that occurs outside a context. Such notifications may not be delivered through the pfn_notify callback. Where these notifications go is implementation-defined.”

Can present driver implementations (NVidia/Intel) in general be trusted to always deliver an error (either an error code or to a callback) if there are problems?

Thanks for any help you can offer!