• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Can someone explain this eSRAM issue in layman's terms?

Codeblew

Member
Isn't eSRAM faster than GDDR5 in terms of raw speed?

Nope. 176 GB/s GDDR5 vs 102 GB/s eSRAM.

Handy chart:
2ATZHEl.png
 
Yes, but due to the way the manufacturing and die-space works it would have necessitated a further reduction in GPU compute capabilities.

There are lots of factors, but as Cerny once showed in a talk they could have developed a memory architecture that was 1000GB/s of very fast embedded memory paired with 8GB of slow memory.

What the real life implication for the graphics compute power would have been is just conjecture but based on the Xbone it wouldn't have been good.
No need for a very fast memory setup if you don't have the necessary GPU to take advantage of that fast memory.

So it's all about what you put into the limited size of the APU. The GDDR5 left a lot of room for GPU
 

Hurf

Neo Member
A 1080p frame buffer with modern rendering techniques is ten pounds of shit.

Xbone's ESRAM is a five pound bag.

Luckily, a 720p frame buffer is five pounds of shit.
 
Now I know this isnt a thread about compute but could someone lay out the advantages of GPU Compute for me?

If its used how exactly does that help devs? I know it frees up CPU processes, but what exactly are the kinds of things that can be done with it?
 

Beren

Member
Ty lots of info in here :)

I believe now i understand, what i don't get is why Microsoft with all the experience and stuff made that mistake.

Seems like the PS4 has a ton of advantages :O
 
I think that's a bit of an oversimplification. Many expected MS to have 8GB of DDR3 RAM along with the eSRAM and Sony to have 4GB of GDDR5 RAM. I don't think it's accurate to say that MS not using 8GB of GDDR5 is cheaping out in any way, Sony for a long time didn't even know if it was possible.

The Truely funny thing is, that even IF Sony went with 4gigs of GDDR Ram. The PS4 would still be the Graphically superior console.
 
Now I know this isnt a thread about compute but could someone lay out the advantages of GPU Compute for me?

If its used how exactly does that help devs? I know it frees up CPU processes, but what exactly are the kinds of things that can be done with it?

That's a good question. I would also like to add to this question.

If the XB1 does not have the right tools for GPU compute, will that have an effect on games on PC and PS4? Will this generation be limited because of the weak GPU in the XB1?

Edit: Let me clarify this question. It's not about gimping. What I'm trying to say is can developers make a game that utilizes GPU compute and be able to make an XB1 version of the game that is not heavily reliant on it? Or will it have to be left out altogether on all platforms?
 

Dr.Acula

Banned
Isn't eSRAM much lower latency than the other RAM types because it's embedded? So while the bandwidth is lower, it's quicker?

Is eSRAM like CPU cache in that way? Or do both these systems have CPU caches -and is there any difference there?
 
Here is the part I'm curious about..

We know that the eSRAM and DDR3 memory can be used simultaneously and that render targets can be split between the two pools.

We also known that there are compression algorithms present with the eSRAM that can help fit larger frame buffers in the 32mb's.

Are devs using either of these two techniques? I'd love to know if for example, COD or Battlefield are trying to leverage those techniques or if there simply wasn't time with launch approaching and having to work on 5 different versions of these games.
 

Codeblew

Member
Snap, Media, TV, Kinect

And Apps

They could have done the same thing with GDDR5 though. I think it has more to do with cost of 8GB of GDDR5 at the time they designed the hardware.

To be fair, those numbers are based on 800MHz which isn't true any longer.

It's now 6.625% higher on the eSRAM side. ;-)

Good point, I forgot that was a pre-upclock number.

We also known that there are compression algorithms present with the eSRAM that can help fit larger frame buffers in the 32mb's.

I don't have any experience working with frame buffers but it does not make sense to me to compress data in a frame buffer. I cannot imagine doing math calculations on compressed data efficiently. Maybe a game dev will chime in.
 

MARNEY

