- Joined
- Oct 2, 2004
- Messages
- 13,886 (1.84/day)
System Name | Dark Monolith |
---|---|
Processor | AMD Ryzen 7 5800X3D |
Motherboard | ASUS Strix X570-E |
Cooling | Arctic Cooling Freezer II 240mm + 2x SilentWings 3 120mm |
Memory | 64 GB G.Skill Ripjaws V Black 3600 MHz |
Video Card(s) | XFX Radeon RX 9070 XT Mercury OC Magnetic Air |
Storage | Seagate Firecuda 530 4 TB SSD + Samsung 850 Pro 2 TB SSD + Seagate Barracuda 8 TB HDD |
Display(s) | ASUS ROG Swift PG27AQDM 240Hz OLED |
Case | Silverstone Kublai KL-07 |
Audio Device(s) | Sound Blaster AE-9 MUSES Edition + Altec Lansing MX5021 2.1 Nichicon Gold |
Power Supply | BeQuiet DarkPower 11 Pro 750W |
Mouse | Logitech G502 Proteus Spectrum |
Keyboard | UVI Pride MechaOptical |
Software | Windows 11 Pro |
The better analogy would be GM's V8 cylinder deactivation. Fury X, in a lot of games, runs like a V4 because the graphics pipeline isn't saturated enough to fill all of the shaders. When enabling TSAA or other async workloads, it puts most of the shaders to work like a full V8.
My understanding is that Pascal doesn't actually do async but they fixed the scheduling problem so that Pascal can rapidly change task instead of waiting for the lengthy pipeline to clear. This change allows it to get a 5% performance boost where AMD sees 10%.
There's two things going on here: async shaders and scheduling. Scheduling involves interrupting the graphics queue to inject a compute task (Pascal does this). Async involves finding idle hardware an utilizing it (Pascal doesn't do this). Both are complex and both are important.
Edit: Don't believe me? Believe Anandtech:
Fast switching is not async. Async is simultaneous processing of two or more workloads at the exact same time. Everything else is pretending to be something it is not. The "idle" shaders is nonsense. Why R9 Fury starts to fly with heavy workload, especially with TSAA and other stuff is because instead of forcing TSAA within the existing rendering thread, making it longer and choking performance, it's actually running in parallel with the usual rendering thread. R9 Fury has the hardware grunt which has been underutilized for all this time. That's the whole point of async. And delivering sufficient compute performance via shaders is exactly the same as today. You simply need to have enough of them to process something. When you run out o them, performance starts to suffer. It has nothing to do with "idle" shaders. It's just utilization as we know it now. Except it's rather inefficient in D3D11 where shaders indeed idle, that's why they had to balance things perfectly depending on game trends and what kind of workloads are expected from game engines. With async, you can basically throw more of everything into a chip and it will perform better exponentially. For as long as the code is written to utilize it.