Live data from Hacker News

Microsoft Readies Azure GPUs

virtualizationpractice.com

41–50 of 59 posts

Re: Microsoft Readies Azure GPUs

#42
post #36
post #20

Earlier quoted context omitted.

> Which GPUs they offer and how much, nobody knows. They might not offer GPUs at all. It may be that Google is planning to build a cloud using their own proprietary "Tensor Processing Unit" chip designed for TensorFlow ( https://en.wikipedia.org/wiki/Tensor_processing_unit )

TPUs are only useful for prediction, not for training.

Unless I missed something, whether or not they are for training or inference has not been clarified.

Re: Microsoft Readies Azure GPUs

#43
post #28

Earlier quoted context omitted.

Is there any reason cloud providers don't offer virtualised Titan X, or GTX 1080?

"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…

""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

#44
post #38

AWS: 4 year-old GPUs Azure: 2 year-old GPUs Wouldn't it be awesome if a cloud provider could keep up with the GPU roadmap and ship something within a year or so of its release?

The GPUs that hosting providers are buying need to support vGPU features, which are only support by the higher-end workstation and server products.

Which is a software/binning issue (probably 100% software) not inherently HW because M60==GTX 980==GM204 and M40==GTX Titan X==Quadro M6000==GM200.

Interestingly, for the first time ever, GP100 is unique (well, OK, K80 too but K80 was too late). And since Quadro P6000==Titan XP==GP102, it's probably just a software block here as well.

Also, for the first time ever, the high-end Quadro will be the best FP32 GPU of it's generation. That's the most interesting part for me.

Re: Microsoft Readies Azure GPUs

#45
post #43

Earlier quoted context omitted.

"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…

""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/

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

#46
post #9

This is pretty interesting from a video encoding point of view. We're currently using g2.2xlarge AWS instances which are Kepler based. All we really need from those instances is the GPU (more specifically, the NVENC H264 encoding chip), so other specs aren't too important. It looks like the NV6 Azure instances use a newer Maxwell based chip, which can handle much more (concurrent, or higher bitrate/resolution) videos…

Just for reference: K1 (AWS): 1 GPUs x 6 H.264 streams (max single stream 720p@30fps) K2 (Azure K80): 1 GPUs x 6 H.264 streams max single stream 720p@30fps) M6 (Don't know if it's used by anyone ;)): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) M60 (Azure M60): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) You can sacrifice encoder bandwidth (max streams) for higher resolutions or frame rates.

Is GPU better than CPU for encoding? I thought performance ended up similar. Also, are you saying that K1 AWS can reencode 6 streams at once?

Re: Microsoft Readies Azure GPUs

#47
post #46

Earlier quoted context omitted.

Just for reference: K1 (AWS): 1 GPUs x 6 H.264 streams (max single stream 720p@30fps) K2 (Azure K80): 1 GPUs x 6 H.264 streams max single stream 720p@30fps) M6 (Don't know if it's used by anyone ;)): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) M60 (Azure M60): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) You can sacrifice encoder bandwidth (max streams) for higher resolutions or frame rates.

Is GPU better than CPU for encoding? I thought performance ended up similar. Also, are you saying that K1 AWS can reencode 6 streams at once?

The performance of the GPU is orders of magnitude better you can do multiple 1080p streams in real time with high bandwidth easily.

The quality on the other hand even for the same bit rate is considerably worse than highly optimized CPU compilers as the GPU does do a lot of hacks along the way.

Re: Microsoft Readies Azure GPUs

#48
post #30

Earlier quoted context omitted.

No, but it doesn't do hourly billing so it can still be cheaper depending on your workload. Also, you tend to be getting more per instance hour on both Azure and GCE, assuming you do things those environments are good at. In Azure's case if you can get your software running on windows then it's actually quite good performance for I/O intensive things.

Why Windows? You can run Linux on Azure

So... I haven't checked in the last 6 months but when I did do a comparison the Windows vms were noticably faster than the linux vms.

I should check that again, it's been awhile.

But it depends on your platform. Its an unpopular but somewhat verifiable fact that the Windows kernels have much more powerful async I/O support and when software targets that, it is very fast compared to linux counterparts. If your toolkit supports this, then a strong argument can be made that you don't really care so long as SSH works. Powershell is serviceable for maintenance and most deploys are fairly agnostic to other aspects of the platform.

I've been doing skunkworks projects. I tried to get some stuff working in GCE and their docs are a mess and it never worked. Azure has some warts in its git push deploy stuff, but it worked the first time and I managed to diagnose the other issues.

Re: Microsoft Readies Azure GPUs

#49
post #46

Earlier quoted context omitted.

Just for reference: K1 (AWS): 1 GPUs x 6 H.264 streams (max single stream 720p@30fps) K2 (Azure K80): 1 GPUs x 6 H.264 streams max single stream 720p@30fps) M6 (Don't know if it's used by anyone ;)): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) M60 (Azure M60): 1 GPU x 18 H.264 streams (max single stream 1080p@30fps) You can sacrifice encoder bandwidth (max streams) for higher resolutions or frame rates.

Is GPU better than CPU for encoding? I thought performance ended up similar. Also, are you saying that K1 AWS can reencode 6 streams at once?

GPU generally support more codec and faster encoding/decoding times then a CPU. But it really depends on what codec, what CPU, and what GPU.

Re: Microsoft Readies Azure GPUs

#50
post #42
post #36

Earlier quoted context omitted.

TPUs are only useful for prediction, not for training.

Unless I missed something, whether or not they are for training or inference has not been clarified.

They mention that they use them for inference in one of the TF papers; also the focus on per watt efficiency rather than speed/memory means it's probably for inference.
Post reply on HN