Jump to content

Windows 10 Scheduler bug causes poor RyZen performance

If there are applications which will benefit from this fix, why complain.

My big deal is that I still don't get why people are complaining about how Ryzen is performing in games. It basically matches Broadwell, with double the cores (and threads, conversely) of a comparative i7 for basically the same price. Sure, it's not as good as Kaby Lake, but it definitely holds its own. This is why you don't ride a hype train so hard.

Check out my guide on how to scan cover art here!

Local asshole and 6th generation console enthusiast.

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, cj09beira said:

this video is a good watch,

 

It really isn't. It's a horrible video made by a massive AMD fanboys and I really don't understand how so many people can take him seriously. Just looking at his channel should be enough to set off an alarm bell. 

 

I've already gotten a warning because of this thread so I won't post what I really think of him, nor do I want to subject myself to the ear torture that is his videos. So believe what you want, but I think that video is garbage. 

Link to comment
Share on other sites

Link to post
Share on other sites

i wonder if ryzen is programmed as an acpi and correctly irq addressed

i think that would make it fall under irq9? which then the system (windows) would auto assign irq to work on demand

work finished it would release

Link to comment
Share on other sites

Link to post
Share on other sites

LAwLz  and Valentyn I was on the view that success for Ryzen only need to be in the 70 to 80% ball park of performance of Current intel chips within a 2 gen margin. Also AMD did try so hard to keep some stuff quiet that some companies had not yet had lots of time to figure it out. But I agree we likely own't see a 20% boost from a fix I suspect a 5 to 10% so yes intel will still for now dominate. What this does is offer a value for price. You can still hit 60FPS  with these chips just fine in many games with enough RAM and a good GPU. What this also could do is force intel to compete again with somebody besides it's own last gen chips. i hoenstly think that in and of itself is huge. AMDs likely chance to match or beat intel won't be until another gen I suspect or two but even if all it does is keep close nipping at intels heels thats good.

Link to comment
Share on other sites

Link to post
Share on other sites

21 hours ago, LegendKillerRG said:

Basically the real cores of threads aren't being used effectively but rather just spread workload onto all 16 threads.. isn't the extra thread meant to be so that it utilizes the cores more efficiently. Like a core is split into two thread and one handle 50% while the other thread handle 50%, and at 25% for two threads is like 25% on one core..

"The real cores of threads"??? A thread is simply a piece of a program that is executing independently of other pieces. A core is a physical subcomputer (really a full computer) in a microprocessor. A thread is abstract, it does not actually exist. It is a way of talking and thinking about how to execute things simultaneously. 

