I wish reviewers would include some measure (real, not paper) on GPGPU performance. WPA hashes per second is a widely known reference number for integer performance. Neural network training is a similar one for floats.
The R9 Fury is for me and anyone else who's main machine is a virtual one. nVidia has locked out its consumer graphics cards from being passed-through to a virtual machine unless you buy their multi-thousand-dollar workstation graphics cards, while AMD lets you pass your graphics cards through to your VMs, no problem.
Edit: For clarification, if you want to use a virtual machine directly (i.e. not in a window or a virtual terminal on another machine running a virtual machine browser), keyboard and mousing directly into the VM and having the VM direct its output directly to a video card/monitor, you must "pass through" the video card so the VM "owns" it exclusively and the host machine does not. Regardless of whether you want gaming-level graphics or just basic VGA output, you need to give it an actual, real graphics card (there are exceptions with new cards by nVidia that understand VMs and let you "create" a graphics card out of a subsection of a more powerful card, but at prohibitive prices). AMD's entire graphics card lineup, from their $20 to their $700 GPUs will let you do this. nVidia's cards detect they're being passed-through to a VM and won't install the drivers, unless you perform a (risky) hardware hack or use their professional graphics cards that a) aren't designed nor optimized for consumer graphics card use, and b) cost at least an order of magnitude more than their regular graphics cards.
I really wish AMD would promote this type of thing more heavily in general (having advanced features that Nvidia restricts to their high-cost cards). I seem to remember a similar thing with AMD being fantastic for Bitcoin mining and from memory it's because Nvidia gimped certain features that were on the cards, while AMD did not.
(on that note, I'm constantly annoyed that despite it being Nvidia specific, everyone supports CUDA for everything cool).
I understand companies have to do this to segregate their products and that it's impractical to have separate fab lines for a chip family for this kind of difference. It's still something I think AMD has a competitive advantage on though and they really need to push that alone (unless they just don't really want to - to sell their own high-end professional cards).
A worse example of this is Nvidia cards not running in systems that have AMD graphics cards in them. Which means, for example, you can't buy a low/mid-range Nvidia card to sit in your system as a dedicated PhysX/CUDA card. I'd consider such a setup for my system and I imagine there's probably others like me out there.
The bitcoin mining edge that AMD cards had over Nvidia cards was came down to the AMD ISA having a single cycle hardware rotate instruction, which the NVIDIA cards lacked. Also the AMD philosophy of many dumb cores vs the Nvidia's philosophy of fewer smarter cores made a significant difference.
This is equivalent to the SHA-256 Ch "Choose" function.
It also can be used to compose the SHA-256 Maj "Majority" function with an additional XOR.
Additionally, the AMD ISA doesn't have a "rotate" instruction per-se, BFI_INT is "bitfield insert", which can be used to compose arbitrary length rotates, but is not strictly a rotate in and of itself.
AMD ISA also has instructions for computing integer add with carry, which is great for crushing elliptic curves.
NVidia really, really, sucks for integer compute. Friends don't let friends buy NVidia!
VGI (VDI for gaming) is the future. We shouldn't have to run on bare metal; we should be able to have a single-VM Host (which theoretically gives full hardware performance) with full hardware pass thru.
This gives all the flexibility of VHDs and virtualization without losing the bare metal advantages. Installing a new OS shouldn't mean the current OS knows about it.
I some how doubt that VDI of any kind is the future in pure home use.
Game streaming is gathering steam now, don't let the OnLive failure fool you, services like Play-Cast have been running in Korea and other Asian companies for some time now.
They've opted to service their streaming through the carrier (cable companies) instead of over the internet which allowed them to pretty much bypass the latency and bandwidth limitations of open internet routing.
EA is now setting up a similar service with Comcast, and many will follow.
NVIDIA has setup it's "gaming cloud" service for it's Tegra based consoles which also seem to work pretty damn well, and localized streaming on NVIDIA cards has been working very well for several years now.
So sorry while VDI/VGI might be a future like any commercial product if it ever materializes it will be abstracted to a point in which you might not call it VDI/VGI, and no you won't get to tinker with it at that point.
Someone at Nvidia realized they were doing something non-evil by working on nouveau for tegra, and felt the need to restore balance.
I had completely missed this new form of insanity, which generation of cards did it start?
It has been the case almost as long as PCI passthrough was possible. At one point, higher-end Nvidia GPUs could be passed through. Note that Nvidia has invested into graphics hardware specifically for graphics virtualization, which may explain the artificial feature segmentation, http://www.nvidia.com/object/virtual-gpus.html
Isn't this restriction only related to using the card both in a multiple VMs and/or the host OS at the same time?
I'm pretty sure you can (if you have a vt-d capable cpu) use the intel IGP for Linux and a nvidia card dedicated for the vm using kvm and vfio-vga drivers.
Unfortunately I can not test this myself as I have a 4770k cpu in my gaming computer and it does not support vt-d.
No, unfortunately I have a useless brick of a GTX 680 Lightning laying on my desk as we speak and an R9 Fury in the mail because that's not the case. I have a separate, basic PCI-E graphics card in the machine as the host GPU, but nothing you do will get an nVidia to pass through. I haven't tried KVM, but I have tried Xen and ESXi, and my reading tells me the same is true for KVM. I'm using an older AMD/ATi HD 7790 in the meantime, it passes through just fine. (Hint/Note: don't pass through the on-board HDMI, that'll give you BSODs and kernel panics to no end.)
The article mentions that KVM/Qemu has an option you pass in to work around the GPU detection. Might be worth checking out before you spend that money.
As I understand it, Nvidia cards are working right now because recent versions of Qemu removed certain hints that Nvidia drivers were using to detect that they were being run in a VM. I would expect this situation to last only until Nvidia catches on and updates their drivers.
The length of time this situation has persisted has started to make me wonder. I wonder if for Nvidia it's really about making sure the consumer cards don't work on VMware and the other commercial hypervisors. I'd figure they're protecting their enterprise sales, and my guess is KVM and Xen don't have much enterprise market share, Amazon possibly notwithstanding. So if these cards run on KVM, maybe they don't care.
Still, I personally would be reluctant to drop big money on a consumer Nvidia card thinking that I'd always have the ability to use it under KVM with the latest driver. Nvidia could choose to close this particular hole at any time.
This all reminds me that I need to upgrade my motherboard to one which actually supports VT-d. I would really love to boot Windows virtualized on top of my ZFS array, rather then have to cold-boot between OS's.
I may be being dense, but why would you want to do this? Are you saying you can get equivalent performance running games under a Windows VM as booting directly? What are the tradeoffs involved?
The reason I want to do this is that it's great to throw your money into a single high-spec machine, with fast processors, lots of them, lots of RAM, quiet fans, SSDs, etc., and all your VMs are able to share in the benefits. Plus you have far less hardware to manage.
Also, I find it vastly easier to work with Windows when the backing store is abstracted away into something like LVM where I can easily snapshot and rollback and change it out, store it on a RAID array maybe, and all Windows thinks is it's dealing with a bog standard C drive.
Plus, there's a it's-just-cool factor. Cool to have one awesome machine and three monitors, three keyboards and three mice coming out of it, running different desktop operating systems simultaneously, etc. It's like the mainframe got reinterpreted for modern home use.
The trade off is that often much fiddling is required to make it work. Lots of motherboards have hidden gotchas. Consumer Nvidia cards can be somewhere between a hassle to impossible to get working (with KVM currently an exception to this, though I'm guessing that will turn out to be short-lived). Going with AMD means using their drivers, and on Linux I've always had problems with them. (Though if you don't need high-end 3D on your Linux VM, you could grab a cheap Quadro off eBay and that'll work without difficulty.) And if you have a big hardware problem like a motherboard failure, all your systems are down, though that's true for any kind of VM setup.
You can get surprisingly good performance, but sometimes it might be the only way to get a game working on a particular machine.
My Lenovo Y50 has an nVidia GPU with Optimus switching. I have a few games that don't seem to run (Street Fighter X Tekken and Blazblue Continuum Shift), but I can get them to run at 60FPS@1080p on a VM.
> AMD lets you pass your graphics cards through to your VMs, no problem.
This is still based on a 1-1 basis i.e. one GPU passthrough-ed for one VM. Intel's GVT-g, notably XenGT, is IMO more interesting: allowing for one iGPU to be shared with up to 4 VMs (DomU + 3 DomU). This is especially interesting considering Intel's recent inroads into the GPU market with Iris Pro graphics, even bundling them with certain Xeon CPUs.
The XEON CPU's which come with IGP's are the low end CPU's (E3 only) which are re-branded low to mid range desktop processors that were cherry picked to go through XEON's QC process.
Intel doesn't ship high end desktop or server CPU's with IGP's atm, the decision for the XEON's was to provide video transcoding performance, even highest performance Iris chip is still no match for even a mid range GPU from 5 years ago.
The performance difference are a few percent right? About 10-15 FPS? I guess nvidia are still considered the best but that means AMD have to reduce prices, which is better for me.
Reminds me that the nvidia graphics card in my MacBook is going wrong. Hmmm.
Same here. Late 2013? Exact same problems, somewhat mitigated in Yosemite (fewer complete crashes) but still the occasional garbled screen or inability to switch to dGPU.
Weirdest problem: can't start up the MacBook (physically) cold without garbled video. Have to start it up, let it warm up a bit and get the juju flowing, then hard reboot.
Oh I should be careful what I'm saying, my problems are limited to intermittent screen craziness (flickering of the top half of the screen), GPU switching is a non issue because I have a program I use that forces discrete GPU.
It is very much application-dependent. For games they might be similar, but that's about it.
AMD cards tend to have much better integer performance, which is good for cryptography-related tasks.
NVidia has way more RAM + better float performance. Plus the fact that many libs only implement things with cuda as backend and not opencl, you are pretty much stuck with only one viable option.
NVIDIA was only faster in half/mixed precision compute, in full precision AMD was faster (with the exception of Titan cards besides the Titan X which doesn't have good full precision support either).
AMD has also always loaded the cards with much more RAM (8GB vs 3GB in the previous gen) and with much higher memory bandwidth (512bit vs 384bit), NVIDIA countered it with effective memory management and compression support.
It's a bit funny that in the previous gen AMD boasted that 8GB is needed for 4K while NVIDIA was shipping cards with only 3, now AMD is pointing with a smirk when AMD can't ship it's high end cards with more than 4GB due to current HBM limitations while NVIDIA is shipping 6 and 12GB cards.
The reason I tend to be more interested in AMD graphics cards is that I want basically workable open source drivers in Linux. AMD pays a couple of people to maintain the upstream linux driver for their cards, NVidia doesn't. So if you have an AMD card that isn't totally new in the last 2 months, you get a working proper resolution desktop with no hassle. (So for this strategy to work with the Fury, you'd probably have to wait another month or two.)
I still dual-boot windows just to play recent games, it pretty much always works better than the alternatives, like the closed source Catalyst driver, wine, even native ports. An NVidia card would probably work a bit better for this purpose, and their closed source drivers for linux are also better, but for me the open source drivers are the more significant factor.
But the AMD drivers keeps being a piece of shit on Linux ? I know that improve a lot (from buggy desktop to usable), but lags behind NVIDIA drivers or are at similar level.
I'm too tired of fight with issues of these drivers, plus AMD have a bad tendency of drop support for old video cards. I can understand that they drop support for desktop old cards, but not should be too fast with notebooks cards, that can't replace the GPU.
NVIDIA releases Linux and BSD drivers every month together with the Windows drivers (Linux drivers are released 1 week earlier usually)
They aren't GPL but the shader compilers in the drivers are considered "trade secrets" in this industry, AMD doesn't release those under GPL or any other OSS license either.
If you want you have nouveau driers which NVIDIA sorta supports, but they are a piece of crap compared to the "retail" ones.
From testing both NVIDIA and AMD drivers for Steam OS i have to say that NVIDIA is lightyears a head of anything AMD or ATI has ever put out on Linux.
The drivers are stable, allow for overclocking, have full NVAPI support, a much better OpenGL mini driver (only ones to support 4.3) and are even aware of WINE and similar solutions and optimize it in the driver.
Now with NVIDIA buying Transgaming (probably for Tegra based consoles) the support for non-native games will probably even be better, i wont be surprised if enough legal loopholes to be found (Wine has some issues with requiring certain DLL's ;)) to see NVIDIA supports running games with no official linux support through their Geforce Experience software which is now rumored to come out after the trasngaming purchase.
I'd agree, closed-source nvidia drivers for linux are better than closed-source AMD drivers. I'm just saying, open source AMD drivers in the upstream kernel are better than open-source nvidia (nouveau) drivers in the upstream kernel, even if neither are good enough for serious games from the last decade. I boot to Windows 7 for games.
I've had nvidia cards in the past, as well as UT2004 which had a native linux version, and it worked well enough, but performance was still less than half what it was in windows (with the closed-source nvidia driver in linux). And what with xrandr, kernel mode setting, etc, I prefer proper integrated linux support (even without enough 3d acceleration for games).
46 comments
[ 4.1 ms ] story [ 107 ms ] threadEdit: For clarification, if you want to use a virtual machine directly (i.e. not in a window or a virtual terminal on another machine running a virtual machine browser), keyboard and mousing directly into the VM and having the VM direct its output directly to a video card/monitor, you must "pass through" the video card so the VM "owns" it exclusively and the host machine does not. Regardless of whether you want gaming-level graphics or just basic VGA output, you need to give it an actual, real graphics card (there are exceptions with new cards by nVidia that understand VMs and let you "create" a graphics card out of a subsection of a more powerful card, but at prohibitive prices). AMD's entire graphics card lineup, from their $20 to their $700 GPUs will let you do this. nVidia's cards detect they're being passed-through to a VM and won't install the drivers, unless you perform a (risky) hardware hack or use their professional graphics cards that a) aren't designed nor optimized for consumer graphics card use, and b) cost at least an order of magnitude more than their regular graphics cards.
(on that note, I'm constantly annoyed that despite it being Nvidia specific, everyone supports CUDA for everything cool).
I understand companies have to do this to segregate their products and that it's impractical to have separate fab lines for a chip family for this kind of difference. It's still something I think AMD has a competitive advantage on though and they really need to push that alone (unless they just don't really want to - to sell their own high-end professional cards).
A worse example of this is Nvidia cards not running in systems that have AMD graphics cards in them. Which means, for example, you can't buy a low/mid-range Nvidia card to sit in your system as a dedicated PhysX/CUDA card. I'd consider such a setup for my system and I imagine there's probably others like me out there.
dst = (A & B) | (~A & C).
This is equivalent to the SHA-256 Ch "Choose" function.
It also can be used to compose the SHA-256 Maj "Majority" function with an additional XOR.
Additionally, the AMD ISA doesn't have a "rotate" instruction per-se, BFI_INT is "bitfield insert", which can be used to compose arbitrary length rotates, but is not strictly a rotate in and of itself.
AMD ISA also has instructions for computing integer add with carry, which is great for crushing elliptic curves.
NVidia really, really, sucks for integer compute. Friends don't let friends buy NVidia!
AMD GPU mining rigs and some other hardware pics. http://www.buttcoinfoundation.org/mining-rig-megapost#more-3...
This gives all the flexibility of VHDs and virtualization without losing the bare metal advantages. Installing a new OS shouldn't mean the current OS knows about it.
Game streaming is gathering steam now, don't let the OnLive failure fool you, services like Play-Cast have been running in Korea and other Asian companies for some time now.
They've opted to service their streaming through the carrier (cable companies) instead of over the internet which allowed them to pretty much bypass the latency and bandwidth limitations of open internet routing.
EA is now setting up a similar service with Comcast, and many will follow.
NVIDIA has setup it's "gaming cloud" service for it's Tegra based consoles which also seem to work pretty damn well, and localized streaming on NVIDIA cards has been working very well for several years now.
So sorry while VDI/VGI might be a future like any commercial product if it ever materializes it will be abstracted to a point in which you might not call it VDI/VGI, and no you won't get to tinker with it at that point.
I'm pretty sure you can (if you have a vt-d capable cpu) use the intel IGP for Linux and a nvidia card dedicated for the vm using kvm and vfio-vga drivers.
Unfortunately I can not test this myself as I have a 4770k cpu in my gaming computer and it does not support vt-d.
[0] https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVM... [1] http://vfio.blogspot.de/
Apparently it's working very well: https://bbs.archlinux.org/viewtopic.php?id=162768
[0]: https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDU...
Still, I personally would be reluctant to drop big money on a consumer Nvidia card thinking that I'd always have the ability to use it under KVM with the latest driver. Nvidia could choose to close this particular hole at any time.
The reason I want to do this is that it's great to throw your money into a single high-spec machine, with fast processors, lots of them, lots of RAM, quiet fans, SSDs, etc., and all your VMs are able to share in the benefits. Plus you have far less hardware to manage.
Also, I find it vastly easier to work with Windows when the backing store is abstracted away into something like LVM where I can easily snapshot and rollback and change it out, store it on a RAID array maybe, and all Windows thinks is it's dealing with a bog standard C drive.
Plus, there's a it's-just-cool factor. Cool to have one awesome machine and three monitors, three keyboards and three mice coming out of it, running different desktop operating systems simultaneously, etc. It's like the mainframe got reinterpreted for modern home use.
The trade off is that often much fiddling is required to make it work. Lots of motherboards have hidden gotchas. Consumer Nvidia cards can be somewhere between a hassle to impossible to get working (with KVM currently an exception to this, though I'm guessing that will turn out to be short-lived). Going with AMD means using their drivers, and on Linux I've always had problems with them. (Though if you don't need high-end 3D on your Linux VM, you could grab a cheap Quadro off eBay and that'll work without difficulty.) And if you have a big hardware problem like a motherboard failure, all your systems are down, though that's true for any kind of VM setup.
My Lenovo Y50 has an nVidia GPU with Optimus switching. I have a few games that don't seem to run (Street Fighter X Tekken and Blazblue Continuum Shift), but I can get them to run at 60FPS@1080p on a VM.
This is still based on a 1-1 basis i.e. one GPU passthrough-ed for one VM. Intel's GVT-g, notably XenGT, is IMO more interesting: allowing for one iGPU to be shared with up to 4 VMs (DomU + 3 DomU). This is especially interesting considering Intel's recent inroads into the GPU market with Iris Pro graphics, even bundling them with certain Xeon CPUs.
Intel doesn't ship high end desktop or server CPU's with IGP's atm, the decision for the XEON's was to provide video transcoding performance, even highest performance Iris chip is still no match for even a mid range GPU from 5 years ago.
Reminds me that the nvidia graphics card in my MacBook is going wrong. Hmmm.
My buddy got recall and they gave him his money back IIRC.
Weirdest problem: can't start up the MacBook (physically) cold without garbled video. Have to start it up, let it warm up a bit and get the juju flowing, then hard reboot.
And most importantly no crashes recently.
AMD cards tend to have much better integer performance, which is good for cryptography-related tasks.
NVidia has way more RAM + better float performance. Plus the fact that many libs only implement things with cuda as backend and not opencl, you are pretty much stuck with only one viable option.
AMD has also always loaded the cards with much more RAM (8GB vs 3GB in the previous gen) and with much higher memory bandwidth (512bit vs 384bit), NVIDIA countered it with effective memory management and compression support.
It's a bit funny that in the previous gen AMD boasted that 8GB is needed for 4K while NVIDIA was shipping cards with only 3, now AMD is pointing with a smirk when AMD can't ship it's high end cards with more than 4GB due to current HBM limitations while NVIDIA is shipping 6 and 12GB cards.
I still dual-boot windows just to play recent games, it pretty much always works better than the alternatives, like the closed source Catalyst driver, wine, even native ports. An NVidia card would probably work a bit better for this purpose, and their closed source drivers for linux are also better, but for me the open source drivers are the more significant factor.
I'm too tired of fight with issues of these drivers, plus AMD have a bad tendency of drop support for old video cards. I can understand that they drop support for desktop old cards, but not should be too fast with notebooks cards, that can't replace the GPU.
They aren't GPL but the shader compilers in the drivers are considered "trade secrets" in this industry, AMD doesn't release those under GPL or any other OSS license either.
If you want you have nouveau driers which NVIDIA sorta supports, but they are a piece of crap compared to the "retail" ones.
From testing both NVIDIA and AMD drivers for Steam OS i have to say that NVIDIA is lightyears a head of anything AMD or ATI has ever put out on Linux. The drivers are stable, allow for overclocking, have full NVAPI support, a much better OpenGL mini driver (only ones to support 4.3) and are even aware of WINE and similar solutions and optimize it in the driver.
Now with NVIDIA buying Transgaming (probably for Tegra based consoles) the support for non-native games will probably even be better, i wont be surprised if enough legal loopholes to be found (Wine has some issues with requiring certain DLL's ;)) to see NVIDIA supports running games with no official linux support through their Geforce Experience software which is now rumored to come out after the trasngaming purchase.
I've had nvidia cards in the past, as well as UT2004 which had a native linux version, and it worked well enough, but performance was still less than half what it was in windows (with the closed-source nvidia driver in linux). And what with xrandr, kernel mode setting, etc, I prefer proper integrated linux support (even without enough 3d acceleration for games).