By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Gaming Discussion - Tech Talk Part 1: PS4 GPU Compute Explained, and some other stuff, AC;Unity CPU load XB1 ESRAM 204Gb/s..etc

I posted a reply in another thread explaining trying to explain this and figured that I should make a thread so we could discuss this stuff. I considered making a series of threads all starting with "tech talk" where we could discuss certain hardware, software, render, middleware rlated topics in the hope that those that find stuff like this interesting will learn from them. So this is a first of the tech talk series. And pls, anyone is free to make a tech talk thread and talk about anything you tech related in relation to the PS4. XB1, WiiU or PC. 

This talk is primarily focused on PS4 GPU compute, but I touched the Xbox ESRam (lightly cause it deserves its own thread) and I talked about the assasins creed unity 900p thingy. Enjoy.

First of, yes, using compute means that you will have to do less typical GPU tasks cause it runs on the same GPU pipeline. But thats just half the story. There are two ways that compute can be used.

 

  1. render pipeline assisted compute. In this case you would be using just a little bit of the available 64 compute lanes and thus a little of the GPU to handle tasks that would in turn boost the overall yeild and performance of the GPU. In an example Cerny gave;

     say you are running a game that is extremly geometry heavy on the GPU. You can input code that makes a compute pass on the render pipeline that will identify all the front  facing polygons(the ones that the gamer can see) of all geometry objects in the scene and the GPU will then only render those polygons and ommit rendering the rest of them even though its getting the complete geometry render instruction set from the CPU. This way it would be possible to render  3-5 times(not sure how much more but basically more) more polygons than your engine would have typically handled or the GPU will spend less time carrying out that specific task giving it more frame time for other tasks. 

    This could be used in more elaborate ways like marking out certain objects in a scene for AA passes. The small amount of the GPU used to pick out certain aspects in a frame that would'not need an AA pass/shadow detail.....etc will end up freeing up GPU power to be used to do more than it otherwise would have been able to do or basically something else.

  2. Idle time compute. Contrary to what some may think, ALL of the GPU is not active 100% of the time all the time. There are times when only anywhere between 60-80% of the GPU is being used. Now to put this in perspective you need to understand exactly what is being referred to here. 

    Take a game running at 30fps. The CPU/GPU basically has 33ms to render each individual frame. That doesn't mean that the GPU spent 33ms rendering the frame. Don't forget the GPU is just one part of the equation. It had to wait for the updated scene render instruction from the CPU. So for those 33ms, the GPU could very well be idle for anything between 10ms-20ms. That idle time could be used for GPU compute and and take some of the work load off the CPU. Thus letting the CPU finish its work faster and cutting down the GPU idle time from 10-20ms to say 5-10ms. Things like this is how compute on the PS4 can assist the CPu which in turn can lead to either higher or more stable framerates in games. Or just more physics/AI/lighting? calculations all around.

    AC:CREED UNITY SECTION(if you understand the above point with regard to CPU/GPU render times then you will also understnd why what ubisoft said about the CPU lwork oad being responsible for why AC:Unity runs at 900p on both consoles. thats just bullshit. A CPU load just measn that the GPU has less time to do its thing, that is more likely to affect framerate than anything else because of how GPUs work. This is where it gets interesting. IThe only way what ubisoft are saying is true is if the XB1 CPU is better than the PS4s, or that the game is better optimized for the XB1 [which brings us back to the whole parity nonsense]. Its interesting cause if say the CPU heavy load takes 25ms to complete its task for the next frame then passes off the render instructions to the GPU, then theoretically limiting the resolution means that they wanted to give the GPU less work to do so it spit outs the frame on time still hitting that 33ms limit. But this is where there is a problem with the story. If the GPUs have only 8ms to complete its task and the XB1 completes that with a  900p frame, what happend to the 40% more GPU that the PS4 has? The PS4 should be able to complete the exact same task 40% faster than the XB1. So if the time is constant, then it means they could have simply allowed the PS4 do more work and it would have still met that render time limit. Unless of course they want you to believe that the XB1 CPU did completed its much much much faster than the PS4s CPU and that way the PS4s more powerful GPU had less time to render the frame than the XB1 so the extra power of the PS4 went to still mathcing the XB1. Which simply isn't the case)
I hope that clears it up, its not an ok GPU is doing compute so everything must suffer type thing. A lot of work was put into the PS4 architecture to make this assited GPGPU stuff possible and effective, and there is a reason why a lot of devs are saying its going to be a big deal down the road. But everything I just explained here wuld take more work to do, will require that the game code is writen specifically to take advantage of stuff like this. Thats why Cerny doesn't expect them to be using it for another 2-3 years.
I could explain the whole ESRAM thing too... and how the whole 204GB/s two way bandwith is just BS but that will make this post much longer than it is. But i would put it this way. Realistically, you will never need to read and write data to memory simultaneously, especially when the memory in question is used to store the frame buffer (graphic based funtions). When data gets into the frame buffer, the next stop is your display. And then the next frame gets loaded into the frame buffer. If reading and writing simultaneously was such a big deal, why does any one think MS is making such a big deal about new APIs in their SDKs allowing devs to tile data in ESRAM? Also remmebr that the CPU does not have access to ESRAM. 


Around the Network

After the rudiments of things were explained to me then 30fps parity made sense. But the initial tech explanation for resolution parity still looked BS. The later anonymous e-mail suggesting Ubi's ability to get higher res on PS4 was limited to not all that much better than X1, so no point in making PS4 version better by such a marginal amount.

Nice to have compute explained. I remember reading Cerny's explanation of compute earlier but it went over my head because it was buried among all the tech talk about everything.



“The fundamental cause of the trouble is that in the modern world the stupid are cocksure while the intelligent are full of doubt.” - Bertrand Russell

"When the power of love overcomes the love of power, the world will know peace."

Jimi Hendrix

 

Source?

Is that your opinion? If so, what are your qualifications?

But you ask.

"what happend to the 40% more GPU that the PS4 has? "

9 pregnant women don´t output 1 babe each month.

That is basicaly why we have seem a lot of resolution delta and only Tomb Raider with lock vs unlock frame rate. And that is why games with the same resolution on both the XOne gets only a 10% hit in intense sceanes.



Dark_Feanor said:
Source?

Is that your opinion? If so, what are your qualifications?

But you ask.

"what happend to the 40% more GPU that the PS4 has? "

9 pregnant women don´t output 1 babe each month.

That is basicaly why we have seem a lot of resolution delta and only Tomb Raider with lock vs unlock frame rate. And that is why games with the same resolution on both the XOne gets only a 10% hit in intense sceanes.


Well, I don't know much bout that tech stuff myself. I do, however, that the GPU Compute was originally discussed, as a concept, by Cerny in an article by Gamasutra.

http://www.gamasutra.com/view/feature/191007/inside_the_playstation_4_with_mark_.php?print=1

Then there's Daylight dev Zombie Studios insisting the GPU Compute feature had 'tons of untapped potential.'

http://www.craveonline.ca/gaming/articles/681841-ps4s-compute-has-tons-of-untapped-potential-says-daylight-dev

But hey, Cerny works for Sony, indie dev might be corrupt and all not used to cutting edge graphics anyway, etc, etc, so what we need is a source that ISN'T tied to Sony, a source accustomed to making graphically intense games. Heck! We need a source that worked on a game for Microsoft! ...a source like Crytek, who described GPU compute, when asked about it with relation to the PS4, as having the potential for 'an incredible performance win.' One that, by everything I've heard, hasn't been taken advantage of yet, as not even Cerny expected it to happen until at least a few years into the lifespan.

http://gamingbolt.com/crytek-comments-on-ps4s-gpu-compute-can-be-an-incredible-performance-win

Sooo yeah. Sources! =D



Zanten, Doer Of The Things

Unless He Forgets In Which Case Zanten, Forgetter Of The Things

Or He Procrascinates, In Which Case Zanten, Doer Of The Things Later

Or It Involves Moving Furniture, in Which Case Zanten, F*** You.

I agree, what Ubi said is bullshit.

AC didn't even use GPU Compute.



Around the Network
Dark_Feanor said:
Source?

Is that your opinion? If so, what are your qualifications?

But you ask.

"what happend to the 40% more GPU that the PS4 has? "

9 pregnant women don´t output 1 babe each month.

That is basicaly why we have seem a lot of resolution delta and only Tomb Raider with lock vs unlock frame rate. And that is why games with the same resolution on both the XOne gets only a 10% hit in intense sceanes.

Well, this thread and the subsequent series here is open to scrutiny and discussion. I welcome it.

And  my qualifications? would it make you feel better if I told you I am one of those over education types, have a first degre in computer science and currently about to finish my second degree in medicine, worked on two android and IOS apps and is currently building what I think is going to one day be one of the best apps ever made (if I can pull it off that is). Feel free to take believe what I say or not, or if you have doubts feel free to do your own research and disprove what I have said. Free world man.

But to address what you have said.

What happened to the 40% GPU advantage?

I am going to just assume you didnt read or understand the point right above that insert. So i will go over it again just for you.

In a game engine The CPU processes a scene (AI, Physics, lighting, positional data, controller input...etc) > and calculates how that scene is different from its last processed scene >  then sends the info of the differences to the GPU > which goes onto render the new scene  > and sends that image to your screen. 

Everything I just explained above, in a 30fps game.. happens 30 times per second. So image (frame) has to be ready in 33ms. A 60fps game will need to do all that in 15ms.

Now keep this little snippet of information close by. The PS4 has a GPU that is 50% more cores than the XB1. Lets expand on this. Everything you see being rendered by the XB1, it does so with its 12 GPU core. If it had only 9 cores, it would NOT be able to do with that what it could with 12. So it either will do less work or take more time doing the same amount of work. I am explaining this as simply and as straighforward as I possibly can. Now if the same XB1 GPU had 6 more GPU cores, common sense and logic would tell you that it would either be able to do more work in the same amount of time than it could with 12 cores or it would do the same work in less time. I would think this line of reasoning is indisputable. And this is just looking at only the GPU cores and not talking about any other advantages the PS4 has to keep this as simple as possible.

If you understand that, then this next part would make more sense. YOUR ANSWER STARTS HERE

Now lets go back to what I said about the game engine render pipeline and 33ms for a 30fps game render time per frame.

A developer is making the same game for two platforms. this game runs at 900p@30fps. So the game has a frame render time limit of 33ms. Now the developer has said that the game is CPU heavy. Meaning the CPu has a lot to do. So lets say of that 33ms, the CPU takes up 25ms handling all its calculations. This leaves the GPU with only 8ms to render the frame and send it to your display. 

Now th developer realizes that because of how much time they have used up on the CPU side of things, there is not enough time for the GPu to render the frame and still hit that 33ms limit. So since they don't want the frame rate to drop below 30fps, they then decide to reduce how much work the GPU has to do by dropping the res from 1080p to 900p. So basically to maintain a 30fps output they sacrificed 180p worth of pixels.

Everything I have just said is perfectly ok. Nothing wrong with that at all. The only problem is one of the GPUs in question is capable of doing 40% more work in the same amount of time. Not 3%, 10% or 15%....... at least 40%. And why this is important is that rendering of pixels, is an ALL GPU affair. If both the XB1 and the PS4 have exactly 8ms to render a frame, and the XB1 can render that frame at 900p, then it simply means that the more powerful GPU of the PS4 can render the same frame given the same amount of time either FASTER or BETTER. So it would mean that the PS4 would either have a higher frame rate or at least render it at a higher resolution. It cannot be neither of those. Do you understand now?

There is a perfectly reasonable (and ok) explanation for why this strange thing happened the way it did. And its not about MS paying them or nonsense like that nor is it about he BS excuse they gave. 

Oh, and theer is this from the very same company that made the game in question.

Lets break that chart down.

  • XB1 CPU is ~10% more powerful than the PS4s CPU. Now even though there is evidence that the PS4 CPU still performs better lets ignore that and lets just take this as a cat for the sake of this argument. So if the XB1 can complete its CPU tasks in 25ms, it means that it did it 10% faster than the PS4 and the PS4 completed its task with its less powerful CPU in 27.5ms. Bummer I know.
  • That means the XB1 had 8ms left to render a 900p image by the GPU. The PS4 on the other hand had only 5.5ms second to render the frame.
  • Now the PS4 (based on the graph) is 100% more powerful than the XB1. XB1s 830 + 830 = 1660. This benchmark is probably factoring in all those other GPU advantaged the PS4 has and not just the amount of cores. This means that the PS4s GPU can do what it took the XB1s GPU 8ms to do in 4ms. So the question is, do you believe that if it takes the PS4 4ms to render 900p at 30fps, it could not render an additional 180p in the remaining 1.5ms it has? Remember the PS4 has only 5.5ms to complete the task. 


ethomaz said:

I agree, what Ubi said is bullshit.

AC didn't even use GPU Compute.

To be fair, I don't think any game made for the PS4 thus for or coming out in the next year... even from sony first party has bothered to start using GPU compute yet.



Intrinsic said:
ethomaz said:

I agree, what Ubi said is bullshit.

AC didn't even use GPU Compute.

To be fair, I don't think any game made for the PS4 thus for or coming out in the next year... even from sony first party has bothered to start using GPU compute yet.


Funny enough, I know one game that has; Resogun's dev said they used GPU computing to lessen the CPU workload to increase their ability to animate and track tens of thousands of particles 'chaotically,' rather than taking shortcuts' http://www.polygon.com/2013/11/11/5092636/resogun-ps4-gpu-compute-to-create-chaos

I don't know to what extent it has been done, of course.



Zanten, Doer Of The Things

Unless He Forgets In Which Case Zanten, Forgetter Of The Things

Or He Procrascinates, In Which Case Zanten, Doer Of The Things Later

Or It Involves Moving Furniture, in Which Case Zanten, F*** You.

Zanten said:
Intrinsic said:
ethomaz said:

I agree, what Ubi said is bullshit.

AC didn't even use GPU Compute.

To be fair, I don't think any game made for the PS4 thus for or coming out in the next year... even from sony first party has bothered to start using GPU compute yet.


Funny enough, I know one game that has; Resogun's dev said they used GPU computing to lessen the CPU workload to increase their ability to animate and track tens of thousands of particles 'chaotically,' rather than taking shortcuts' http://www.polygon.com/2013/11/11/5092636/resogun-ps4-gpu-compute-to-create-chaos

I don't know to what extent it has been done, of course.

Oh thats true... my bad. That was so long ago thatI completely forgot about it. I think even KZ shadow fall and infamous used compute too.



You didn´t have to repost your all explanation I´ve read and understood the point you are trying to make.

But first thing first, AC-U is not the first 30 fps sub 1080p game, there is another that uses the same engine (or very similar) and it´s also an open world game (surely it´s also crossgen), but you understand. And also remember that AC4 needed a patch to reach 1080p.

Remember the 9 women. And you might also be familiar with the "Phylosofers Lanch (or dinner?)"

CPU and GPU have to share the same memory pool. The CPU has to have room to do the calculation, as @ethomaz said, they are not using GPGPU.

If they have extra time to toiled the engine for the extra compute units to work without overloading the memory bus they could reach 1080p on both consoles, may be...

But there is time to market, they have to ship the game right now the best way they can.

PS: Good luck with your best app ever, hope you don´t expend too much time optimising for every platform...