15 May 2020

Are current PCs unable to keep up with the Next Gen consoles? Answer: Yes, sort of...

Photo by Marco Verch, Creative Commons 2.0 License
Last time I mentioned in passing how the consoles will be affecting current owners of PCs. I also touched on that subject when I was discussing my relatively newly-built PC. I generally don't feel that current owners of mid-to-high-end PCs have that much to worry about but it appears that this is not a commonly held belief.

So let's get into that!

Recently, Tom over at the Moore's Law is Dead youtube channel hosted Meyer of Meyer's Tech Rants and they went over what they figured might be the end result of the SSD and other architectural optimisations relating to I/O and came to the conclusion that HDDs are dead (for gaming off of) and current PC CPUs and the architecture they work on are going to need a complete overhaul in order for developers to be able to successfully develop future cross-platform games.

On their blog, Meyer concludes with:
"Currently, even if we were willing to leave HDDs in the dust (it's overdue anyway) We don't have the hardware for the accelerated pipeline, so we would not even be able to make the most of our SATA SSDs, even if games stopped running entirely on HDDs.
Unfortunately, it may be many years before we can have that kind of hardware accelerated IO on PC."
In support of his thoughts, he points to the lack of difference in gaming and content editing on various types of SSD (as performed by LinusTechTips) and to the optimisations required in order to get games loading decently quickly on HDDs (i.e. lots of duplicated data) and those are fair points. 

However, in my opinion, these are flawed starting points to the conversation. 

First up, there are no games that I'm aware of that optimise for SSD usage... or even type of SSD usage. Every game treats its storage as if it were an HDD - we don't get smaller install sizes for PCs which utilise SSDs, for instance. Game engines aren't written to manage data as if it were moving from a faster storage pool to the system RAM because they didn't need to - SSD read speed was seen as a free performance boost and developers only worry about the worst case scenarios.

Secondly, and I'm sure some of you can see where I might be going with this one as I've touched on it before: games and programmes benefit from being stored in the system RAM pool and not being streamed from the system storage. Linus' methodology for the SSD comparison is faulty because, as he himself admits, file transfer sees a huge benefit from increased storage speed. However, with the way games and other programmes are currently programmed, the speed of the storage doesn't matter if their entire structure fits into active memory. That's the important metric here...

A picture of packed ram... I originally wanted to place a picture of the platform attendants pushing people onto the bullet trains in Tokyo but I couldn't find a creative commons licensed picture... Photo by Michael Coghlan, creative commons 2.0 license.
If you take a look at any photo editing software (e.g. Photoshop), or video editing software (e.g. DaVinci Resolve), those programmes take some time to initially load but then all editing has minimal effect, time-wise, because the programme, effects and associated files are all loaded into RAM. Resolve, alone, chews up 5-ish GB of my system RAM at start-up. It's there, waiting to be quickly accessed when it's needed by the CPU.

Even file transfers allocate RAM in order to be performed. Yes, an SSD is faster than an HDD but the actual process is always Storage 1>CPU>RAM>CPU>Storage 2. The reason we are able to see a speed difference is because RAM is an order of magnitude faster than even the fastest SSD interface (currently PCIe Gen 4). There's a lot of overhead there that can still be utilised.

The real issue, as many people know, is when there isn't enough system RAM available for a programme to load itself into memory and so something has to get pushed out to the page file on the storage drive(s). That's when people experience huge dips in performance and it's why windows has mandated increased recommended amounts of RAM over each iteration as the base OS requires more RAM in order to perform all of its ancillary operations.

Putting that into context, here's what I wrote two entries ago:
"Worse than that, the consoles won't even be loading in that much data per frametime, just a fraction of it. The current setup in PCs is more than fast enough for this. If anything, mid-to-high-range 6-10 GB VRAM graphics cards on PC already have more memory performance available to them than the APUs in the next gen consoles when combined with 8 GB system RAM and a 7200 rpm HDD.
Realistically, 16 GB system RAM is still going to be the maximum required for games over the next generation but I do expect the amount of VRAM on graphics cards to stabilise at 8 GB - even down to the low-end cards. While there have been leaks pairing the RTX 3070 with 8 GB RAM, I would be surprised if the RTX 3060 would come with less than that because 6 GB just doesn't cut it anymore as far as I'm concerned - even if you're going to be running at 1080p or 1440p."
8GB of system RAM paired with a 6 GB VRAM setup provides 14 GB of memory for the game to operate in. Realistically, 2-3 GB will be reserved by the OS, so in actual fact it's more like 11 GB of memory available for the game (as long as you're not running anything in the background). The Series X will have 13.5 GB of RAM for essentially the same functions. On an 8 GB VRAM card, there will be 13 GB available. Moving up to 16 GB of system RAM, this is so far in-excess of what is capable in the next gen consoles that it's not even worth discussing, though what is important is that 6-8 GB of VRAM is always the minimum required in order to perform all those operations on textures and other data.

