I have an Nvidia 1080Ti in my main computer which is currently running Linux. I also have an old 980Ti in a computer that doesn't need such a powerful graphics card. I was thinking of getting a really cheap graphics card to replace the 980Ti in the old computer and then putting the 980Ti in the same computer as the 1080Ti.
Would I be able to use both the 1080Ti and the 980Ti in the same computer? Would that result in better CUDA and AI performance?
I've been doing GPU programming for years - OpenCL in my case and ATI's CloseTotheMetal before that.
The question here is implementation.
Firstly. Data Upload is slow but the killer is data download transfer speed from the GPU into memory.
Having two GPUs on the motherboard may work but if the north bridge is designed for one GPU's access path to the memory bus at one time.. then this will be a bottleneck.
So if you can keep both the data you need and the results in the GPU memory on the card then you're laughing, if you have to transfer data between memory and GPU you're not going to really get top performance .. worse if you have to keep syncing data between GPUs.
How the code and the algorithm is designed makes all the difference. Both in parallel speed but also keeping that parallel model including low dependencies on the main memory or syncing. For example I have code where I upload camera images into a GPU 15 fps, then process using OpenCL and then render the output into an OpenGL texture to render to the screen the final image.
For AI - yes, however the implementation of your AI is something that needs tuning to the architecture of the host for best performance.
I take it this is deep learning or convolutional networks? If so - GPUs will speedup.
You can code to handle load sharing between GPUs yourself but typically the processing is done in parallel then execute the next kernel based on the output of the previous - if you have a slow GPU then it may end up slowing because your CPU code will have to wait for the slower GPU result of that step.