Asynchronous Compute : what are the benefits?

16 already sounds like a hell of a lot to me but what do I know! Also I'm still unclear as to whether the Onion+ bus and volatile bits aren't included in the XBO. They are certainly in Kaveri on the PC side so are these not just standard GCN1.1 APU features?
 
16 already sounds like a hell of a lot to me but what do I know! Also I'm still unclear as to whether the Onion+ bus and volatile bits aren't included in the XBO. They are certainly in Kaveri on the PC side so are these not just standard GCN1.1 APU features?
Well, while I agree fully that PS4 is well optimized and ready for the async future, I'm unsure that just because Xbox One does not have those optimizations that it means it's not going to handle async compute well. For example looking at the memory architecture, the Xbox still has a second pool of memory for the GPU to work with, is this caching problem going to be an issue when GPGPU is being done on DDR3 while the ROPS are working with esram? And if having a second pool has no effect (so thread trashing occurs) then maybe that's why they're held to 16 queues.
 
But I'm unsure as of this moment how many threads are actually required as games continue to evolve.
Two additional compute queues (one high prio, one low) should be enough for most purposes. More might benefit some special cases, like running many simultaneous GPU accelerated middlewares that do not know about each other. High number of queues is more about convenience than performance, just like being able to run multiple software threads on a single CPU core (OS will time slice the CPU threads).
 
Well, while I agree fully that PS4 is well optimized and ready for the async future, I'm unsure that just because Xbox One does not have those optimizations that it means it's not going to handle async compute well. For example looking at the memory architecture, the Xbox still has a second pool of memory for the GPU to work with, is this caching problem going to be an issue when GPGPU is being done on DDR3 while the ROPS are working with esram? And if having a second pool has no effect (so thread trashing occurs) then maybe that's why they're held to 16 queues.

I think all GCN GPU are very good for async compute PS4 or Xbox One or PC...
 
Last edited:
they should be: lol we don't even have a baseline for performance. I'm not sure what the debate is, or how to quantify it.

I think it will be better for all GCN card but a 7790 is a good base level. All card will do better with Async compute...
 
Xbone GPU is not optimized for astync compute like PS4 GPU is.

wow ... you really need to explain why you think this, as this totally goes against what the xdk and the architects as well as the API 11.x shows ..

Please explain what an "optimized async compute" setup looks like, bearing in mind Nvidia, Qualcomm, Intel, Imagination etc also has their own take on this too ...
 
wow ... you really need to explain why you think this, as this totally goes against what the xdk and the architects as well as the API 11.x shows ..

Please explain what an "optimized async compute" setup looks like, bearing in mind Nvidia, Qualcomm, Intel, Imagination etc also has their own take on this too ...

not worth it.

We don't have an objective means to testing async compute performance yet. It's not like there are async compute benchmarks out. What is async compute performance of measure of? How fast it can complete task while performing another task? If so then having more FLOPs is what we're measuring. So this is complicated, and since we only have 1 game out there that is really taking heavy use of async performance and only on one platform, no one can really say how each performs.

L2 cache volatile bit sounds like a great win, but no one hear (except for Q games) has any idea how often they need to perform async compute with shared L2 cache.

Anyway, it's a stupid discussion with no way to prove it. We're better off discussing what async compute should be used for, and what the adoption rate is for the population so that it can be used in things like multiplatform games.
 
not worth it.

Agree its not worth it, was more attacking his first question as Die@rd made a blanket statement that was generally confusing ..

When the xb1 becomes a devkit, and assuming MS allows us to remotely deploy both shared apps/games and title apps/games ill be testing the system hard!
 
Agree its not worth it, was more attacking his first question as Die@rd made a blanket statement that was generally confusing ..

When the xb1 becomes a devkit, and assuming MS allows us to remotely deploy both shared apps/games and title apps/games ill be testing the system hard!
definitely. We might even be able to create tests today for AMD hardware and run it against the X1 when the SDK is open to see how it performs. I'm still not sure what we're testing though. My understanding is that async compute speed would be a function of - available CUs, bandwidth, latency, and anything else that might be required to make it work faster (like L2 cache volatile bit). But those factors are going to be different in all three platforms so... lol..

edit: honestly async compute seems to specifically tailored to a particular type of game or platform, I don't even think it's worth benchmarking.

