
It’s Time to Open Up the GPU - jdub
http://gpuopen.com/welcometogpuopen/
======
cs702
This is an AMD project motivated by the fact that NVIDIA has become the de
facto standard for GPU computation in deep learning and machine learning
applications.

TensorFlow, Torch, Theano, CNTK, CAFFE, and every other deep learning
framework out there works out of the box with NVIDIA hardware via the CUDA
stack, but not with AMD hardware, e.g., via the OpenCL stack.

Which is a shame, because the entire NVIDIA hardware + software stack is
closed.

It would be great to see this new project succeed, and maybe even force NVIDIA
to open source key or all components its stack down the road.

To the team at AMD running this project: if you are reading this, step one is
to get built-in support into all major deep learning and machine learning
frameworks.

~~~
appleflaxen
I'm sad to say, but it's true. AMD has been claiming "this is the year we
really open up" since at least 2007[1]. Well, I'm happy to hear them recommit,
but I don't believe them anymore.

Now that they are losing ground in the marketplace on the GPU side with deep
learning, and their CPUs can't compete with intel on the performance side,
their claims ring hollow.

Imagine where we would be if they open sourced their drivers in 2007 like they
said they would do.

1\. [http://arstechnica.com/gadgets/2007/05/amd-launches-the-
hd-2...](http://arstechnica.com/gadgets/2007/05/amd-launches-the-
hd-2000-series/)

~~~
Narishma
I don't think they ever claimed they would open source their drivers. They've
certainly released a ton of documentation for their GPUs over the years.

~~~
broodbucket
Which is probably why the open source driver is pretty good. radeon is light
years ahead of nouveau.

~~~
witty_username
Yep, HW decode, works for games (FPS is 10-20% less, depends on game). Might
even be better than the intel driver, I had a few problems with that, but I
haven't had any problem with radeon.

------
ChuckMcM
First, nullify all the patents ...

Seriously, back around the turn of the century I was pretty heavily into
graphics and rendering and was frustrated by all the constraints on getting
access to documentation. I finally figured out a way to pin down a vendor with
all the necessary NDAs and all the necessary agreements so that I could
actually get 100% access to the inner workings of the GPU. As long as I read
the documents onsite at the vendor's office and brought no means to make
copies. And after all of that, in discussions with the vendor's counsel, their
biggest fear was that as GPUs were so competitive, and so heavily protected by
IP, that they did not disclose any details to people who might see something
that might be protected by some patent somewhere and defending a lawsuit,
which always settled before discovery because nobody wanted to actually share
their documents! It was insane.

That said, I think an open GPU is an _excellent_ idea, however while I don't
think it will get built any time soon I think just publishing all the
techniques and algorithms will draw out all these lawyers and we could
hopefully arrive at the 'available set' of features which one can implement. I
expect though that you need a Google level VP8 kind of program for this to
make progress (and Google failed there if you recall)

~~~
k33n
Nullify the patents? Why? A lot of R&D has gone into making the best GPU's
what they are. What makes you feel entitled to that IP?

~~~
Symmetry
I feel a rant on software patents coming on.

I've been in groups that have been on the receiving end of patent lawsuits
twice. Both times the patents were transparently invalid.

The first time involves my dorm at MIT. Back before I arrived there some
enterprising student had hooked up our laundry machines to the internet so we
could all find out when there was a free one and when our laundry was done.
The internet at large got wind of this and sadly the servers were Slashdotted
in both senses of the word. Shortly after the idea appeared on Slashdot some
enterprising entrepreneur filed for a patent on the idea of hooking laundry
machines up to the internet and was granted it. Several years later our dorm,
through MIT, was sued for patent infringement. Luckily the MIT administration
had spines so they didn't get anywhere. But the patent is still in force and
other universities still have to pay millions of dollars to this group to hook
their laundry machines up to the internet.

The second time involved the first company I worked for out of grad school, a
sensors consultancy. They had some ideas about structural health monitoring
using piezoelectrics and sent their designs off to another company to be
fabbed. They filed for patents on their ideas and shortly after the fab house
filed for patents on those same ideas. They mostly got their patents but for
some reason the fab house got one in first despite filing later causing their
patent application to be denied. Then the fab house sued them and somewhere in
the process there were layoffs and I lost my job.