Understanding why Windows sucks requires understanding the real difference between a physical core and a logical core. The first step is to understand that a "logical core" is not something that windows makes up, it is hardware enabled (Intel's version of this is known as HyperThreading).

 

We can think of multiple physical cores as having more than one processor per processor. I know that sounds weird, but that's actually what it is, sort of. When you have a 4 core processor, what you really have is 4 independent and complete processors with their own control units that are all driven by a central control unit. This allows multiple instructions from multiple programs to execute simultaneously, like actually simultaneously. This is an important distinction to make, because as we are about to find out, Simultaneous MultiThreading (aka SMT, or as Intel calls it, HyperThreading) isn't really simultaneous at all.

 

Now that we know that we have multiple cores per chips, it would be nice to know what those cores look like in the context of SMT. A core has an instruction pipeline which feeds the core instructions on what to do. It also has a small amount of addressable memory, known as a register file. The register file contains the following things:
 

  • General Purpose Registers
  • Stack Pointer(s)
  • Program Counter(s)
  • State register(s)

It is this register file which is interesting in the context of SMT. What we do to allow Simultaneous MultiThreading is to have more than one (but usually only two), distinct and separate, register files per core. This allows us to do a very fast "context switch". In a core without SMT, a context switch involves the following steps, in order:

  1. Finishing the execution of the current instruction.
  2. Stopping the execution of the current program.
  3. Saving the machine state, including the contents of the register file to memory.
  4. Loading the new program (or a previous programs saved state) into the register file.
  5. Starting execution of the new program.

This is very time consuming, and if it happens frequently (which it does, every time you move the mouse, type on the keyboard, or make an OS call) will significantly reduce the amount of time that your processor spends actually running a program. Beyond that, memory accesses are the single slowest thing a computer can do. To fix this, we use SMT. A context switch in a core with SMT enabled follows the following steps, in order:

  1. Finishing the execution of the current instruction.
  2. Stopping the execution of the current program.
  3. Switch to the other register file.
  4. Begin execution of the new program.

We can see a few things from this. The first, and most important for our purposes is that SMT does not involve executing two programs simultaneously. It comes close, as we will learn about in the following paragraphs, but two instructions from separate programs are never executing simultaneously on a single core. The second thing we can learn is that a naive implementation of SMT will only speed things up if the program we are switching to is already loaded into the second register file. There is an easy way past this, however that is out of the scope of this discussion.


So why is Simultaneous MultiThreading called "Simultaneous MultiThreading" if there's really nothing simultaneous about it? Well, the answer is fairly simple (although implementation of the answer can be quite complex. The two programs running on the single core can compete for system resources, and the OS may grant access to such based on how badly the program needs it, in a way of speaking. In this way, the programs can execute "simultaneously" in the sense that one program does not have to finish or willingly release resources for another program to use it. This could be naively accomplished by alternating which instructions execute. First from the first program, then from the second, then from the first, and so on.

 

So how does all of this relate to the problem in question? Well, it has to do with how AMD's architects have chosen to implement SMT (or lack thereof if they are just virtualizing it). Windows developers didn't fully read the processor datasheets that they were given, and they failed to write a kernel that could properly manage system resources on the new chips. 

P.S. I know I gave windows a hard time. It's all in good jest, computing systems are overwhelmingly complex and problems like this, or worse, should be expected when any new product this complicated is released.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Honestly I suspect many hyped things cause they desperately wanted the Return of the old days of Athlons and Phenoms and such that out preformed similar intel chips. They are like people wanting a return to the mythical golden age of the 50s when all was right with the world. So when it doesint come they don't see the good because it's not the golden age they dreamed of.

Link to comment
Share on other sites

Link to post
Share on other sites

16 hours ago, CTR640 said:

Microbugs 10 at it again, nerfing Zen so it makes Zen look shit compared to Crinchtel.

Microsoft haven't done anything to hurt AMD. Microsoft are implementing fixes as its completely new to Microsoft, you can't just expect everything to work flawlessly straight away. The OS needs to support it just as much as the hardware says it supports the OS (support goes both ways). Its likely AMD didn't give any detail to Microsoft about the new processor until official launch due to leaks etc

System Specs:

CPU: Ryzen 7 5800X

GPU: Radeon RX 7900 XT 

RAM: 32GB 3600MHz

HDD: 1TB Sabrent NVMe -  WD 1TB Black - WD 2TB Green -  WD 4TB Blue

MB: Gigabyte  B550 Gaming X- RGB Disabled

PSU: Corsair RM850x 80 Plus Gold

Case: BeQuiet! Silent Base 801 Black

Cooler: Noctua NH-DH15

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

oh lol, this looks like bulldozer issue all over again. Couldnt tell the core module from the "core" itself... Geez MS, really?

 

For those who dont know. Bulldozer is a bastardization between Clustered Integer and SMT... Thus, "CMT" or "clustered multi threading"....

 

Aka, it works sort of like SMT, but not quite. It works sort of like Clustered Integer, but not quite...

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, LAwLz said:

Source?

~6% is a lot more in line with what I would expect from this, and it's a long way from the 10-20% claimed in this thread.

Sorry, I was mistaken, it was 3%, I remembered wrong (read the conclusion):

http://www.techspot.com/review/1348-amd-ryzen-gaming-performance/page5.html

From the 16 games tested we see that disabling SMT on the 1800X resulted in 3% more performance for the average frame rate and just 1% for the minimum.

This is the source I read it in :P Anyway, I said "up to 20%" because check out the difference in this particular title:

1080_Warhammer.png

13 hours ago, LAwLz said:

Sorry, quoted the wrong part of your post. What I meant to say was that there are programs which performs worse with hyper threading enabled too. At least they used to back when I was looking into it with Ivy Bridge.

 

I can't find any article looking into it later than Ivy Bridge, but here is the article.

3 out of 8 benchmarks performed better with hyperthreading off. The benefit was much smaller than the drawbacks though so it was still much better to leave it on.

I don't know how Intel has tweaked hyperthreading over the years, but the article makes it sound like they are the ones responsible for making sure it performed like it should, not the OS vendors.

The worst part of it is that it just shouldn't be like that, AMD's implementation of SMT seems more advanced than Intel's and scales better seeing as the 1800X outperforms the 6900K in Cinebench for half the price with the same amount of cores and basically the same IPC (of course this is an ideal situation but you get the overall point, even if the 1800X isn't better in every task than the 6900X or 5960X it still is an amazing achievement that it even is competitive considering the value)...