Member
The graphics chip on the Xbox One has to draw the picture somewhere. The main memory is slow, so it's like picking up pens and doing the drawing underwater. The ESRAM is like a tiny dry spot out of the pool where the graphics chip can work faster, but the problem is it has to find room for both the pens and do the drawing in that little spot, so it's got helpers constantly swapping in and out pens and papers from the pool. It can only fit a few papers at full resolution, so if it's trying to draw a fancy picture with lots of layers it could run out of room and have to reduce the size (resolution) of the drawing. Keep in mind this is how the 360 worked, but the dry spot was faster and larger in relative terms and the swapping more automatic.

With the PS4, everything's laid out in a giant gymnasium with a waxed floor so everything happens faster than even the dry spot in the Xbox One, and there's no real need to shuffle things around in it. The main drawback is that everybody, including Sony, thought the gym was going to be half the size of the pool the Xbox was using up until the last minute of the design phase. There's also suggestions that the waxed floor might make people slip a little when changing directions (latency) compared to the pool, but the GPU doesn't change directions much, and the CPU walks slower and more carefully anyway (different memory controller).

Hope that makes sense.

amazing, thx.
 

Biker19

Banned
They knew they wouldn't be hitting 1080p with it, they just expected Sony would also be in a position where they would not be able to hit 1080p, since everyone was expecting Sony to put 2-4 GB of GDDR5 in the PS4 tops.

That February reveal where they announced 8 GB GDDR5 was probably one of the worst days to be a member of the XBox division at Microsoft.

Indeed. When the PS4 specs were leaked and revealed to have 4GB of GDDR5, I was impressed by the tech, but greatly disappointed by the amount. If they didn't get 8GB at least, they would be in trouble (and we gotta thank that dev that told them so).
When they said 8GB in february, I was completely blown away, I couldn't believe they had done it. I think someone said even most of Sony's teams didn't know about the upgrade, they found out during the reveal. Maybe it was Cerny, or someone at GG.

Now imagine the faces of the people in the XB1 team...

These. No one, & I mean, no one expected Sony to have 8 GB's of GDDR5 RAM instead of just 4 GB's of it, not 3rd party publishers/developers, not Microsoft, not even Sony's own 1st/2nd party teams. It was quite a shock & surprise, & helps PS4's hardware capabilities even further.

Sony made a gamble hoping that 8 GB's of GDDR5 RAM would come to them in time for much cheaper, & it paid off in the end.
 

Bsigg12

Member
They could have done the same thing with GDDR5 though. I think it has more to do with cost of 8GB of GDDR5 at the time they designed the hardware.

Wasn't there some hesitation on Sony's side even? I mean they were at 4gb pre reveal then changed it, so I wonder if they had found in the days leading up to the reveal that they would be able to manage 8gb without a crazy price hike/shortage.
 

viveks86

Member
The only conflicting info I see here is the bi-directional nature of the ESRAM. Are we not allowed to add bandwidth if read and write can happen simultaneously? Is 204 GBps wrong? Why would crytek say that, then?
 
MS chose to use slower memory to save on costs so they could force Kinect in the box. Esram is a poor work-around that complicates development.

The weaker GPU is the bigger issue though.
 

benny_a

extra source of jiggaflops
The only conflicting info I see here is the bi-directional nature of the ESRAM. Are we not allowed to add bandwidth if read and write can happen simultaneously? Is 204 GBps wrong? Why would crytek say that, then?
If bi-directionality was unique to eSRAM this would be a great point, but GDDR5 is also bi-directional.

So if you want to inflate the bandwidth numbers, go ahead and use the by two multiplier, but do it for both to be mathematically consistent. This is not a recommendation by me, by the way. I think doing so would be silly and complicate all comparisons in the future.

(The additional point that CryTek are amazing for getting better bandwidth numbers in their release game than lab tests by Microsoft is also worth pointing out every time. But then again they are wizards because they release 1440p screenshots for a 900p game.)
 
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?