I'm not sure if I understand this fully, but your CPU is rendering frame n, your GPU is working on n-1. When your GPU shifts over to ROPS and post processing the ALU is presumably free, so that is your opportunity to async compute, computing on things your CPU would do in its update code. If you don't have enough CPU processing to do it, then async GPU becomes an ideal helper for things like particle effects, where you want to move like thousands of particles quickly that are under going acceleration for instance. If you have something that is latency sensitive as well, and your CPU isn't good enough, async compute might be a good candidate as well. And I suppose to a degree you can shift some GPU processing back to (n) as opposed to having to work on it on (n-1) but i'm not sure to the degree of how much that is possible.
 
Last edited:
Two additional compute queues (one high prio, one low) should be enough for most purposes. More might benefit some special cases, like running many simultaneous GPU accelerated middlewares that do not know about each other. High number of queues is more about convenience than performance, just like being able to run multiple software threads on a single CPU core (OS will time slice the CPU threads).

Middleware was specifically called out by Cerny as a driving force when it comes to async compute. Obviously the more systems that have async the more interest a company will have it making software to manage it so xb1, pc as well as ps4 can benefit if such offerings become popular. The case for sync compute has already likely been made since transforming data on the GPU without bothering the CPU is already a priority for the consoles, the case for async may take more time but if it a common enough resource to help move the frames along I am sure someone will get to it eventually.

Besides the convenience for middleware management might the large number of queues act like a 'case statement' in a sense with one of many possible commands to be executed very quickly without looping back to the CPU as opposed to just having one or 2 extra "lanes" of command traffic available to getting around something stalled or in execution on the GPU ?
 
Middleware was specifically called out by Cerny as a driving force when it comes to async compute. Obviously the more systems that have async the more interest a company will have it making software to manage it so xb1, pc as well as ps4 can benefit if such offerings become popular.

I recall this from the Gamasutra interview:

Mark Cerny: "The reason so many sources of compute work are needed is that it isn’t just game systems that will be using compute -- middleware will have a need for compute as well. And the middleware requests for work on the GPU will need to be properly blended with game requests, and then finally properly prioritized relative to the graphics on a moment-by-moment basis."
And Cerny did call out that ancient architecture known as the 'PC' as hindering broad progress:

Mark Cerny: One barrier to this in a traditional PC hardware environment, he said, is communication between the CPU, GPU, and RAM. The PS4 architecture is designed to address that problem.
I think this is an inevitable problem of technical evolution. There will be times when games developers (or middleware providers) may feel held back by PC architecture and similarly when they'll feel held back by console architecture. Towards then end of console's last gen (512mb RAM) lack of memory must have been holding everybody back more than anything else. But now, if you look at the Steam Hardware Survey, the majority of PCs are likely the biggest technological hold up. Because gaming PCs, i.e those capable of playing games at settings exceeding those at whatever arbitrary scale determines quality compared to consoles, are in the minority.
 
That's why PC games scale. I see no reason for consoles to be held back by slower PC's when those slower PC's can simply play a scaled back version of the game. The fact is that anyone who's running a PC (whether it has Steam installed or not) that's so old it can't run a scaled back version of an XBO game is unlikely to be remotely interested in playing that game on their PC in the first place.
 
That's why PC games scale. I see no reason for consoles to be held back by slower PC's when those slower PC's can simply play a scaled back version of the game.
There's scaling back and there's off the scale. There are folks running PCs with 512mb RAM and 44% have 4Gb or less. 48% have, at most, a dual core CPU, 26% have a display with a 1366x768 resolution screen and two-thirds have a video card with 2Gb of less.

That's the state of PC gaming :runaway: I constantly get ripped for gaming on a Mac but my hardware config is well in the top 10% of PCs.
 
There's scaling back and there's off the scale. There are folks running PCs with 512mb RAM and 44% have 4Gb or less. 48% have, at most, a dual core CPU, 26% have a display with a 1366x768 resolution screen and two-thirds have a video card with 2Gb of less.

That's the state of PC gaming :runaway: I constantly get ripped for gaming on a Mac but my hardware config is well in the top 10% of PCs.

You're drawing a false equivalency between the steam hardware survey stats and a typical modern gaming PC (defining a modern gaming PC as a PC that is used on a semi regular basis to play modern games).

