News for hackers. Stuff that matters.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by LeifCarrotson on Sunday December 24, 2017 @10:13PM (#16002443)
That would have been hard to write out and genuinely support a couple years ago, when NVidia ruled the top-of the line as well as the best value-for-money most of the way down the chain. It was a hefty hit to your framerate or your wallet to support AMD.

But these days AMD is a serious contender at all levels! If the performance or value isn't actually in AMD's favor, it's near enough to be undetectable outside of a benchmark, and very easy to support the good guys.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by chrisseaton on Sunday December 24, 2017 @10:47PM (#16002540)
> very easy to support the good guys

But AMD doesn’t run CUDA? Is it very easy to switch a stack relying on CUDA to OpenCL? I don’t think so.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by zdw on Sunday December 24, 2017 @10:56PM (#16002559)
AMD's ROCm suite has a tool for converting CUDA to C++ code: https://github.com/ROCm-Developer-Tools/HIP

How well it works is likely codebase and application dependent.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by mrmondo on Monday December 25, 2017 @01:34AM (#16003020)
I’ve been using OpenCL for some neutral net image optimisation recently, I’ve actually found it very efficient (citation obviously needed), I personally welcome the competition of AMD and it does seem like Nvidia is digging its own grave (not that I think it’ll die).
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by wyldfire on Monday December 25, 2017 @12:46PM (#16004971)
I don't think it's that hard, but it depends maybe a bit on how long your codebase has evolved through CUDA.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by frozenport on Monday December 25, 2017 @12:07AM (#16002750)
Here was my experience. Everything in ocl ended up slower, with 30%+ longer (walltimes) on nvidia hardware. Also some problems with floating point precision. Real problem was there was no business case to switch because we could always make customers eat the cost of taking nvidia gpus.

The added code complexity was not worth it - we originally did it as NRE for a big client who wanted OEM capabilities to our IP.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by katastic on Monday December 25, 2017 @12:14AM (#16002777)
OpenCL is slower than CUDA, but it's not the end of the world.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by mangix on Monday December 25, 2017 @01:01AM (#16002913)
got a reference?
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by unfamiliar on Monday December 25, 2017 @02:43AM (#16003183)
That is simply not true.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by biafra on Monday December 25, 2017 @02:57AM (#16003228)
Please be more specific. What is not true? That it is slower or that this is not the end of the world?
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by katastic on Monday December 25, 2017 @08:30PM (#16006542)
Wow, people are butthurt. It's a wildly known fact in the industry. A simple google search for benchmarks or a PDF like this would have satisfied them. But they didn't want the truth they wanted to be butthurt.

https://arxiv.org/ftp/arxiv/papers/1005/1005.2581.pdf

In basically every chart and graph, OpenCL is slower.

OpenCL has a higher level of abstraction, so it's got a higher penalty for it. But, you get cross-platform support. nVidia doesn't optimize for OpenCL either because they don't want you to use it over their own competing framework.

But 'dats cool, keep downvoting, guys. Sources aren't real if you can downvote 'em enough. God, I love Hacker News.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by grzm on Monday December 25, 2017 @08:41PM (#16006566)
Would you kindly raise the level of discourse here? You have useful information, so thanks for sharing it. But please leave the swipes and complaints about downvotes and HN members out of it. It worsens discussion and is against the guidelines. You’ll likely receive downvoted for that, more than anything else.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by sli on Wednesday December 27, 2017 @12:00PM (#16016021)
This reddit-style, highly emotional commenting is not terribly welcome on HN.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Sunday December 24, 2017 @11:10PM (#16002591)
There are zero DL frameworks that support AMD cards as a primary target.

Most have some kind of branch or patchset with OpenCL support. The problem is that they aren't great. If you need any new layers there is no support. There is nothing like CuDNN so you don't get the high speed convolutional kernels.

It's great to blame developers for supporting NVidia, but the thing is NVidia are great to work with. They dedicate large teams to deep learning support (not like the 2 or 3 part time Devs AMD does), and they publish good research and tutorials. AMD does nothing like this.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by tgtweak on Monday December 25, 2017 @12:22AM (#16002796)
Amd had always had first class support for openCL, cuda is Nvidia proprietary and although Nvidia "supports" OpenCL, it's quite bad. Issue #22 on tensorflow is regarding openCL support.

AMD has done some interesting work on HCC (a more proper gpgpu compiler approach with llvm base) and that is showing promise. See here: https://instinct.radeon.com/wp-content/uploads/sites/4/2017/...

Additionally, they support cuda decompiling to HIP which is an intermediary that can be built to target Nvidia (via nvcc) or amd (via HCC).

Nvidia has built a lot of tooling for DL, such as cudnn, and the new Tesla cards have dedicated silicon for tensor calculation. Amd does have a cudnn equivalent called MlOpen. They have also ported caffe via HIP and it works well. Work is being done by amd right now to torch, mxnet and tensorflow to add support for amd hardware with minimal burden to the maintainers of these projects.

You can read about some of the DL toolkits available here: https://instinct.radeon.com/en/6-deep-learning-projects-amd-...

I think it's particularly bad form on behalf of everyone in the DL framework and library world to cator only to Nvidia and cuda, and that they very much walked into this shake down with open arms.

The original comment is correct in that contributing support for OpenCL (which works on mobile too) will alleviate this to a fair degree. It's one of those things where the more momentum is behind it, the more device manufactures will focus on ensuring their opencl compiler is building properly optimized kernels for their hardware.

Start contributing to OpenCL or adding hip support to existing projects and we'll see some viable alternatives pop up from not only AMD, but players like Qualcomm and Samsung.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by pjmlp on Monday December 25, 2017 @11:12AM (#16004576)
Until quite recently OpenCL was a C only game, so blame Khronos for not embracing all HPC relevant languages, like CUDA does.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Monday December 25, 2017 @12:37AM (#16002842)
OpenCL doesn't have an equivalent to CuDNN.

I'm not saying it's a great situation, I'm saying that NVidia has always had better libraries, tools and performance, and it isn't surprising that developers use them.

Deep learning is hard and slow enough without using second class tools.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by hedgehog on Monday December 25, 2017 @01:05AM (#16002928)
Much respect to NVIDIA and their software team but the situation is changing. PlaidML is like cuDNN for every GPU. Fully open source, faster in many cases than TF+cuDNN on NVIDIA, beats vendor tools on other architectures, Linux/Mac/Win. Supports Keras currently but more frameworks are not difficult (patches welcome).
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by argonaut on Monday December 25, 2017 @03:17AM (#16003283)
The PlaidML benchmarks are suspect. They compare to Keras + Tensorflow, which is a really unfair comparison since 1) Tensorflow is probably the slowest of the big deep learning frameworks out there (compared to PyTorch, MXNet, etc.), and 2) Keras itself is quite slow. Keras is optimized more for ease of use, introduces lots of abstractions, and often doesn't take advantage of many TF optimizations, (for just one example until very recently Keras did not use TF's fused batch norm, which the TF docs claim provides a 10-30% speedup in overall network performance, which alone could be enough to account for many of the benchmarks showing PlaidML ahead).
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by hedgehog on Monday December 25, 2017 @03:54AM (#16003381)
In my opinion it's extremely fair. The benchmarks are Keras+PlaidML compared to Keras+TensorFlow, it allows running exactly the same nets (just imported from the Keras included applications) and whatever penalty Keras might impose is equal in the two cases. Having one very direct comparison is actually why we constructed the tests that way (none of the other frameworks run on our high priority platforms).

That said we'd be pretty excited if someone wanted to add support for TF, PyTorch, MXNet, etc. We like Keras but are happy to have integrations for all frameworks. With work you could pair it with Docker and containerize GPU-accelerated workloads without the guests even needing to know what hardware it's running on. Lots of possibilities.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by argonaut on Monday December 25, 2017 @06:23AM (#16003719)
No, no, no.

> whatever penalty Keras might impose is equal in the two cases.

The penalty Keras imposes when using Tensorflow depends on its Tensorflow implementation. The penalty Keras imposes when using MXNet depends on its MXNet implementation. The penalty Keras imposes when using PlaidML depends on whatever the PlaidML devs implemented. When you build a Keras layer, it's calling different Keras code for each backend.

The comparison would be fair if Plaid claimed to be the fastest Keras backed, not if it were actually claiming to be faster than Tensorflow.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Monday December 25, 2017 @05:00AM (#16003515)
There was someone on reddit/ml who posted some pretty interesting numbers for training.

I think they have a lot of challenges ahead of them, but I’m still more optimistic about Plaid than AMD’s own efforts.

AMD says that they don’t care about ML[1], and their actions back that up.

Edit: and to be clear, I think comparing Keras+Plaid vs Keras+TF is an entirely valid thing to do. Lots of people work in Keras, and if you download a random NN code off github it likely to be Keras (or Pytorch now of course).

[1] https://www.reddit.com/r/MachineLearning/comments/66bgmf/com...

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by ekelsen on Monday December 25, 2017 @02:09AM (#16003114)
PlaidML seems entirely geared towards inference (I only see batch size 1 anywhere). Training is important.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by hedgehog on Monday December 25, 2017 @03:36AM (#16003335)
Batch 1 inference on convnets is key for us internally but training does work pretty well. The underlying machinery can do much more. Here's a blog post that talks about how it works with some links to more detailed docs & the actual implementations:

http://vertex.ai/blog/tile-a-new-language-for-machine-learni...

Two of the big motivators for opening the code were 1) giving students taking the popular courses a way to get started with GPU in whatever machine they've got (recent Intel GPUs in say a MacBook Air are enough) and 2) giving researchers a platform where it's simple to add efficient GPU-accelerated ops.

For scale on #2 check out the entire implementation of convolution:

https://github.com/plaidml/plaidml/blob/master/plaidml/keras...

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Monday December 25, 2017 @01:18AM (#16002978)
PlaidML is very promising I agree.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by tgtweak on Monday December 25, 2017 @01:03AM (#16002922)
> Amd does have a cudnn equivalent called MlOpen.
Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Monday December 25, 2017 @01:18AM (#16002975)
MIOpen could be great one day. ATM you still get random problems like this: https://github.com/ROCmSoftwarePlatform/MIOpen/issues/19

That's an order of magnitude worse performance than NVidia on ResNet 52 for 2 months with no real reason.

Great idea, but no one can use it reliably yet.

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by dnautics on Monday December 25, 2017 @01:26AM (#16002998)
apparently Caffe has support for AMD cards through ROCm

https://rocm.github.io/dl.html

Re:NVIDIA GeForce driver deployment in datacenters is forbid... by nl on Tuesday December 26, 2017 @10:52PM (#16012703)
That's exactly what I mean.

It's a patchset (note that it isn't upstreamed in their chart), and it's caffe. That was great in 2015.