Microsoft was set on 8GB of DDR3 since about 2010. Sony waited and watched patiently on the price of GDDR5 until they realized they could afford putting 8GB of it in.
 

Dr.Acula

Banned
Ty lots of info in here :)

I believe i now understand, what i don't get is why Microsoft with all the experience and stuff made that mistake.

Seems like the PS4 has a ton of advantages :O

The way it went down was that GDDR5 was crazy expensive. So Sony went for it, but could only get 4gb. MS wanted to do lots of multimedia, have the OS always on, etc, so they went with 8gb of the only ram they could afford, GDDR3. Then the prices on GDDR5 dropped more quickly and dramatically than anyone anticipated. Sony could add more ram without changing their spec, while MS couldn't easily change their spec.

I believe that's correct, or was it that Sony just sniped all the suppliers?

Edit, any PC owner who's alt-tabbed in and out of a game to use other programs like browsers, skype, media, will tell you that it's a lot smoother with 8gb than 4gb. I used to run 4, but upgraded because I couldn't alt-tab in Crysis.
 

xn0

Member
"We purposefully did not target the highest end graphics, we targeted more as a more broad entertainment play"
-Greg Williams General Manager of Xbox Silicon Development

lFUPMFd.gif
 

wizzbang

Banned
Talk to me like I'm a total idiot that doesn't know anything about this stuff, because that's what I am. This is something at the heart of lots of discussions and articles, and all of these things are written for people that already understand the basic facts.

Thanks in advance.

I'll tell you one thing, the eDRAM on the Xbox 360 as I recall the articles about it - with it's AMAZING AMOUNT OF BANDWIDTH and happens to be exactly the same size as the framebuffer for a 1280x720 image or 1920x1080 or some crazy shit, means devs basically have a way to make "free AA" at their fingertips, ultra fast ram, can do the precise operations to do AA for "free" per cycle.

Now, did the devs use the eDRAM on the X360? Probably but it sure as shit didn't appear to be for free AA :/
 

CLEEK

Member
Can you elaborate on this at all? How is something like Forza 5 managing to output native 1080p at 60fps? No AA and no deferred rendering? Is this a permanent bottleneck, or do you think new techniques will be developed during this gen to overcome it?

The frame buffer is the final image to be sent to the TV. How big (in MB) that frame buffer is depends on a few things. Each pixel in the buffer will be of a certain size. AA and deferred rendering makes each pixel take up more memory. The native resolution gives you the total number of pixels.

32MB is enough for displaying all the pixels that make up 1080p, but not when you add AA or differed rendering to the mix.

Forza manages 1080p by having an early last gen forward renderer and no AA. So it gets the magical native 1080p at the expense of jaggies and not being able to have dynamic lighting or other modern effects.

Read up on tile rendering to see how devs can work around this. They faced the same issues with the 360. Its 10MB eDRAM wasn't enough for 720p and MSAA, but devs eventually worked around this to achieve just that.
 
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?

The XB1 needs the low latency of the eSRAM in order for Kinect to work.

Microsoft's approach to asynchronous GPU compute is somewhat different to Sony's - something we'll track back on at a later date. But essentially, rather than concentrate extensively on raw compute power, their philosophy is that both CPU and GPU need lower latency access to the same memory. Goossen points to the Exemplar skeletal tracking system on Kinect on Xbox 360 as an example for why they took that direction.

http://www.eurogamer.net/articles/digitalfoundry-vs-the-xbox-one-architects

The XB1 also needed a guaranteed 8GB of memory in order to have the multiple OS and snap features to work. When initially designing the system GDDR5 was way too expensive to have 8GB of it. It made sense to go with the slower DDR3 and use the eSRAM to help speed it up. When the prices of GDDR5 finally fell it was too late for MS to change the design.

Sony planned for GDDR5 all along. When the prices fell it was a simple matter of plugging in the higher capacity modules which they could now afford.
 

KMS

Member
Isn't eSRAM much lower latency than the other RAM types because it's embedded? So while the bandwidth is lower, it's quicker?