It is also important to remember here that the 56 compute units of the Series X's GPU are more data hungry than any mid range GPU currently available on the PC - this means that VRAM requirements are lower than the next gen consoles outside of the 2080 and 2080Ti.

Even the lowly RX 5500XT has 8 GB of VRAM running with quite a bandwidth... it may not be able to game at 4K but then why are we running around after resolution as if TV manufacturers made all the decisions?

So why don't games see a benefit? Modern games are not designed to take advantage of increased amounts of system memory and I presume the answer as to "why?" is that consoles have held them back. Not in storage speed but in the amount of RAM capacity. The PS4 and Xbox One have 8 GB of RAM that's split between the graphics card and the system (okay, it's unified memory but it cannot all be allocated one way or the other...). The PS5 and Xbox Series X both have upped that to 16 GB of RAM, again - split between graphics and system functions.

Developers don't tend to optimise their games for PC configuration because there's such a wide gamut of available configurations that it becomes a fool's errand. The best they can do is require a certain level of RAM, VRAM and CPU/GPU instruction sets. Anything more than that and they're just wasting their time because the majority of their optimisations do best to go on the worst case scenario (as I stated above)... which in this case is the current gen consoles.

For example, two large and very pretty open world games are The Witcher and Assassin's Creed Odyssey. The recommended specs for each one are 6 and 8 GB of system RAM and graphics cards with 2-4 GB of VRAM... even the required CPUs are from 2011/2012! Granted, I wouldn't recommend running those games on that hardware but those are the specs issued by the developers.

What this means is that, although the next gen consoles have an innate advantage to HDD and SATA 3 SSDs in terms of transfer of assets to the system memory, the PC does not need to limit itself to this bottleneck - developers can (and most likely will [and should]) be loading more assets into the system RAM for longer term storage. i.e. Whereas the SX and PS5 are operating on a "just in time" approach to data availability in their shared RAM pools, PCs should be targetting the next few minutes of data loaded into system RAM which can be cycled out and renewed as time passes. This is an option purely because the PC has a much larger pool of memory to work with and, as we've noted in the past, GDDR and DDR transfer rates are much faster than those available to HDDs and NAND flash SSDs.

Who cares if the game is being run off of an HDD on the PC when the developer can load in (potentially) half of the total game install into system memory? 

Peak transfer rates for various types of storage and system memory pools...

What is changing within the next couple of years is that the worst case scenario will switch to PC. The CPU and GPU found in both the SX and PS5 are way above average for modern PC technology. Zen 2 is less than a year old and RDNA 2.0 with ray tracing capability isn't even out on the market yet... and the RTX 2000 series cards are increasingly looking like they're the poor man's ray tracing solution and won't be able to cut it for the next generation of graphics cards.

Last time, I wrote:
"Yes, people say that very few people upgrade their CPUs... but at the same time, we've not had this rate of CPU advancement in over 10 years now. Zen 1+ to Zen 2 and then to Zen 3 have had performance increments we just haven't seen for a decade. Combined with the release of the new consoles which are more powerful than the majority of mid-range PCs in use around the world today, we are looking at a lot of gaming rigs that are going to be outclassed within 6 months and being unable to effectively run modern AA and AAA games within a year. A 6 core Ryzen 5 3600 is likely to be a minimum requirement by late 2021 when console development is targeting the equivalent of an R7 3700X."
At first glance it might appear that I'm contradicting myself over the course of these two quotes but I'm really not. For memory capacity and I/O bandwidth, the next gen consoles are no better than what is already available for low-mid-level PC hardware. For CPU power and GPU power, as I just noted, the venerable PC is lagging far behind for the average user:

A mid-range PC, right now, is something along the lines of a 2600 to 2700X* or a 3600-3600X paired with 8 or 16 GB DDR4 RAM (minimum 2133 or 2666) and a graphics card from the mid-range of the current pack lies between the RX 5500XT and the RX 5600XT**. Usually, those systems will also have a 256 or 512 GB SSD of some form (more often than not a SATA 3.0) as their boot drive coupled with a larger HDD for storage and the majority of their game data.
*Not a typo.
**Technically, the RTX 2060 is included in this range from the chart but the pricing is, on average, beyond what I would call mid-range. Personally, I think the GTX 1660 Ti is the last of NVidia's mid-range cards in this generation.
Looking at the system RAM and VRAM, as I discussed far above, this build more than covers what the consoles have - 8 GB of 14 Gbps GDDR6 and 8-16 GB of DDR4 memory. For 4K gaming, this build is insufficient but then this build will likely be displaying content on a 1080p or 1440p screen - and it can perform that task without much issue.

What is at issue is that the CPU, even the 3600(X) will not be enough for highly parallelised games developed to take advantage of the extra cores and equal clock speed in the next gen consoles outputting at high refresh rates and resolutions. Part of this is also made worse because the consoles have so much dedicated silicon on the APU to take the strain off of the CPU cores - dedicated silicon that's providing direct memory access (DMA), decompression tasks or de/encoding processes. SONY stated that some of those features, combined, are doing the equivalent work of 9 Zen 2 CPU cores. The desktop parts have none of those features - something that Meyer was hoping might be the case. Which means that a "simple"* 6 core CPU will not be able to perform the same amount of work as these enhanced 8 core behemoths.
*Boy, did I ever think I'd be saying that?!

Don't forget the one area where PCs are unrepentantly superior: RGB lighting...

In the short-term, this will mean that there will be "fall back" settings for features such as ray traced sound and increased RAM requirements for pre-loading of assets (in order to reduce I/O and decompression duties for desktop CPUs). In the medium-term (let's guess 2023), this will likely mean that a 2700X or 3700X will be the minimum CPU required for 1440p and 4K gaming on PC. For lower resolutions, a 2600 or 3600 will likely continue to be okay for 1080p, 60-120 Hz gaming or 1440p, 60 Hz - both at high detail settings and, of course, dependent on the GPU you have paired with the chip!

On the GPU side, things are much easier... just upgrade! Your PCIe gen 3 x16 slot will be fine for the RTX 3000 and RX 6000 series of cards and I predict that both of them will last you through the majority of the next generation of games.


So, after all that long-winded rambling, what's the take-home message? Storage speeds are irrelevant past initial loading within a game or programme. Memory capacity (both system and VRAM) is more important for PCs going forward and those will mitigate the advances in storage and I/O observed in the console space. We will likely see developers fully utilising system RAM instead of only taking up a few GB at a time and 16 GB will likely become the "recommended" amount with 32 GB preferred. 

The next gen of GPUs will likely be sufficient to power your games through to the next, next generation of consoles but all but the high end current gen CPUs will likely not be fit for purpose within the next two years. 8 GB of VRAM will likely become the minimum and 8/16 core/threads will likely become a minimum for a decent gaming rig.

We might see developers choosing to optimise loading times for SSD on PC but I'm doubtful of that.  What will likely happen is that the use of SSDs as storage for game assets will be listed as a recommended specification but not required. The only downside they have is increased up-front loading times. Once in game, there's no downside from the user perspective.

I think I mentioned this last time but don't buy a 3600 or 3600X right now. If you must purchase a new CPU and motherboard before B550 is released, get a 2600 for less and the cheapest B450 board you can and save that money for B550 and Ryzen 4000 series chips... or for Zen 4 and DDR5 two and a half years from now.


fybyfyby said...

I agree, that consoles ability to stream assets and models will be on the PC side exchangeable by larger amount of system memory.

But it will really depend on game design. And multiplats probably wont be designed way that PCs cant run it (for example if you can simply multiply system memory by this technology, PCs will never be able to put this amount of data in memory - I mean mainstream - you can build pc with hundreds of GB of memory if you want).

I also think that PS5 SSD is maybe too much fast. But on the other hand. Loading screens were never the target. Its more easily communicated, but its cheap story. I think target was to integrate SSD to memory subsystem. Thats the reason there is hw uncompress acceleration and support for direct streaming into memory with cache scrubbers functionality and 6 levels of priority. People see only storage in ssd. But Sony started different story here.

I dont know how much effective and optimalized is PS5 system vs XSX. Im not any kind of insider. I think both systems will be great. But Sony cooperation with devs like this long close cooperation with Epic seems like they built this machine with devs not only for devs. So Im very curious what Sony comes with in next months.

Duoae said...

Hi fybyfyby,

From my perspective, we don't need that much in a PC's system memory. Think of it like this - The Witcher 3 is 50 GB on disk (official site says 40 GB but i presume this includes expansions?), Modern Warfare is around 175 GB. There's some duplication in both those numbers but probably not /that/ much can be removed from those numbers.

There are 14 missions in MW and some of that total is also dedicated to the multiplayer, but to simplify this example I'm just going to overestimate and presume that the total 175 GB is used in those 14 levels.

That's 12.5 GB per level.

The Witcher is even less of a trouble with probably no more than a quarter of the total assets in memory at a given time (that also, quite coincidentally, is 12.5 GB).

A system with 16 GB of DDR4 RAM and a graphics card with 8 GB of VRAM will comfortably deal with these scenarios.

If you're using an HDD, MW will take longer to load between levels. The witcher will take longer when loading fast travel points. However, as long as there's not a huge influx of data at one point in time, streaming of world data will not really trouble such a system.

MW is already recommending 12 GB for system RAM whereas Witcher is recommending 6 GB. Those numbers will just increase slightly. 16 GB will become the minimum and 32 GB will become "if you can".

No need to install 100s of GB of RAM... though if you did, you'd just load the game into memory once and keep it there. Zero load times once in game, even better than either console.

Duoae said...

I should note that this is essentially how things were done in the Atari and commodore 64 era. Quite funny how we might end up going full circle (though at much faster transfer rates!!)

fybyfyby said...

I understand and you are right from the perspective you are seeing this problem. But first, developers need to design the game that way. And its several years old game also. We are talking about next 6 years.

Thats the reason im curious. Because on PC no game can utilize SSD (if you dont count that everything is faster - no game cant use ssd the way that you cant with classic hdd). Developers simply couldnt use ssd so far. On consoles there wasnt even possibility and on PC you would be stupid to use (nvme) ssd - you would dramatically lower game audience.

So you cant simply take nowadays games saying, that they dont really need this special memory subsystem and so that is the reason this memory subsystem is not needed. I see in xsx and ps5 flash of something completely new. Something that can really push games further. Something, which cant be possible on PC.

Imagine that in games like Spiderman (where speed of flying was maximum due to hdd speed with duplicated assetts and lower variability of items on screen) or hzd (where while you were turning, assetts were streamed into memory from slow disk, so you were limited to maximum number of assetts and their variability and you needed to use blur, so loading is not visible) current solution was on limit.

One reason was obviously 8GB shared memory, another was maximum throughput of 100 MB/s (or 50 compressed I think). But if Sony only wanted to have faster storage, they could go with 1 GB/s ssd and be fine.

Its not only about nullify these dev headaches. Its on another level. I really think that ability to fill ram every 1 or 2 seconds is really important here. But in multiplats we will not see these extra benefits much. Just wait and see, how PS first party titles will look like. MS is tied with promise of developing on XO, so I dont expect anything revolutionary there.

Duoae said...

It will definitely be interesting to see what happens but, in the same way consoles held back games on PC from utilising SSD, PC will hold back cross platform titles from using the SSD in the same way.

One important thing to note is that the RAM can't be flushed as fast as theoretically possible because much of it is still in use. Yes, the SSDs on SX and PS5 can refill the RAM in a few seconds in theory but in practice it's unlikely to be possible.

I agree with your example with spiderman - but increased RAM will fix that issue. As for horizon Zero dawn, there is no loading from disk as you turn (it uses the same kind of area block pushing as Spiderman and other open world games), it's just not being rendered - the information is still sitting in the RAM...

fybyfyby said...

For being able to effectively flushing memory I believe cache scrubbers will be in PS5.

I admit hzd and spiderman had to be done that way because of ps4 slow disk. On PC you can put more things into memory and control behaviour by different tier of graphical settings.