I don't think its even the intention to have winner in the CPU vs GPU "war". GPU makers try to offload the math centred stuff to that chip which is definitely better at it, which is clearly the GPU due to its high parallelism and the focus on just doing this and nothing else.
The CPU on the other hands has its benefits as well like Out of order execution and sophisticated branch prediction and the like.
My guess thought is that the next generation of NVIDIA chipsets with the next iteration of CUDA will get a few more interesting capabilities, at least thats how it sounded yesterday but he wasn't allowed (logically) to give any information on what exactly and especially when (thought thats predictable. Q3 to Q4 this year at latest, my guess, as the G80-G90 starts to wear off and the HD4000 are approaching the scene in the forseable future). But it sounds like they added and are adding a few nice new tricks to the ShaderCores and SMs.
For what you want to achieve CUDA actually could be used as well depending on how long the stuff is because you could use cuda to achive part results which can be highly parallelized, then do some work or branching with that on CPU and then work on GPU again. Each of that GPU sections would be its own kernel.
Requirement would be a large dataset to operate on as the initialize and setup (data copies to and from gpu) would otherwise cost more than you get from using the GPU.
The CPU on the other hands has its benefits as well like Out of order execution and sophisticated branch prediction and the like.
My guess thought is that the next generation of NVIDIA chipsets with the next iteration of CUDA will get a few more interesting capabilities, at least thats how it sounded yesterday but he wasn't allowed (logically) to give any information on what exactly and especially when (thought thats predictable. Q3 to Q4 this year at latest, my guess, as the G80-G90 starts to wear off and the HD4000 are approaching the scene in the forseable future). But it sounds like they added and are adding a few nice new tricks to the ShaderCores and SMs.
For what you want to achieve CUDA actually could be used as well depending on how long the stuff is because you could use cuda to achive part results which can be highly parallelized, then do some work or branching with that on CPU and then work on GPU again. Each of that GPU sections would be its own kernel.
Requirement would be a large dataset to operate on as the initialize and setup (data copies to and from gpu) would otherwise cost more than you get from using the GPU.