Is eSRAM like CPU cache in that way? Or do both these systems have CPU caches -and is there any difference there?

Yes, it's very low latency but the cpu doesn't have enough bandwidth access to it to make use of it and it's wasted on the GPU since they are so paralleled that they are very latency tolerant. GDDR5 has high latency but massive bandwidth which makes it perfect for a GPU. Even Microsoft's own engineer admitted as much in a DF interview.
 

Codeblew

Member
The question was why MS couldn't settle for 2gb or 4gb of GDDR5 the way Sony was planning on doing

I think the 8 GB was a design requirement of the XB1 that was decided on early for the OS layers and multimedia apps. I think they went with 8 because they knew they needed 3 GB for the OS. So 1 GB for games wasn't going to cut it. They then designed the hardware around the requirements, including price. That is my take anyway.

Wasn't there some hesitation on Sony's side even? I mean they were at 4gb pre reveal then changed it, so I wonder if they had found in the days leading up to the reveal that they would be able to manage 8gb without a crazy price hike/shortage.

Yeah, I think they jumped to 8 as soon as they figured it was doable without breaking the bank too much. If I recall correctly, many devs, including GG, were asking for 8GB.
 

benny_a

extra source of jiggaflops
Yes, it's very low latency but the cpu doesn't have enough bandwidth access to it to make use of it and it's wasted on the GPU since they are so paralleled that they are very latency tolerant. GDDR5 has high latency but massive bandwidth which makes it perfect for a GPU. Even Microsoft's own engineer admitted as much in a DF interview.
What makes GDDR5 have high latency in the PS4 or is that an inherent flaw of the GDDR5 technology?

Could you cite the latency numbers that are not based around the different memory controllers in use for the different configuration in which that memory has been used in the past? (Where GDDR5 was strictly a GPU thing.)
 

nib95

Banned
Ty lots of info in here :)

I believe i now understand, what i don't get is why Microsoft with all the experience and stuff made that mistake.

Seems like the PS4 has a ton of advantages :O

I'll try and explain it in laymans...(a lot of this is assumption based mind).

Microsoft's ram journey.

