GPGPU computations are primarily for highly parallel applications. Unlike a CPU where you may be able to run a few threads at a time, CUDA/OpenCL (I'll use these ones as the example since you have a 295) are setup to take advantage of many thread executions on the same programming kernel. Any set of threads created for a GPU must be running the exact same kernel on every bit of data passed. Once all those threads are done executing, you can start a new kernel and accompanying threads.
Data transfers to and from the card are typically the main bottleneck so ideally you want the all the needed data (both input and output) to stay on the card as long as possible. I could be wrong but I believe you can switch kernels without changing...