13 hours ago, LAwLz said:

Any reviewer worth a damn will use high performance mode, and I don't buy the argument that a lot of reviewers didn't know because AMD was telling the reviewers to uses high performance mode.

 

How do you know? I am looking into it, and I can't find any evidence that that's what is actually going on. I see a lot of people guessing that it's the issue, but nobody with any evidence to support that theory.

It could be a human error, since the recommendation for reviewers was to do a clean W10 install before benchmarking, some people could just forget about that setting as it usually isn't the most crucial one when setting up the PC, I mean some reviews show as Ryzen had decent gaming performance and other ones show it fail miserably, there is no consistency in those reviews as they vary wayy to much from one to another and that strongly suggests an issue with the platform configuration in my opinion

13 hours ago, LAwLz said:

Why? That wasn't the case with Intel back in the Ivy Bridge era, and I don't see why it should be true here.

I don't have any proof for that sadly, we'll just have to wait and see whether the promised fixes really eliminate the issue... This was merely my personal estimation but I genuinely believe the actual performance increase is going to be very close to what I mentioned. At least I hope so which should force Intel to either improve more per generation or lower their current prices ^_^

CPU: AMD Ryzen 7 5800X3D GPU: AMD Radeon RX 6900 XT 16GB GDDR6 Motherboard: MSI PRESTIGE X570 CREATION
AIO: Corsair H150i Pro RAM: Corsair Dominator Platinum RGB 32GB 3600MHz DDR4 Case: Lian Li PC-O11 Dynamic PSU: Corsair RM850x White

Link to comment
Share on other sites

Link to post
Share on other sites

55 minutes ago, Morgan MLGman said:

Sorry, I was mistaken, it was 3%, I remembered wrong (read the conclusion):

http://www.techspot.com/review/1348-amd-ryzen-gaming-performance/page5.html

Now that's very in line with what I am expecting.

Bulldozer got a 1-2% increase, and this should be affected a bit more (since more resources are shared between each thread) so 3% seems about right. Of course there might be some extreme cases but that's not what you should base your expectations on.

So my guess is that IF (quite a big if at that) Microsoft says that their scheduler is not optimized for Ryzen and releases a patch for it, you should probably expect between 0 and 3% higher performance in applications. Expect more than that and you will probably be disappointed.

 

1 hour ago, Morgan MLGman said:

of course this is an ideal situation but you get the overall point, even if the 1800X isn't better in every task than the 6900X or 5960X it still is an amazing achievement that it even is competitive considering the value...

Absolutely. I am in no way trying to say Ryzen is bad or anything. In fact, I will be building a new computer with a 1700X soon so obviously I think it is good and I am hoping that it will get even better in the future.

I would not bet on it getting better though. I am buying it because I am satisfied with the performance it gets today. If I weren't then I would not buy it.

 

1 hour ago, Morgan MLGman said:

I don't have any proof for that sadly, we'll just have to wait and see whether the promised fixes really eliminate the issue...

Hold on. Microsoft has not promised any "fixes". They have not even confirmed if there is anything to fix yet. We might get something, but nothing is promised or guaranteed yet.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, LAwLz said:

It really isn't. It's a horrible video made by a massive AMD fanboys and I really don't understand how so many people can take him seriously. Just looking at his channel should be enough to set off an alarm bell. 

 

I've already gotten a warning because of this thread so I won't post what I really think of him, nor do I want to subject myself to the ear torture that is his videos. So believe what you want, but I think that video is garbage. 

So your argument for him being wrong is that he is a fanboy? Congrats! I saw the whole video and this wasn't a video from a fanboy i dont agree with the conclusion too much but the rest of the video is great.

 

From the productivity benchmarks we know the cores are fast. What we are seeing in games is not a core problem so it has to be something in data reaching the cores and the most obvious bottleneck there is the pipe between ccxs. If windows knows of this it will not shuffle threads as much from one ccx to the other

Link to comment
Share on other sites

Link to post
Share on other sites

