Hacker News new | ask | show | jobs
by dragandj 3603 days ago
As someone who does (non-NN) ML on AMD, I might ask why you think that AMD is so far behind. In my experience, their GPU hardware is excellent, maybe even better than Nvidia, especially if you factor the price in. Where they ARE lagging heavily is:

1. GPU as a service: While all major providers (AWS, Azure) offer Teslas on their servers, there is no AMD on the cloud (that I know of)

2. Key libraries: Nvidia comes with matrix libraries and cuDNN out of the box, while for AMD, there are only open source offerings that are a bit difficult to manage.

But, If you write your own software or rely on open source, AMD is quite performant and affordable. The problem is that it is really obscure. So, yes, they are really bad at marketing and if you are looking at them as a user instead of as a developer, they are invisible.

2 comments

I think I agree with everything you just said.

AMD hardware is more or less the same as Nvidia; Nvidia doesn't really have any special sauces or patents that make their cards better than AMD. And you're right: in a lot of benchmarks, AMD is either faster or (at least) better-bang-for-buck than Nvidia.

Yet AMD doesn't have community support in software or cloud adoption or key libraries. The deep learning community has gone for what's easiest to work with and most readily available. Even though you might conceivably get some performance gain from AMD, it's outweighed by the amount of software that's been written in CUDA already, and how quickly that allows you to move.

Nvidia has taken an early lead and jumped on it, while AMD has only fallen further behind. I think one company just fundamentally understands the trend more than the other. But, for what is essentially hardware that answers the question, "how fast can you do matrix multiplication?", library support becomes a key differentiator. And that's where AMD is behind.

The key libraries part has kept me wondering. How much would it cost for AMD to assign a handful heavy duty engineers to this task (writing AMD optimised kernels for convolution etc)?

Their management has been fast asleep for at least 2 years

That is a part of the problem: they assigned people for the task, and produced open-source libraries for matrices, FFT, maybe even something for DNNs. But, those are not polished much, and you have to hunt them down and install them yourself. And, they do a really bad job at marketing.

On the other hand, finding and installing those libraries is nothing compared to actually developing GPU computing software, so, as I said, if you want to program GPUs, even such scattered state of AMD platform is not that worse than Nvidia. Because, in Nvidia, you install CUDA and you get everything set up. And then - what do you do? You still have to learn a not-so-easy black art of optimizing kernels for the actual hardware.

I haven't seen CuDNN equivalents (in terms of perf) for common machine learning frameworks from AMD. I don't think they exist, if they did, people would shift to using AMD.

For NVidia I have seen some faster kernels than the ones supplied by NVidia - https://github.com/NervanaSystems/neon - though CuDNN introduced Winograd kernels too in their last update

I do not know about the quality of this since I do not use NNs, but there is https://github.com/hughperkins/DeepCL and I think I have seen others.