
Radeon Open Compute 3.0 - mroche
https://github.com/RadeonOpenCompute/ROCm/tree/roc-3.0.0
======
Athas
For anyone else using NixOS, [https://github.com/nixos-rocm/nixos-
rocm](https://github.com/nixos-rocm/nixos-rocm) by Anthony Cowley works very
well.

While ROCm works well, I think it is yet another example of what AMD gets
wrong software-wise. I like to think I'm fairly familiar with GPGPU, in that I
have used OpenCL and CUDA for years, and even wrote my own optimising compiler
that generates GPU code. I even use ROCm every day on my home system. Yet, I
would be hard pressed to succinctly state what ROCm _is_. The GitHub page
states the following:

> ROCm is designed to be a universal platform for gpu-accelerated computing.
> This modular design allows hardware vendors to build drivers that support
> the ROCm framework. ROCm is also designed to integrate multiple programming
> languages and makes it easy to add support for other languages.

Okay? It then lists some other stuff:

> • Drivers > • Tools > • Libraries > • Source Code

The AMD GPU kernel driver, amdgpu, is upstreamed in Linux, so what exactly
does ROCm contain? The OpenCL ICD? (I'm pretty sure it does.) As far as I can
see, I don't have any ROCm-specific kernel drivers loaded, but OpenCL on my
AMD GPU works fine.

The tools are also confusing. There's an "HCC compiler", but are we even still
supposed to use HCC? As I recall, it was/is some heterogeneous compute C++
dialect. There's also HIP, which converts CUDA to something that can run on
AMD GPUs. Trying to refresh my memory, I actually can't figure out in two
minutes what language the output is. HCC? OpenCL?

Among the other tools, there is inconsistency between ROCM and ROCm (pedantry,
I know, I assume it's the same), but there is also the "ROC Profiler" and
"ROCr Debug Agent". Are "ROC" and "ROCr" significant terms? And when should I
use the "Radeon Compute Profiler" (rocm-profiler) and when should I use the
"ROC Profiler" (rocprofiler-dev)?

I do so dearly want to support AMD. Their hardware is good and their fully
open source drivers are a wonderful accomplishment. Seriously, I want to
underline just how amazed I am that I have a fully free high-performance GPGPU
stack running. However, if you compare AMDs software efforts to NVIDIA, it is
clear that NVIDIA deserves their success. It's not just about breadth (NVIDIA
is bigger, I can understand they have more resources), but the fact that AMD
seems to spread itself too thin over too many effort, and it makes everything
feel kind of shoddy and poorly documented.

~~~
sytelus
I can never understand why AMD has not thrown its weight around to get support
added in PyTorch and TensorFlow. NVidia is minting money on this by charging
2-4X on data center GPUs and eating theri lunch, dinner and breakfast. AMD
could invest as little as 10 developers and get it done in few months. It's
astounding that they can go all the way to do silicon, febs and just fall
short of adding this final framework support.

[https://towardsdatascience.com/on-the-state-of-deep-
learning...](https://towardsdatascience.com/on-the-state-of-deep-learning-
outside-of-cudas-walled-garden-d88c8bbb4342)

~~~
m0zg
Because until very, very recently they didn't have much weight to throw
around. They were hemorrhaging money.

These things take time. CUDA took what, a decade to become what it is today?
And it was developed by a company that wasn't on its deathbed.

Arguably AMD still doesn't have much weight to throw around. Their profits are
meager. Their P/E is absolutely insane for a hardware company (240!),
suggesting a dramatic correction in the foreseeable future. Stocks on an
upward trajectory help attract top talent. On a downward trajectory they
actively repel it.

So they probably have like half a dozen engineers working on this, and not
those magical $500K/yr engineers that can actually turn shit into gold,
because a hardware company wouldn't be able to hire them (or afford them, for
that matter).

~~~
fauigerzigerk
AMD employs 10,000 people, yet they are spectators watching NVIDIA rake in
monopoly profits on GPGPU year after year. And you're saying it's because they
can't afford to get 10 good engineers to work on framework support because
their shares may crash at some point in the future?

I'm sorry, but this makes absolutely no sense at all. P/E or corrections have
absolutely nothing to do with it. Salaries are paid from revenue, not from
profits, and their revenues have been growing for years. They don't need to
pay engineers in stock options.

This is about priorities and execution. Getting 10 engineers to focus on an
obvious multi-billion dollar opportunity that leverages existing investments
is not "throwing your weight around". It's basic management competence.

And it's interesting work. I don't believe that engineers need low P/Es as an
incentive to work on a key part of AI infrastructure that only very few people
get to work on.

~~~
fluffy87
FWIW I applied to AMD for an HPC application engineer position (GPU compute)
and a couple of weeks later to a similar position by a direct competitor.

In the time it took the other company to contact me, do 6 interviews,
negotiate contract, and get me signed, I haven’t even been contacted by AMD.
Their position is still open, I’m a perfect fit and I haven’t been rejected
either. I suppose I’ll get an automatic rejection letter at some point.

The online application system for AMD is just quite bad. Looking at my
application in their system, everything is full with “Unknown” and I can’t
event put in my skills. It wouldn’t surprise me if on their database I’m a
horrible candidate.

------
barkingcat
For people trying to install this on Debian/Ubuntu, the group that enables
access to the gpgpu is actually "render" instead of "video"

I spent some time wondering why I couldn't get access to the device until some
kind soul pointed me to the different group name.

[https://fosstodon.org/@dctrud/103315274791608145](https://fosstodon.org/@dctrud/103315274791608145)

~~~
app4soft
Does ROC support ATI RS600 GPUs?

~~~
microcolonel
No, only GCN and later, AFAIK.

------
gnufx
Note that one reason AMD have to make this stuff work is their big
supercomputing win:
[https://www.amd.com/en/products/frontier](https://www.amd.com/en/products/frontier)

I don't know if there's any relationship between that and the free software
infrastructure, but it's a relief to see an alternative to the CUDA-ish stuff.
In the absence of a shared library dummy interface, we can't distribute OS
packages of performance engineering tools with NVIDIA support, for instance.

------
neximo64
I wish OS X would do better with AMD and also get it working with Tensorflow.
No OS X support here sadly.

~~~
nknealk
Check out PlaidML (from of all companies intel) to get AMD GPUs working with
the Keras APIs for tensorflow

[https://github.com/plaidml/plaidml](https://github.com/plaidml/plaidml)

~~~
neximo64
I've used this, unfortunately I've not had a good experience with it. Say I
was to have a keras model, and use a tensorflow backend, and then use the
plaidml backend and compare the results: They're different in a radical way.

Also I don't think they've got their driver usage right. Metal on the GPU gets
different results than OpenCL. OpenCL is supposed to be the 'beta' and the
results are more stable with it - and again different radically between the
PlaidML devices.

~~~
woadwarrior01
I remember running inference on a model that I trained on a pair of NVIDIA
1080TIs with a NVIDIA 2080TI (after upgrading) and observing slightly (albeit
not significantly) different results.

We’re dealing with single precision floats for everything. FWIW, every
implementation of IEE 754 floats has its own set of minor oddities and quirks.

------
e12e
So is this AMDs response to CUDA? Is there any reason to believe this will end
up practically cross-platform? Is the implication that opencl is dead?

~~~
Athas
This contains an OpenCL implementation (with support for 2.0 at that!) _and_
the kitchen sink. It's a bit unclear what AMD actually suggests you use for
programming their GPUs.

------
bcatanzaro
No Navi support? Surprising.

~~~
vetrom
The ROCm compilers are slightly different, the newest GCN arch is probably not
well tested for compute yet. The ROCm stack's development and testing effort
strongly focuses on their 'pro/server' line cards. Is there a Navi WX or the
equivalent yet?

~~~
hgoel
There is a W5700 GPU but it was only made public about a month ago. I think
they're still working on improving the base drivers for Navi so they haven't
gotten to adding in proper support.

Granted that I haven't really tried properly, as the card does show up as a
compatible device, but trying to run Tensorflow on it fails due to associated
GPU code not being available. Perhaps it doesn't have official support yet due
to needing more compiler work.

------
continuational
What is it, exactly?

~~~
Athas
More or less AMD CUDA: a collection of compilers, tools, and libraries. The
main difference is that NVIDIA markets CUDA strongly based on CUDA C++. You
_know_ the way you write CUDA is through nvcc and the language it accepts,
unless you turn out to have exotic needs. Instead, AMD just provides a whole
bunch of various things with fuzzy documentation, and lets you to pick
whatever you like (although I'm not quite sure how you're supposed to know
what you like).

~~~
cwt137
Will this help any on getting acceleration for Tensorflow?

~~~
Athas
Yes, there is supposedly Tensorflow support in ROCm. I have never used it, so
I cannot say how well it works.

~~~
dannyw
Just don't expect it to be as good as Tensorflow on CUDA.

~~~
hgoel
What makes you say that? It works perfectly fine and so far I haven't
encountered anything I couldn't do with tensorflow-rocm that should be doable
with Tensorflow on Nvidia

------
ilaksh
If I want to do OpenCL on Linux with a new AMD GPU do I need to now separately
install a Radeon Open Compute package before I install normal Open CL stuff?

~~~
Athas
This is what I would recommend, but there are also other OpenCL stacks you
could use. At least two from AMD (amdgpu-pro and ROCm), and and there is also
one from the Mesa project (Clover).

------
duked
would this help in running tensorflow on the latest MBP 16 ? If so any guide
out there, the documentation is not super helpful

~~~
darknoon
No, this is Linux-only.

~~~
rvz
My Linux-running Dual booting Macbook with an AMD GPU would disagree.