Just because something is patented doesn't mean that it is original and non-
obvious. The Patent Office doesn't actually have enough resources to do the
job that has been set out for it. The number of patent applications being
submitted has increased exponentially over the years but the USPO staff
hasn't. You might ask why they just don't fail to grant a patent until they've
examined it carefully. Well, they used to do that but the backlog got big and
Congress In Its Wisdom passed a law saying that they couldn't have a backlog.
You might ask why they don't raise filing fees and use the money to hire more
workers. Well, Congress In Its Wisdom has decided what the fees are and has
also decided that the USPO can't keep all the money it collects since there
are needy people in many other Congressional districts. So that's where we
are.

It would not surprise me in the least if many NVidia and AMD patents cover the
same ideas in different language. But just because AMD happens to have a
patent on the technique they're using doesn't mean that NVidia can't sue them
with their own patent on that same technique. Legally patents have a
presumption validity behind them so courts are bound to assume the USPO gave
them the sort of inspection the USPO is unable except in certain complicated
cases.

------
plq
In the first year of grad school when I was trying to choose a field to delve
in, real time rendering was one of the options. So I took the relevant CS-
fivesomething class to see how things worked.

The first time I got my feet wet with code, I realized that the workflow was
mostly "write and pray it works". No debugging tools, huge blobs of
proprietary code and total lack of consensus among manufacturers even on the
most basic stuff scared me away. I ended up doing a machine learning thesis
instead.

This was almost ten years ago. I can't say I've been following the graphics
field closely, but my impression is that while tooling came a long way in the
past ten years, the GPU is still mostly a black box for the developers who
don't have access to a debug build of the driver of the graphics hardware at
hand.

Such initiatives couldn't come soon enough.

------
aexaey
It is really exciting to see AMD opening up, especially in GPU driver area -
arguably _the_ weakest point for the free software. I hope this will go
further than "1 step forward, 2 steps backward" approach same AMD showed with
libreboot involvement:

[https://libreboot.org/faq/#amdbastards](https://libreboot.org/faq/#amdbastards)

[https://news.ycombinator.com/item?id=10895021](https://news.ycombinator.com/item?id=10895021)

~~~
akerro
Hey, what about Intel? They suck even more:
[https://libreboot.org/faq/#intel](https://libreboot.org/faq/#intel)

------
gnarbarian
Market leaders tend to push proprietary stacks (because they can). While
underdogs push open stacks (because they must). If the open standard is better
it can win. This is how nvidia gained the upper hand over 3dfx by pushing
opengl and directx alongside ATI. They surged ahead and glide died along with
3dfx.

Behold, history repeats itself.

I'm hoping that Vulcan will be that new competitive standard moving forward. I
don't have much hope for open hardware and open drivers from market leaders
(who are too concerned with losing their edge to competitors) but I would be
happy with an open API that leads in performance across vendors.

------
Sleaker
Doesn't give off the impression of being super open when you have samples say
they are only for Radeon cards. This seems almost like a marketing
strategy/guise from AMD, and if you go look at other websites for this article
it literally says AMD launches GPUopen.com. AMD is only mentioned once in the
article.. shady in my opinion and not very 'open' either.

When one company continually calls out for 'openness' in a marketplace over
time I think people get annoyed at it, I know I do. AMD, you're nearing the
point where people are just going to scoff at you and take it as whining. You
can't say you want openness then build your tools specifically for your own
hardware without looking like an ass. Furthermore, 3/4ths of the sample are
for DX only. How open is DX again?

~~~
sliverstorm
It doesn't seem all that clandestine. The snippet at the bottom about the
author:

 _Nicolas Thibieroz is the Senior Manager of Worldwide Gaming Engineering at
AMD..._

From the middle of the article:

 _GPUOpen marks the beginning of a new philosophy at AMD._

~~~
Sleaker
Ahh I was misinterpreting the 3rd party affiliate links where they say they
aren't responsible for any content on them.

------
revelation
I must be going stupid, show me the code?!

Where is any of this? I find a bunch of press releases, but.. there is no
code, anywhere.

(Edit: for anyone else struggling, expand the arrow on the top left. Or go
directly to e.g)

[http://gpuopen.com/professional-compute/](http://gpuopen.com/professional-
compute/)

(That said, a bunch of the repositories are just binary dumps. Like, this
isn't what Git is for AMD.)

------
dragandj
I wanted to add my GPU compute library for Clojure to their list of libraries,
and there is no option to send them anything.

So, it seems that gpuopen site is open for AMD to promote whatever they deem
promotable. Not very open for this age in my opinion.

~~~
listic
Try to email the author: nicolas.thibieroz@amd.com

~~~
dragandj
Emailed. No response.

------
r3bl
Could we open up the website first so we could improve its performance?
Because this is just silly.

------
rifung
Sounds great but they don't mention anything about drivers? Does that mean we
still won't get vendor supported open source drivers?

~~~
wmf
[http://www.anandtech.com/show/9853/amd-gpuopen-linux-open-
so...](http://www.anandtech.com/show/9853/amd-gpuopen-linux-open-source)

------
cornchips
I keep hearing about this, seeing mentions and links to github, but I have to
ask: where's the "meat"?

------
tracker1
Wasn't OpenCL supposed to deal with this? Obligatory XKCD[1]

[1] [https://m.xkcd.com/927/](https://m.xkcd.com/927/)

~~~
wtallis
OpenCL is basically a framework to make it more convenient to run shaders for
non-graphics purposes. It's still a high-level cross-vendor hardware
abstraction layer.

This sounds like it's more about officially documenting and supporting the
kinds of things people have been reverse-engineering:
[https://news.ycombinator.com/item?id=10605156](https://news.ycombinator.com/item?id=10605156)

~~~
robbies
Yes to your OpenCL stuff, no to your reverse-engineering stuff. The post you
linked is about generating your own native shaders on GCN. GPUOpen could
possibly expose that, but that's a difficult problem to expose to developers
considering the variety of architectures exposed at any time by the IHVs
(including just inside one IHV at any time). If they did go down that path,
they would open up their internal bytecode-to-native-ISA shader
compiler...which they haven't done yet, and have shown no indication of doing.

~~~
wtallis
Yes, it may be a difficult problem to handle exposing hardware-specific
functionality in a non-portable way, but if GPUOpen is to have any substance
at all it's obvious that they're going to actually do some of that. This can't
just be an announcement of a batch of OpenGL vendor extensions.

And at the moment, it seems like GPU architectures within one company aren't
really that much more diverse than Intel's CPU architectures over a similar
time period. They're not overhauling the ISA every year.

~~~
robbies
> but if GPUOpen is to have any substance at all it's obvious that they're
> going to actually do some of that.

I don't think they'll do it. I think they're going to shoot for SPIR-V being
close enough that SPIR-V compilers generate code good enough that the internal
compilers can gen good ISA code.

> They're not overhauling the ISA every year.

They aren't, but the changes rev to rev are more significant than you'd
expect. On top of that, the big bumps are significant, such as Fermi to Kepler
or Northern Islands to Southern Islands (or whatever). These are not backwards
compatible with each other, unlike Intel x86 ISA.

Bonus edit: Also...I'd speculate that some IHVs would rather not expose their
IL-to-ISA compiler. Not because of 'secret sauce'. But because they aren't
that good, and would rather have the OSS community start fresh and do a better
job.

------
ksec
Makes me wonder if AMD will open their Radeon IP for licenses. Even Nvidia has
opened up, although no one has come forward to license it yet ( I think ) .

------
KaiserPro
Or, just make better drivers for linux....

------
FussyZeus
Speaking of opening GPU's, is this page making anyone else's scrolling chug
hardcore? I don't think I've ever had a page stutter this hard.

~~~
sccxy
5MB website...

90% of this are useless super large images.

Also webpagetest.com counted 23 javascript requests.

~~~
ino
The thumbnails are 1920×700px in case you use a 20K monitor.

------
toocute2care
A really cool site by AMD

------
tmikaeld
Ever heard of image compression? It exists.

------
amelius
Can we please stop calling it a GPU? These auxiliary processors are used for
much more than graphics.

~~~
JupiterMoon
Couldn't we just re-purpose the G in GPU to stand for "general" rather than
"graphics"?

~~~
gnarbarian
I think VPU (for vector) is the most descriptive.

~~~
microcolonel
GPUs are not really vector processing units though.

~~~
gnarbarian
Most graphics IS vector based math run through matrices. Same with physics.
Every vertex is essentially a vector from the mathematical perspective. But
you're right, that doesn't quite capture the massively parallel simple core
arch that we see today.