definitely going to keep an eye on this, if you look at that warhammer benchmark you gain 10 fps by turning off SMT while the 7700k vs the 7600k with HT gains 12 more fps... now im not saying if windows fixes this bug ryzen is magically going to get an extra 22 fps in every game but more then just 3% factor in the lower min frames you see in other games like GTA5 or BF1 and things get really interesting

 

good enough max fps and a more stable performance is what i was looking for out of ryzen with the added performance outside of gaming, they have time skylake-x doesn't come out till the fall 

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, LAwLz said:

Now that's very in line with what I am expecting.

Bulldozer got a 1-2% increase, and this should be affected a bit more (since more resources are shared between each thread) so 3% seems about right. Of course there might be some extreme cases but that's not what you should base your expectations on.

So my guess is that IF (quite a big if at that) Microsoft says that their scheduler is not optimized for Ryzen and releases a patch for it, you should probably expect between 0 and 3% higher performance in applications. Expect more than that and you will probably be disappointed.

 

Absolutely. I am in no way trying to say Ryzen is bad or anything. In fact, I will be building a new computer with a 1700X soon so obviously I think it is good and I am hoping that it will get even better in the future.

I would not bet on it getting better though. I am buying it because I am satisfied with the performance it gets today. If I weren't then I would not buy it.

 

Hold on. Microsoft has not promised any "fixes". They have not even confirmed if there is anything to fix yet. We might get something, but nothing is promised or guaranteed yet.

Dont get a 1700X, get the 1600x -> better price per $ for sure. OR Wait for X299 or ZEN+, ZEN+ is according to rumors, going to ship in 11 months or so

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Prysin said:

Dont get a 1700X, get the 1600x -> better price per $ for sure. OR Wait for X299 or ZEN+, ZEN+ is according to rumors, going to ship in 11 months or so

1600X? Do you mean the 6 core version that will launch later? No thanks. I want more cores.

Not going to wait another 11 months either. I have been waiting for this computer for more than half a year already. I bought a 6800K build July 14 (almost 7 months ago). It didn't work when I got the parts (most likely because the BIOS on my board hadn't been updated to support Broadwell-E). Then I had to RMA things back and fourth several times before I finally gave up and just sent everything back (I did that August 4).

Link to comment
Share on other sites

Link to post
Share on other sites

Seems if you want the best gaming experience and don't want to wait for Microsoft to update Windows 10, just use 7 and get a 300% increase in Minimums in Deus Ex Mankind Divided

 

 

5950X | NH D15S | 64GB 3200Mhz | RTX 3090 | ASUS PG348Q+MG278Q

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, LAwLz said:

1600X? Do you mean the 6 core version that will launch later? No thanks. I want more cores.

Not going to wait another 11 months either. I have been waiting for this computer for more than half a year already. I bought a 6800K build July 14 (almost 7 months ago). It didn't work when I got the parts (most likely because the BIOS on my board hadn't been updated to support Broadwell-E). Then I had to RMA things back and fourth several times before I finally gave up and just sent everything back (I did that August 4).

July 14th to Aug 4th? you quit too fast!!! 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, LAwLz said:

1600X? Do you mean the 6 core version that will launch later? No thanks. I want more cores.

Not going to wait another 11 months either. I have been waiting for this computer for more than half a year already. I bought a 6800K build July 14 (almost 7 months ago). It didn't work when I got the parts (most likely because the BIOS on my board hadn't been updated to support Broadwell-E). Then I had to RMA things back and fourth several times before I finally gave up and just sent everything back (I did that August 4).

Then get the 1700. PCPer OCd it to 4GHz quite easily iirc and was beating 1800x. And it costs $170 less (in US). 

The ability to google properly is a skill of its own. 

Link to comment
Share on other sites

Link to post
Share on other sites

Quote

The testing you see here was a response to many days of comments and questions to our team on how and why AMD Ryzen processors are seeing performance gaps in 1080p gaming (and other scenarios) in comparison to Intel Core processors. Several outlets have posited that the culprit is the Windows 10 scheduler and its inability to properly allocate work across the different logical and physical cores of the Zen architecture. As it turns out, we can prove that isn't the case at all. -Ryan Shrout

https://www.pcper.com/reviews/Processors/AMD-Ryzen-and-Windows-10-Scheduler-No-Silver-Bullet

 

smtoff4workers.png

SMT OFF, 8 cores, 4 workers

 

smton8workers.png

SMT ON, 16 (logical) cores, 8 workers

Quote

