CUDA: synchronously copy global reduction buffer to host
OpenCL: use array as device reduction buffer
OpenCL: Explicitly mark solution as dirty after solve