I have a program using Brook+ that in a cycles uploads some data to the GPU, run some kernels with the data, and downloads it back. All of these kernels are scatter/gather ones. The problem is, that I get an unhandled exception caused by memory access violation. I'm almost certain this exception comes from the RPC threads, as this exception is not thrown from my main or worker threads. And I'm again almost certain this is a problem between my program and GPU, because when is switch to CPU backend, the problem does not occur.
Under Windows, the exception is thrown always somewhere in the first cycle, under linux it's random.
I tried to make all my data uploads/downloads pinned, in case the problem was somewhere in the copy from host to PCI memory. But with no luck.
Has anyone had a similar problem? Should I continue to work with CPU backend and hope the problem is discovered and removed?
I'm also considering rewriting it with OpenCL. But I'm not sure if its worth it. If my problem is caused inside Brook+, than maybe. If it's in the CAL layer or driver, maybe it's worth a wait. What do you think?
Thank you very much
PS: I have the lates drivers both under Win and Linux, CAL 1.4.0, and tried both Brook+ 1.4.0 and 1.4.1