I have a kernel that I successfully setup and ran, but I want to take the results of that kernel run, then rerun the kernel with a new data set 40,000 times.

Is it possible to replace the GPU memory with a new data set without repeating the whole setup process (creating context, commandQueue, program, kernel, memory buffer, kernel arguments)?

My kernel takes 5 arrays and calculates a score. Then I read the score back to the CPU. Using the score, I change one of the arrays and I want to rerun the kernel with the changes. How do I reset the array on the GPU?