For example, should I buy one TitanX 12 GB or two GTX 1080 8 GB? If I go to the SLI 1080, will my effective memory double? Can I start a network that uses 12 or more GB vram using them? Or did I leave only 8 GB?
No, the effective memory size in case of 2 GPUs with 8Gb RAM will be 8Gb, but the effective batch size will be doubled, which will lead to a more stable / faster training.
What happens if two different cards (both NVIDIA) are installed? Does coffee use the available memory the same way? (suppose 980 and one 970!)
I think that you will be limited to the bottom card and may have problems with drivers, so I do not recommend trying this configuration. Also from the documentation:
The current implementation has a βsoftβ assumption that the devices used are homogeneous. In practice, any devices of the same general class should work together, but performance and overall size are limited by the smallest device used. for example, if you combine TitanX and GTX980, performance will be limited to 980. Mixing significantly different levels of boards, for example. Kepler and Fermi are not supported.
To summarize: with a GPU that has a lot of RAM, you can train deeper models, with multiple GPUs you can work faster with a single model, and you can also train separate models for one GPU. I would choose a single graphics processor with a large amount of memory (TitanX), because deep networks are currently limited by RAM (for example, ResNet-152 or some kind of semantic segmentation network), and more memory will make it possible to run deeper networks with more lot size, otherwise, if you have some tasks that are suitable for one GPU (GTX 1080), you can buy 2 or 4 of them to speed up the work.
It also provides information on supporting multiple GPUs in Caffe:
The current implementation uses a tree reduction strategy. for example, if there are 4 GPUs in the system, 0: 1, 2: 3 will exchange gradients, then 0: 2 (the top of the tree) will exchange gradients, 0 will calculate the updated model, 0-> 2, and then 0-> 1 , 2-> 3.
https://github.com/BVLC/caffe/blob/master/docs/multigpu.md