Inverse GPU Virtualization

Can I take multiple GPU/GPGPU s, and virtualize them so the virtual machine sees just 1 GPU/GPGPU?This will be for supersonic aerospace simulations.Will a slow, but highly parallel CPU bottleneck this? I hope to have as many PCI-E 3.0 lanes as possible, and 4 low price, low frequency E5-4xxx series processors can offer 160 PCIE 3.0 lanes. Please state recommended software/hardware for this. 

No replies?

-_-

Do you mean like AMD crossfire or nvidia SLI?

I'm not sure what you mean by virtualize in this context.

What I am trying to achieve is essentially a form of software CrossfireX. Instead of virtualizing one physical GPU as several virtual GPUs, I want to virtualize several physical GPUs as one virtual GPU, or find a software solution that works natively with many GPUs. Is that wording clear? I am having trouble stating the problem.

I don't know for sure on this, but if you're talking about a general solution, that works irrespective of the hardware or application for this I seriously doubt it.

Crossfire treats many gpus as one "virtual" gpu, but it requires a physical connection (bridge) between the gpus to work, except for on the new r9 290s cards. It also requires the proprietary drivers from the manufacturer to function. Same with Nvidia.

My suggestion would if you are using some standard software to run the simulations check to see what kind of gpu support they have, then decide on what to get based on that. If you're developing your own application for this then I wouldn't know about that.

I do know that for many simulation applications, they can scale out to GPU nodes and clusters. That is a marketing technique for many "cloud" solutions. I am just trying to see if that technology can be applied on a smaller scale. Currently, many simulation applications push the user to purchase one large, expensive GPU with little performance, but do not *require* it. 

Just take a look at this spreadsheet I quickly put together:

https://docs.google.com/spreadsheet/ccc?key=0AsmUQcMy8kH_dC1oS2ZkQVZ1QnpOcHV1ZjJLTUJrSkE&usp=sharing

Its pretty clear that these workstation GPUs offer incredibly low performance for their price. 

I have seen little bits of software that may utilize multiple GPUs natively, like OpenGL based applications, I think. However, it is muddled and as a newer user it is hard for me to comprehend. It would be great if it was possible to use a general many-to-one VGPU system, but native support would work just fine. I think its somewhere out there, in a dark corner of the internet, and that many people could use it.

(As I understand it, coin mining and brute force hacking operations can scale out to many GPUs, I just don't know how, and in the end, what we're trying to do is math, too.)

Ok, let me just say that my research work uses cpu based simulation so I don't know much about this. But, yes workstation gpus tend to provide less performance per dollar compared to consumer gpus, the reason for this I believe is driver support for specific workstation based applications and higher quality builds.

On cryptocurrency mining (bitcoin) usually takes advantage of OpenCL to crunch the numbers, this can be used with multiple gpus, however you don't actually need treat the multiple gpus as one virtual gpu for this to work. The mining algorithm is highly parallel and can be run on each of the gpus seperately and the performance is additive.

So, getting back to your main questions, it really depends on what software you are using. Does it support OpenCL or CUDA or both? This will determine whether you want to look at AMD or Nvidia. Do you actually need the gpus to be in SLI or can the simulations scale to individual gpus without it. Do you need the driver support of the workstation cards (firepro or quadro) or will the consumer cards drivers' support your application?

In some cases one can get desktop gpus to work with the workstation applications. If you do a search on the 780ti there are guides on how to modify it so that it can run CUDA with quadro applications.

I think if you provide some more info about what you will be using to run the simulations people will be able to make a hardware recommendation for you. As far a general simulation system, maybe some others that know more about this stuff can make a recommendation for you, but I think the problem with making a general system as opposed to a specialized system is that it might not be optimal for your desired application.

Regarding software, anything that does the job will work. I was considering Autodesk Inventor and Simulation, but after some research found that it has horrible parallel support, only using Direct3D instead of OpenGL, (http://www.extremetech.com/gaming/133824-valve-opengl-is-faster-than-directx-even-on-windows). I started to consider a virtualization solution, essentially faking a single GPU. However, I've also found out about Open Inventor, (http://www.vsg3d.com/sites/default/files/related/openinventor-cad-cae_fei-vsg_br.pdf), and although it is only application framework, it seems to natively support OpenGL and multiple GPUs, I just can't find much information on this. Anything that is parallel and allows for both 3D modeling and simulation will do the job.