p p p p pero... mis shaders Asincronos! Nooo!
Lo siento! Hay mas cosas que disfrutar en la vida, no?
Seriously, theres like 5 people stating the results show it works on nvidia...
There's really
just one..
B) he already got consent to say somethings not others
You mean if he asked his higher-ups permission to disclose a bunch of development details, he was authorized to disclose some things and not authorized to disclose other things?!
Shock!
Any easy explanation for a high level programmer *who doesnt work with graphic programming atm, but will be interested to do so in the future btw.
Chances are if you're a high-level programmer you'll never have to deal with this. If anything, you'll be using a middleware engine (Unreal, CryEngine, Unity, etc.) which takes care of all the low-level optimizations for you.
As for an easy explanation... you have
Anandtech's which is really good.
If you want an even easier (more layman-er) explanation.. let's see..
Imagine I have a wall-painting workforce of 2048 people.
My 2048 people are versatile enough. They can all do one of two tasks: 1) wash the wall and 2) paint.
Each of my 2048 workers can be assigned only one task (wash or paint) each day.
For telling my 2048 workers what they should do each day, I have two additional employees:
A) Wash-Teamer who organizes teams for washing the wall
B) Paint-Teamer who organizes teams for painting the wall
Now for older generations of GPUs with Compute capabilities (Kepler, Maxwell 1, pre-GCN, etc.), Wash-Teamer
really disliked Paint-Teamer. They couldn't even be in the same room without throwing insults towards each other's mother.
I couldn't have that. I want a safe and friendly environment in my company.. so what happens is that Wash-Teamer never comes in the same days as Paint-Teamer.
My company is still efficient enough. I can predict my paint jobs rather well so I know when I'll be needing more people to wash and tell Wash-Teamer to come, or more people to paint and tell Paint-Teamer to come instead.
But this of course isn't the most efficient way to distribute my 2048 workers. For example, some days I only have painting space for 1536 painters, so it would be great if the remaining 512 who are sitting there playing cards and drinking beer (I'm a cool boss. I allow drinking beer during work hours. Deal with it.) could move on to the next block and start washing another wall.
Even worse: lots of times we have a very strict deadline to paint a wall, but there's only one little bit missing! I can only put something like 64 workers in that wall, which means that during that whole day, I have no less than 1984 workers sitting around, doing nothing. Drinking beer. Almost 2000 guys! Those are some troublesome days...
Come GCN (and supposedly Maxwell 2..), and Wash-Teamer has finally made peace with Paint-Teamer!
Now they both come to work everyday, they compliment each others' shoes first thing in the morning and proceed to distribute my 2048 workers in the best possible way.
What happens now is that I sometimes have 1664 workers (shaders) doing the painting (Rendering) and 384 workers doing the washing (Compute). Other days I need more Rendering, so I get 1920 workers doing Rendering, but I can still spare some 128 shaders doing the Compute.
And thanks to this, by the end of the month my company is painting walls a lot faster.
Man, I wish I had listened to my friend
Mark Cerny back in 2013. He insisted that Wash-Teamer and Paint-Teamer needed to be friends over two years ago!
And to summarize: GCN results are showing that Wash-Teamer and Paint-Teamer are indeed showing up to work at once.
On nVidia GPUs, they're supposed to be friends with each other, yet they refuse to show up at the same time, instead having one showing up after the other leaves the precint, while pretending to be at the same time. Perhaps they just told the press they were friends and would work together, but still can't stand one another.