4 ms·
> Cloud computing is, ironically, going to be the biggest beneficiary of DirectX 12. That sounds unintuitive but the fact is, there’s nothing stopping a Direct
by quonn 12y ago
> Cloud computing is, ironically, going to be the biggest beneficiary of DirectX 12. That sounds unintuitive but the fact is, there’s nothing stopping a DirectX 12 enabled machine from fully running VMs on these video cards. Ask your IT manager which they’d rather do? Pop in a new video card or replace the whole box.
Can someone please comment on that? Everything I know about GPUs suggests that even if it would be possible to run VMs on them, performance would be terrible. All those tiny GPU cores are not designed to do much branch prediction, all the fancy out-of-order execution, pre-fetching etc. and your average software will totally depend on that.
- muizelaar 12y agoI believe the author is referring to accessing the GPUs from VMs. i.e. if you have 16 core machine with a 1024 core GPU you can split it up so it looks like 4 machines with 4 cores and 256 core GPU. The sentence that you snipped seems to refer to this. "Right now, this isn’t doable because cloud services don’t even have video cards in them typically (I’m looking at you Azure. I can’t use you for offloading Metamaps!)"
- wtallis 12y agoIt's already possible to partition GPUs to share them across multiple VMs. Intel's got modified versions of Xen and KVM to support this for Haswell and later IGPs, and AMD and NVidia both have proprietary solutions. Furthermore, this has nothing to do with rendering APIs; it's all in the driver and hypervisor.
- muizelaar 12y agoI have no doubt. I was just trying to clarify what the original author may have been intending to say.
- lmeyerov 12y agoYes, running the VM would be silly, but machine learning etc. is awesome. We get acces and time sharing across resources much easier (at all) now. At Graphistry, we are using AWS G2 instances for previously impossibly big interactive data visualizations and streaming into stock browsers. It's pretty ridiculously cool :) Always happy to chat about GPU clouds and related fun things.
- EpicEng 12y agoPerhaps, but that's not what the author said: "there’s nothing stopping a DirectX 12 enabled machine from fully running VMs on these video cards."
- duckingtest 12y agoModern GPUs have 32-64 independent cores, each can run different code path. Then each core runs the same code path on several different inputs in parallel. It's probably not possible with current tools, but architecture-wise completely dividing the cores between VMs should be doable.
- quonn 12y agoI know they have different cores, but, as I pointed out, these cores are very slow for most code that would normally run on a CPU. That is precisely the reason why so many cores fit - a CPU uses the available space to get around the memory wall. muizelaar's comment pointed out that the author probably wanted to say that the GPU can't be reasonably accessed _from_ VMs, yet. That makes much more sense.
- vardump 12y agoThe GPU on the card (Geforce GTX 970) mentioned in the article has 13 independent SMM cores. Each of them has 128 marketing "cores", for a total of 1664.
- kllrnohj 12y agoIf you managed to run a VM on a GPU it would perform like ass. GPUs are incredibly slow at doing the sort of work that a CPU does. If they were fast at doing general purpose work, then CPUs would be doing the same things. GPUs are extremely fickle with memory access patterns, branches, etc... It takes a lot of care to get them to run fast on a given workload, and that workload better be identically parallel (as in, every "thread" takes the same branches, with memory access in a uniform offset+thread-id order, etc..).