Just because a PC is registered on Steam does not mean it's being used for, or the owner has any interest in playing modern games on it. In fact basic common sense tells us that anyone running a PC with 512MB or 1GB of system RAM is clearly not at all interested in running moderns games on it - because they can't. Therefore expecting games developers to limit their games to run of such setups would be silly.

Anyone that wants to play modern games on a PC can do so for a very low price or on a several years old gaming PC as long as it wasn't really low end when new. I'm not talking about console level gaming here, just playing the latest games at some combination of settings at a playable frame rate. Anyone incapable of doing that obviously isn't interested in modern games (on PC at least) so why expect games developers to cater to them?

Much better to make the consoles the lowest common denominator but then scale the easily scalable elements (resolution, draw distance, texture/effect resolution etc...) down for slower PC's. It's not as if there is a massive barrier to entry for PC gamers to play at scaled down console settings. Anyone that isn't running the hardware to do so simply isn't interested in the first place.

EDIT: Just to pick out a few of the stats you list out there, what makes you think a PC with 4GB system memory, a (modern) dual core CPU, 2GB of graphics memory and (of all things) a lower resolution display would be incapable of playing all modern games at reduced settings? I'm running 2GB of video memory myself and am perfectly capable of running at higher than consoles settings in every game, never mind lower.
 
That's why PC games scale. I see no reason for consoles to be held back by slower PC's when those slower PC's can simply play a scaled back version of the game.
If an algorithm can't be scaled, it can't be used. That's the issue with compute. Will the PC target be able to support the compute-based algorithms of future games? If not, will devs want to develop such compute-based solutions and alienate some of their audience? But TBH I don't think that's an issue as the consoles provide a stable, dependable income. It's better to make good on the consoles and alienate the bottom end of the PC space than than support the bottom end and have a significantly inferior experience to ones rivals on console.
 
If an algorithm can't be scaled, it can't be used. That's the issue with compute. Will the PC target be able to support the compute-based algorithms of future games? If not, will devs want to develop such compute-based solutions and alienate some of their audience? But TBH I don't think that's an issue as the consoles provide a stable, dependable income. It's better to make good on the consoles and alienate the bottom end of the PC space than than support the bottom end and have a significantly inferior experience to ones rivals on console.

