News for hackers. Stuff that matters.
Re:Microsoft Readies Azure GPUs by dogma1138 on Thursday August 11, 2016 @11:03AM (#12268756)
Just a small correction the K80 is a dual GPU setup which means you get 2 GPU's with 2496 "CUDA cores" each and 12GB assigned to each GPU.

This isn't the same as having 1 GPU with 4992 cores and 24GB of memory.

CUDA kernel scaling is pretty decent but it's not 1:1 with additional GPU's it's also very much task specific so tasks that cannot be easily parallelized will not scale well or at all at least not without you splitting the workload manually. As for the memory scaling CUDA supports P2P memcopy so you can easily move memory from 1 GPU to another (or between hosts in a network distributed configuration) but under best case scenarios this goes through a PCIE bridge (in the K80 it's onboard) but no NVLINK support on the K80 as it's 2 gens behind Pascal, if you are using P2P memcopy you do not double the memory capacity (even lose some since memcopy requires another buffer iirc). CUDA also allows you to share the memory directly between multiple GPU's (and the CPU/Host) NVIDIA calls this Unified Addressing (OpenCL 2.0 later implemented something similar as Shared Virtual Memory) but this also comes at some cost the latency is greatly increased for memory access and you really need stellar code to make everything work properly if 1 GPU tries to dereference a pointer on another GPU while it's still is in use whelp "don't panic and move on" probably won't work :P

Re:Microsoft Readies Azure GPUs by n00b101 on Thursday August 11, 2016 @11:08AM (#12268810)
Thanks. I was glossing over the details. The point I was trying to emphasize is that the Azure instance gives you the whole K80 board (i.e. two GK210 processors), unlike the AWS G2 instance which effectively gives you a virtualized half of a K10 board (i.e. one GK104 processor)
Re:Microsoft Readies Azure GPUs by dogma1138 on Thursday August 11, 2016 @11:21AM (#12268932)
Oh yeah the Kepler 2 K80's blow the K10 out of the water. I wonder just how expensive the enterprise grade Pascal boards are that even Microsoft doesn't offer them as an option.

It's really amazing just how much money NVIDIA seems to be squeezing out of the compute market (almost makes you feel bad for AMD) especially considering that Kepler is a 4 almost 5 year old architecture by now. The K80 is still going for like 4000-5000$ a pop I would love to know just how many GPU's Microsoft ended up buying.

Re:Microsoft Readies Azure GPUs by dharma1 on Thursday August 11, 2016 @11:34AM (#12269065)
Is there any reason cloud providers don't offer virtualised Titan X, or GTX 1080?
Re:Microsoft Readies Azure GPUs by dogma1138 on Thursday August 11, 2016 @12:04PM (#12269349)
"Gaming" GPU's have reduced compute capabilities (pretty horrible DP/HP compute performance compared to Tesla parts), and their SKU's are not really designed for enterprise integration (power requirements, thermals etc.). As far as "virtualization" goes NVIDIA actually restricts that in the driver, including PCIE passthrough especially to not allow cheaper desktop parts being used for low end computing as the margins per GPU are considerably higher with their enterprise parts.
Re:Microsoft Readies Azure GPUs by dharma1 on Thursday August 11, 2016 @12:36PM (#12269663)
""Gaming" GPU's have reduced compute capabilities"

Not so for machine learning, at least in my experience.

http://pjreddie.com/darknet/hardware-guide/

Passthrough:

https://www.evonide.com/non-root-gpu-passthrough-setup/

Re:Microsoft Readies Azure GPUs by dogma1138 on Thursday August 11, 2016 @12:54PM (#12269819)
You missed the end of the sentence: "....pretty horrible DP/HP compute performance compared to Tesla parts."

Might not be applicable in your case, but NVIDIA hasn't released a desktop part with FP64 capabilities even remotely comparable to their Tesla's since the original Titan.

Both Titan X's (Maxwell and Pascal) and the [Insert Physicist's Name Here] Quadros are pretty gimped as far as it comes to HP/DP operations.

If anything between generations DP performance across desktop parts have been severely degraded from 3:1 for Kepler to 16:1 for Maxwell to bloody 32:1 for Pascal desktop GPU's.

As for the passthrough it is possible but it requires a few hacks and is technically in violations of NVIDIA's policies, and unlike the Tesla parts there is no full virtualization once the a device has been initialized it can only be assigned to 1 host/guest and a full host reboot is required to reinitialize the device again. You also need to do a few UEFI hacks to prevent the UEFI from initializing the GPU before your host OS loads and it can be passed through to the guest.

This isn't something that cloud providers would dealing with, NVIDIA will not sell them anything but Tesla/Grid parts and buying from AIB's/OEM's and hacking your way through it isn't an option, you'll get zero support from NVIDIA, you could not thin provision your GPU's and you'll need to do a full host reboot every time you want to reassign the GPU or try to figure out if you can write a custom BIOS for your card that would somehow allow you to reinitialize it.

P.S. I've actually built a KVM multi-user gaming rig with NVIDIA cards, I would not recommend anyone to try that, AMD cards are more pleasant to work with, too bad the performance are utter garbage for high end gaming.

Re:Microsoft Readies Azure GPUs by pjietr on Tuesday August 16, 2016 @08:27AM (#12296969)
Agree with dharma1 that the FP32-based cloud services could be a lot useful for deep learning than the Tesla-based Clouds.

Baidu has actually built Titan X -based servers for themselves as they saw it as the most cost-efficient way to build the system: http://www.nextplatform.com/2016/04/22/baidu-eyes-deep-learn...

Same logic would probably work in "deep learning" clouds if there would not be the licensing issue.

And this conversation got immortalized to that slideshow as well for selecting hardware parts for deep learning systems: http://tinyurl.com/zzhj9vr