You used CUDA / GPU farms for the previews but CPU farms for the end product? That wouldn't appear to make sense from a business standpoint, but I'm not in the industry. Can you elaborate a little?
Not really farms, just lots of cards to accelerate previews.
Example, something like smoke in a scene.
Smoke is created by generating particles. Basically a flat plane with 3 or 4 sides. Each plane is mapped with a transparency map and a texture map. These planes are tiny , 2x2 pixel type sizes. You use millions of these to make up something like smoke from a burning car. To get them to move like smoke you have to run a simulation that takes into account wind, gravity, velocity of particles, birth rate and death rate as well as how long each particle will be visible in the scene.
Where things like a gpu help is in crunching the numbers of that simulation. It is almost all math and the gpu excels at that. So I can tweak the simulation displaying it at 3 -4 fps and seeing the results versus using straight cpu and having to wait 30 seconds between every change to see the end result. Realize that even with the gpu assist I cannot view what the final render will look like, the resolutions and amount of other calculations required for the final scene render are too complex for the current setups.
The final render is done on cpu because right now the rendering code only runs on cpus. It is very complex and the porting of it to gpu will take a lot of time. The cost in time to do that has to be worth the gains. The current gpu also are not set up to handle the massive amounts of memory and interconnection that would be required. You would need cards with 8GB+ ram each and several hundred gpus to match what renderfarms can do now. It will get there but not for several years.
The future for things like smoke creation is morphing particles. Particles that can merge into other particles and break free from existing ones, similar to what you might have seen in liquid demonstrations using physx, but a lot more advanced.