With SMT on, we see a very different result. The scheduler is clearly loading only one thread per core. This could only be possible if Windows was aware of the 2-way SMT (two threads per core) configuration of the Ryzen processor. Do note that sometimes the workload will toggle around every few seconds, but the total loading on each physical core will still remain at ~%50. I chose a workload that saturated its thread just enough for Windows to not shift it around as it ran, making the above result even clearer.

 

Quote

What began as a simple internal discussion about the validity of claims that Windows 10 scheduling might be to blame for some of Ryzen's performance oddities, and that an update from Microsoft and AMD might magically save us all, has turned into a full day with many people chipping in to help put together a great story. The team at PC Perspective believes strongly that the Windows 10 scheduler is not improperly assigning workloads to Ryzen processors because of a lack of architecture knowledge on the structure of the CPU.

 

In fact, though we are waiting for official comments we can attribute from AMD on the matter, I have been told from high knowledge individuals inside the company that even AMD does not believe the Windows 10 scheduler has anything at all to do with the problems they are investigating on gaming performance. 

 

oh ... xD

sorry bois, AMD ain't gonna magically fix the Zen arch

Link to comment
Share on other sites

Link to post
Share on other sites

Still think this need for Ryzen to instantly destroy intel is silly. Fact is if it can play games well and do jobs well seems like they are worth some to invest.

Link to comment
Share on other sites

Link to post
Share on other sites

So the Windows 10 scheduler works 100% as intended and optimally for Ryzen. It is not only SMT aware but it also keeps threads on the same CCX as it should, and it has been doing this without any updates. 

 

There is a high latency penalty for switching between the CCX but this can not be fixed because it is a hardware issue. 

 

Who would have thought that it wasn't an issue? Oh, that would be me... 

Because I don't read /r/AMD (full of lies and misinformation) and I don't blindly believe rumors. Hope that is a lesson to you all. 

 

Now lets see how the next excuse will be "programs just need to be updated!" like I predicted earlier. 

It is the exact same excuses and false hope Bulldozer fans used. 

Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, LAwLz said:

So the Windows 10 scheduler works 100% as intended and optimally for Ryzen. It is not only SMT aware but it also keeps threads on the same CCX as it should, and it has been doing this without any updates. 

 

I would like them to investigate why Windows 7 is apparently offering much better gaming performance compared to 10. 

 

I wonder if 7 gives RyZen NUMA scheduling instead. 

5950X | NH D15S | 64GB 3200Mhz | RTX 3090 | ASUS PG348Q+MG278Q

 

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Valentyn said:

 

I would like them to investigate why Windows 7 is apparently offering much better gaming performance compared to 10. 

 

I wonder if 7 gives RyZen NUMA scheduling instead. 

But does Windows 7 really perform better? It was one random guy on a forum that posted a benchmark which showed better performance on Windows. That does not confirm anything really. 

It might just have been a fluke (windows 10 is not exactly known for being consistent, just ask Luke where the browser battery tests are) or an incorrect test. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, LAwLz said:

But does Windows 7 really perform better? It was one random guy on a forum that posted a benchmark which showed better performance on Windows. That does not confirm anything really. 

It might just have been a fluke (windows 10 is not exactly known for being consistent, just ask Luke where the browser battery tests are) or an incorrect test. 

Ignoring reddit, more and more people on overcloker forums and YouTube are popping up with better results on Windows  7.

 

I'd like a proper publication like PCper to investigate so we can see what's actually going on, or if it's just hopeful spiel. 

 

Also windows 10 being inconsistent is also an issue, and does the dual CCX on R7 RyZen play into that to some extent? 

 

Guru3d tested their 1080ti on RyZen 4ghz and 5960x 4.3ghz at 1080p. Some games Haswell was around 2 fps ahead, on others nearly 40fps, with Ti worse than normal 1080 in some on RyZen. 

 

The massive variance between games and even reviewers still annoys me. 

 

For instance in GTA V in 4K Linus 1080ti got x2 the minimum Fps compared to the 7700k, in fact better mins on all gpus than Intel. 

This is despite RyZen being rather average and below Kabylake at 720p and 1080p in GTA V. 

 

5950X | NH D15S | 64GB 3200Mhz | RTX 3090 | ASUS PG348Q+MG278Q

 

Link to comment
Share on other sites

Link to post
Share on other sites

Is my feeling just that of a simple PC gamer and PC enthusiast who doeisnt fawn over the olden days of AMD?

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×