Microsoft wanted a console that had mass media potential (Kinect, multiple OS's, snap feature etc). To do that, they needed a lot of ram reserved just for the OS. At least 3GB's worth.

When they started developing the console, 8GB GDDR5 (a fast video ram type) was not available. Only 4GB GDDR5 as a maximum. If they had gone with that, if you deduct the 3GB of ram needed for their OS, you only have 1GB left for games, which is not enough for next gen. So, what was their alternative?

Go with DDR3 (a slow system ram type). At the time you could get large ram sizes with DDR3, so Microsoft opted for 8GB of DDR3. Deduct the 3GB they required for the OS and you still have 5GB left for gaming, which is now sounding good!

Problem? DDR3 is too slow on it's own. So, they added in a small amount of Esram (specialised fast ram) to help out. Problem is, it's expensive and large, so they could only go with 32mb of it, which frankly wasn't enough.

But putting media, Kinect and OS features at the forefront of design, they had little choice.


Sony's ram journey.

Sony wanted a more gaming centric console with less emphasis on additional media features or multiple operating systems. To get that, they'd need fast GDDR5 ram.

At the time it was expensive and didn't come in large sizes, so they went with the highest amount they could, which was 4GB of GDDR5.

Originally the PS4's OS reserve only took up 512mb of ram, which still left 3.5GB of fast ram left for gaming. Later the OS reserve jumped to 1GB (leaving 3GB for games).

During this time, they worked with partners to try and speed up the development and manufacture of larger GDDR5 ram kits, and eventually last minute managed to secure 8GB GDDR5 kits. So the PS4 was then upgraded to 8GB of GDDR5 ram instead of the previous 4GB. They also upped the OS reserve from 1GB to 2GB, still leaving 6GB GDDR5 for games.
 
Forza manages 1080p by having an early last gen forward renderer and no AA. So it gets the magical native 1080p at the expense of jaggies and not being able to have dynamic lighting or other modern effects.
Thanks, and ouch at no AA.

But I guess you don't need as much AA when you're outputting 1080p native, do you? Then again several Forza impressions describe it as beautiful but with aliasing issues.
 
So DDR3 is better for some tasks? Why? It's still slower from what I can tell looking at the graphs.

When MS designed the system, they decided 8gb of memory was a must. Because of this they had to go with DDR 3 because GDDR 5 was too expensive at the time. The key here is MS deciding 8gb was absolutely necessary. So I assume they needed the 8gb minimum for snap/tv/kinect/apps and the 3 OS's.

Sony on the other hand was willing to go with even 2-4gb of ram. For gaming alone it would have been enough. So they were able to go with GDDR5 and by the time the PS4 announcement came the prices had dropped and they went with 8gb of GDDR5.

People say Sony got lucky. Yes they got very lucky, But they also were rewarded for focusing on gaming.
 

viveks86

Member
If bi-directionality was unique to eSRAM this would be a great point, but GDDR5 is also bi-directional.

So if you want to inflate the bandwidth numbers, go ahead and use the by two multiplier, but do it for both to be mathematically consistent. This is not a recommendation by me, by the way. I think doing so would be silly and complicate all comparisons in the future.

(The additional point that CryTek are amazing for getting better bandwidth numbers in their release game than lab tests by Microsoft is also worth pointing out every time. But then again they are wizards because they release 1440p screenshots for a 900p game.)

LOL. Thanks! So the 204 GBps was part of the grand PR spin. Can't believe they actually put that on schematic diagrams during a tech presentation. smh...
 

joshcryer

it's ok, you're all right now
Decent analogies here but hUMA kind of changes the PS4 analogy a bit, Microsoft resolves this with synchronized paged tables on their end, but it works against MS because every piece of software that uses it needs a VM, and that explains why MS chose to have two virtual machines (one for OS, one for game API).

As Cerny said there were two ways to go with the unified memory design, though. One DDR3 pool of memory with eSRAM to help the GPU make up for the slow speed of DDR3, or one pool of GDDR5. Microsoft lost out and Sony took a gamble. Sony initially wanted 4GB of GDDR5, and if the supply chain didn't come through, the PS4 would have 4GB right now. They got lucky because the suppliers could deliver it (and apparently it's a pretty easy hack, just add the extra 4GB of GDDR5 to the other side of the board).
 
So DDR3 is better for some tasks? Why? It's still slower from what I can tell looking at the graphs.
No, it's not better. It's just that what Microsoft needed to realize its vision—snap, apps, Kinect, TV, etc.—was a lot of RAM, as opposed to very fast RAM, which is why they went with the slower DDR3. They could have 8 GB for sure. On the other hand, it appears that Sony prioritized really fast RAM over quantity of RAM (which they obviously still wanted to maximize). At the time, it was unknown if they would even be able to get 8 GB of GDDR5 in there.

MS didn't really make a mistake, per se; it's just that Sony's gambit on GDDR5 paid off big time.

EDIT: And of course, here is the analogy. Sam and Max both need $100,000. Max makes a decision to take a job that pays a $100,000 salary, while Sam plays the lottery. Sam's ticket wins him $225,000.
 
If bi-directionality was unique to eSRAM this would be a great point, but GDDR5 is also bi-directional.

So if you want to inflate the bandwidth numbers, go ahead and use the by two multiplier, but do it for both to be mathematically consistent. This is not a recommendation by me, by the way. I think doing so would be silly and complicate all comparisons in the future.

(The additional point that CryTek are amazing for getting better bandwidth numbers in their release game than lab tests by Microsoft is also worth pointing out every time. But then again they are wizards because they release 1440p screenshots for a 900p game.)

isn't that 176 gbps already bi-directional? that 102 gbps isn't, and that's why microsoft uses 204 gbps. their mathematical mistake is adding both esram and ddr3 as 271 gbps or some other bullcrap.