I agree, that's why I don't think PC's are going to be holding back the consoles. Not all PC's in the Steam hardware survey (not even a majority) are capable of matching the console experience, but the barrier to entry for a PC that is (even if it's at a lower resolution), is so low that anyone who's serious about playing modern games on PC will either already have that capability or be able to upgrade to it pretty easily. There's really no need to cater to people running pre Fermi/GCN1.0 hardware (the compute capable architectures) as if that's what they're still running then they're probably not all that interested in the latest console ports anyway. And if they are, the upgrade path is cheap and easy.

I could understand the argument for catering to slower PC's if we were talking about needing to shell out a couple of grand for high end hardware just to match the console experience (and thus it being unavailable to most PC gamers) but that's clearly not the case.
 
You're drawing a false equivalency between the steam hardware survey stats and a typical modern gaming PC (defining a modern gaming PC as a PC that is used on a semi regular basis to play modern games).

Actually I don't know what a "modern gaming PC" is specification-wise and I reference the Steam Hardware Survey because it is, to the best of my knowledge, the most up to date reference point for PC hardware used to game. Steam has, of last year, 75 million accounts, so would seem fairly representative of PC used for gaming and certainly the number of individual accounts vastly outnumbers the best selling PC titles of all time. Perhaps there is a massive fringe (eh?) of "modern gaming PC" owners who aren't on Steam and aren't being counted.

Just because a PC is registered on Steam does not mean it's being used for, or the owner has any interest in playing modern games on it. In fact basic common sense tells us that anyone running a PC with 512MB or 1GB of system RAM is clearly not at all interested in running moderns games on it - because they can't. Therefore expecting games developers to limit their games to run of such setups would be silly.

What is a modern game? Or are people who don't play the latest DirectX 11 3D games not gamers? Because I've spent a ridiculous amount of time playing Game Dev Tycoon, Pixel Piracy and Sunless Sea, two of which launched in the last six months.

EDIT: Just to pick out a few of the stats you list out there, what makes you think a PC with 4GB system memory, a (modern) dual core CPU, 2GB of graphics memory and (of all things) a lower resolution display would be incapable of playing all modern games at reduced settings? I'm running 2GB of video memory myself and am perfectly capable of running at higher than consoles settings in every game, never mind lower.

There you go with your "modern games" again, but no I didn't claim this. I merely used this as an example of PC hardware specifications that very likely present an obstacle to wide scale propagation of GPU compute - which was Mark Cerny's statement in the quote a few posts back.
 
Actually I don't know what a "modern gaming PC" is specification-wise

I thought I was pretty clear on that, i.e. "a PC that is used on a semi regular basis to play modern games" Considering your point was that modern (console) games would be held back by PC's then surely it's only relevant to consider PC's that are actually being used to play modern games? And obviously not all of the PC's in the Steam hardware survey fall into that category - because they can't. So acting as if 512MB (of system RAM) PC's are going to somehow hold back modern console games is silly.

It's a bit circular but it makes sense. Console developers only need to concern themselves with that portion of the market that is interested in playing modern console ports and the portion of the market that's interested in playing those types of games would have considerably more capable hardware than the average steam user survey machine - because necessity would dictate that they have to. And if they don't already, then upgrading to that capability is a cheap and simple affair.

and I reference the Steam Hardware Survey because it is, to the best of my knowledge, the most up to date reference point for PC hardware used to game. Steam has, of last year, 75 million accounts, so would seem fairly representative of PC used for gaming and certainly the number of individual accounts vastly outnumbers the best selling PC titles of all time.

Surely the fact that - as you say - the number of Steam accounts vastly exceed the highest selling PC games many many times over tells you that not all of those PC's are being used for regular console style gaming. If they were then we'd be seeing PC sales easily outstripping console sales. Therefore equating the specs of those PC's with the market console developers should be targeting with their latest games seems silly.

Perhaps there is a massive fringe (eh?) of "modern gaming PC" owners who aren't on Steam and aren't being counted.

This makes no sense. Why would they not be on Steam? Clearly Steam is a superset of all PC's that have ever been used for gaming with Steam. That superset is going to include all those "modern gaming PC's" which are being used today to play console ports. The sales of console ports on PC support the fact that it's a much smaller market (call it a fringe if you will) that are interested in playing console ports on PC. That's the market console devs should be targeting, not the full 75 million steam users, most of whom by their inaction in upgrading their PC's have demonstrated they're not interested in modern console ports.

What is a modern game? Or are people who don't play the latest DirectX 11 3D games not gamers? Because I've spent a ridiculous amount of time playing Game Dev Tycoon, Pixel Piracy and Sunless Sea, two of which launched in the last six months.

In this context I'm defining a modern game as any multi-platform game released on the current generation of consoles that are concerned with pushing the tech envelope. Those are obviously the games you are referring to when saying that old/slow PC's will be holding back console games. Of course people who play much older games or lower tech indie games are still gamers. But if that's what they play exclusively on PC then they're clearly of no interest to developers producing console games that push the tech envelope. Because any PC gamer that's interested in those types of games will either already have the hardware, or be willing to purchase the hardware capable of running them.

There you go with your "modern games" again, but no I didn't claim this. I merely used this as an example of PC hardware specifications that very likely present an obstacle to wide scale propagation of GPU compute - which was Mark Cerny's statement in the quote a few posts back.

Compute (to a degree at least comparable to the consoles) has been a capability of all modern discrete GPU's released in the last 3 years (and longer in Nvidia's case). I don't see why you think PC's older than this should be considered a barrier to wide scale propagation of compute. Compute is going to be used (as a performance enhancing feature) in games that are aiming for high end graphics. What makes you think anyone with a PC that old as any interest in current generation graphics intense console games?
 
pjbliverpool is using 'modern game' to mean 'console quality game that'd be using compute'. If the game is a 2D sidescroller or what-have-you, compute won't be a requirement*. The moment a game is getting sophisticated enough to need compute, it's audience will be, in all likelihood, PC gamers with a more capable machine. pjbliverpool's main point being that the Steam HW survey covers a very large userbase of different styles of gamers. A game targeting the Steam audience doesn't has to be accessible to every Steam subscriber, and doesn't need to limit itself to the lowest common denominator.

* save some bizarre fringe cases like fluid dynamics, but the second point covers that
 
Back
Top