There are many differences between ATI and Nvidia GPU architecture. I have done a little programming in OpenCL and didn't have much luck with ATI's drivers. This was a couple of years ago so I don't know just how much has changed. One of the big gotcha's was I could not get the ATI drivers to work headless. For GPGPU this is a very important consideration. Even with OpenCL the Nvidia drivers were much easier to work with and use.
Speed wise, Marcus is correct, as the kernels get more and more complex, you are going to need more robust cores then simpler ones (even if the simpler ones are faster on paper). What makes GPU's fast is that you can break the problem in to a whole bunch of little problems that can be ran at the same time in parallel. In order to have the GPU maximize it's cycles and usage these little problems need to be in lock step as they process. As much as can be possible they need to run the same kernel code and access memory at the same time. When ever you have a conditional change in the code this has a chance of making some of the cores run different code and access memory at a different time, that slows the GPU down. This is why the simple GPU cores in the ATI cards are faster in games then Nvidia's. The code that games use are very well known and it's easier for the GPU to group the memory access and run the kernels. Applications like Octane are much, much more complex.
Adding in CPU's to the mix will not help very much at all. Even on my lowly GTX460 I have 336 cores to work with. They are not as powerful as a full blown CPU but there are many, many more of them. And for problem that can be divided up into small parallel parts, more is much better. To get a CPU setup that could compare you would have to build a cluster(with 300+ CPU's) and that is far more expensive and difficult to use then my little GTX460.
Jason