Thinking of running both of my cards in my system due to using the nvidia mainly
For the bulk of my AI upscaling and gaming, and The Radeon dual gpu is used for doing multiple encoding and calculating code on both GPUs allowing me to do two workloads on separate gpus at once.
Think this would create any issues under Linux driver wise?
@lemij31400 I am no expert in this subject matter; in fact, the only knowledge I have on this subject matter is from articles I have read and the posts in this forum created when someone tries to set up what I think you are trying to accomplish. I have no practical experience.
@lemij31400 I have a few questions to ask, so we are on the same page. I assume you have three graphic cards you want to install on one computer. Two are AMD graphic cards, and the rest are Nividia Titan. Ok, the first question is the AMD cards in the same family, for example, AMD 580? Do you plan to use all three graphics cards in the same build? I assume you plan to use one of the graphic cards for Linux and pass through the others to virtual machines. I will page a few people I remember who are more knowledgeable than me. Paging @Mastic_Warrior, @SgtAwesomesauce, @Dynamic_Gravity@gnif
The AMD card you see is a Pro Duo so the card its self has 2x R9 GPUs on one PCB, so yes they are the same family. Id like to use all under Linux as that would make life easier so i dont have to play with VMs and what not, as id be able to offload 1 workload such as AI/heavy compute to the Titan, and the other ones to each GPU of the AMD card like ive been doing already but in 2 separate rigs rather than one.
@lemij31400 I got some bad news for you; what you want to accomplish isn’t possible using a Linux operating system. I will explain in a separate paragraph why. However, I might have good news about what you want to achieve if you were to use Windows instead of Linux. It has become possible that windows has multiple graphic cards and assigns different tasks to them. I don’t quite understand how it works. Most forum members accomplish what you are trying to achieve by using virtual machines, which is what I thought you were asking.
@lemij31400 The several reasons you can’t accomplish your goal; Linux isn’t designed (at least I have heard it being able) to have multiple graphic cards and then divide different tasks among them. There is a problem when starting Linux with which graphic card will boot up and which GPU will be silent until you get into the operating system. What you want to accomplish in Linux would require a complete redesign of how Linux works. Linus Torvalds would complete the Linux redesign; then, those changes will be implemented by the maintainers of all the different flavors of Linux. In all its various flavors. AMD and Nividia would have to redesign their drivers. So much work for so little payoff. Meaning everyone would expect not to have to pay to get this done. Don’t get me wrong; it would be an exciting project. Hey @wendell, did I explain what would be needed to be done for @lemij31400 to accomplish his goal, or did I leave something out?
On the AMD side of things you may be able to do this with HIP/HSA/HSP/HSAIL (What ever they are calling it now) but it will require you to be running the amdgpu driver and you need to not have a buggy version of the R9 card. There are a few R9s that are not truly GCN 1.0 but the have the majority of the architecture but are unstable with amdgpu. From there, you will probably need to go one step further and install part of the OpenCL official driver with the opensource amdgu to form what they call the hybrid amd stack.
Of course, the nVidia card does not support any of this so you would not be able to get this to work properly for the AI portion. I would say use the nVidia for gaming or vice verse. Luckily, the AMD implementation supports native CUDA recompilation into OCL; of course native OCL would perform better on the AMD side. If you are interested in this, I can point you in the right direction. Michael on Phoronix had got this working a few times.
But honestly, what is your true end goal? Is this a nice to have or is this critical to your operation. There are better solutions out that if this is mission critical.
End Goal would be to have one machine to help me get work done, kinda 2 workloads with one stone. although kinda figured i may just try the VM Route as a i have 40 CPU threads and 128gb RAM to use, so have the Radeon cards for Host OS doing compute and then a Windows VM also doing Compute and AI Upscaling on another VM did some testing and seems to kinda work fine
I currently am running such a setup also, in my case it’s a 3090 for a VM, a AMD W7100 for my desktop/workstation output, and a Quadro K1200 for NvENC.
It is most certainly possible to offload some tasks to the other GPUs but only one GPU can be the “head” or output. In my case the K1200 is in use literally just for the hardware h264 encode as AMD GPUs really really suck at it.
There is nothing preventing me from using the other GPUs for compute workloads also, but anything that actually draws to the screen has to come from the GPU(s) the window manager is using.
I do know that in the past you could use multiple GPUs of any configuration/vendor with Xorg for multi-head, but it has limitations such as OpenGL rendering wont move between monitors, or in some instances you actually need to run a separate X session on each GPU. I did this back in the day of PCI (not PCIe or AGP) video cards.
I legit use multiple cards in my system to split up the load off my processor. I don’t have my 970 anymore, but I had a 480, a 290, and a GT730 all in one mac pro. Worked great. And thats an OLDER platform.