again, due to overheating concerns, microsoft is apparently targeting 130-140 gbps on its esram.
 
I don't have any experience working with frame buffers but it does not make sense to me to compress data in a frame buffer. I cannot imagine doing math calculations on compressed data efficiently. Maybe a game dev will chime in.

Isn't a frame buffer all the data in a frame that will be sent out to the TV? Wouldn't compressing that data effect the iq?
 

viveks86

Member
Forza manages 1080p by having an early last gen forward renderer and no AA. So it gets the magical native 1080p at the expense of jaggies and not being able to have dynamic lighting or other modern effects.

Read up on tile rendering to see how devs can work around this. They faced the same issues with the 360. Its 10MB eDRAM wasn't enough for 720p and MSAA, but devs eventually worked around this to achieve just that.

Oh! I did not know this. Is this confirmed? I thought the prague video and the latest spa video had AA. Only the one in between didn't seem to have it.

isn't that 176 gbps already bi-directional? that 102 gbps isn't, and that's why microsoft uses 204 gbps. their mathematical mistake is adding both esram and ddr3 as 271 gbps or some other bullcrap.

again, due to overheating concerns, microsoft is apparently targeting 130-140 gbps on its esram.
This was my original impression too. Now I'm confused! :(
 

benny_a

extra source of jiggaflops
As Cerny said there were two ways to go with the unified memory design, though. One DDR3 pool of memory with eSRAM to help the GPU make up for the slow speed of DDR3, or one pool of GDDR5.
Cerny was talking about DDR3 (68GB/s) + eDRAM (1000GB/s), not DDR3 (68GB/s) + eSRAM (102GB/s)

again, due to overheating concerns, microsoft is apparently targeting 130-140 gbps on its esram.
Where is that overheating thing from? I'm only familiar with the technical fellow interview by Digital Foundry where 150GB/s was the maximum they could get in the lab. I don't remember anything about heat being brought up there as an explanation.
 

wsippel

Banned
Too large a wafer size, too many transistors and too expensive. Problem is, with deferred rendering, 32mb is simply not large enough for 1080p frame buffer. Hence why 720p/900p will be common place on the Xbox One. Can't really avoid it altogether because the DDR3 doesn't really have the bandwidth to compete.

Non layman post about it here.
Devs managed to do deferred rendering with a 720p framebuffer and up to four targets on 360, though that was admittedly pretty hard to do and therefore rare. Not all render targets need to be full resolution and color.
 

Dr.Acula

Banned
What makes GDDR5 have high latency in the PS4 or is that an inherent flaw of the GDDR5 technology?

Could you cite the latency numbers that are not based around the different memory controllers in use for the different configuration in which that memory has been used in the past? (Where GDDR5 was strictly a GPU thing.)

Latency is a function of how close the ram is to the CPU/gpu. For eSRAM it's embedded.

Hey, does embedded mean on die? I assume 32 is way too big, on die ram is like 2 mb.

GDDR5 would be similar in terms of latency to 3 right?

The ram types being a "strictly gpu thing," is still true, it's just that the CPU is now unified with the gpu.
 

KMS

Member
What makes GDDR5 have high latency in the PS4 or is that an inherent flaw of the GDDR5 technology?

Could you cite the latency numbers that are not based around the different memory controllers in use for the different configuration in which that memory has been used in the past? (Where GDDR5 was strictly a GPU thing.)

All DDR5 is high latency.

DD3 on xbox is around ~7ns(nano seconds) while the DDR5 on PS4 is around 11ns.

Would that make a difference for certain apps? Possible
Would it make a difference in games? Not really, maybe in a very rare situation for a couple calculations here and there if you went hog wild with long shader code or something.
 

benny_a

extra source of jiggaflops
Latency is a function of how close the ram is to the CPU/gpu. For eSRAM it's embedded.
Yeah, I just would like to know numbers, preferable on the AMD architecture just so I understand what the cost is to travel beyond the die.
 
Top Bottom