1 (edited by Nintendo Maniac 64 23-02-2016 09:03:52)

Topic: So why DOES "Auto" threads not give enough performance?

Many of us should know that "Auto" will not always give full performance and the solution in such cases is to manually set the thread count yourself.

Now I could maybe understand this for people with 6core/12thread CPUs, but even I with my measly dual-core Pentium G3258 (though admittedly overclocked to a not-at-all-measly 4.6GHz) need to manually set the threads to at least 7 (sometimes 9); if I leave it on "Auto" I will not get full performance with the settings I use.

So my question is simple - what is it that makes "Auto" perform inadequately?  If it's simply a case of "Auto" choosing an amount of threads that isn't enough for full performance, then I ask why doesn't "Auto" use even more threads?



It's not really something that gets in the way operationally, but it's been bothering me on a mental level for the last few hours...

Re: So why DOES "Auto" threads not give enough performance?

There was an issue with incorrect ffdshow buffers sizes in pre-rev.60 versions that led to stuttering at some "magic" number of threads. This's why changing it to some value other than "auto" helped in many cases. NOT because "auto" number of threads was not enough.

> with my measly dual-core Pentium G3258 (though admittedly overclocked to a not-at-all-measly 4.6GHz) need to manually set the threads to at least 7 (sometimes 9)

it just can't be true big_smile

3 (edited by Nintendo Maniac 64 23-02-2016 09:32:29)

Re: So why DOES "Auto" threads not give enough performance?

Chainik wrote:

There was an issue with incorrect ffdshow buffers sizes in pre-rev.60 versions that led to stuttering at some "magic" number of threads. This's why changing it to some value other than "auto" helped in many cases. NOT because "auto" number of threads was not enough.

I'm aware of this, but I just tried it again with 4.0.66 and I still don't get full performance with "Auto" which is what caused me to think about creating this thead.


Chainik wrote:

it just can't be true big_smile

Want me to take a video then showing performance between 7 threads and Auto and the SVP settings used?

It'll have to be from an off-screen camera for performance reasons though, and because I use a CRT you'll have to deal with raster scanning flicker and the like.  There will be audio from the video though because the sound pausing for a second while the video catches up is possibly the easiest way to tell that performance isn't full-speed.

Re: So why DOES "Auto" threads not give enough performance?

> Want me to take a video then?

I believe in numbers big_smile

If you take some script and run it through AVSMeter with different (increasing) number of threads you'll see that at some point performance (and CPU utilization) won't increase any more.
Assuming that we're talking about GPU acceleration = ON and FRC rate no more than 3x, for a dual core CPU this number can't be more than 5 threads.

5 (edited by Nintendo Maniac 64 23-02-2016 09:39:15)

Re: So why DOES "Auto" threads not give enough performance?

Chainik wrote:

Assuming that we're talking about GPU acceleration = ON and FRC rate no more than 3x, for a dual core CPU this number can't be more than 5 threads.

Yet 5 threads gives me worse performance than 7 threads... (5 threads performs similarly to "Auto")

And yes, GPU acceleration = ON and FRC rate is 3x.

If it makes any difference though, the video I'm testing with is a VP9 video which therefore cannot be decoded in hardware.

Re: So why DOES "Auto" threads not give enough performance?

In fact number of threads was one of the reasons for "Avisynth 2.5.8 SVP Edition".

Default Avisynth MT's threads scheduler is not optimal.
For example for 2x rate it gives the same performance for even number of threads:
1 thread = 2 threads,
3 threads = 4 threads,
and so on

Re: So why DOES "Auto" threads not give enough performance?

So does this mean that, even if I give video proof, you won't believe me? sad

Re: So why DOES "Auto" threads not give enough performance?

Look at the picture. It is my FPS measured with AVSMeter and latest version SVP4.
I have 4 threads CPU and Auto threads for it was 7. I see the maximum FPS is for threads=10. It is surprising for me because I see steps on diagram but they grouped by 3 not by 2 as was earlier: threads=1,2,3; threads=4,5,6; threads=7,8,9 and so on.

And yes. 7 threads is good enough value for threads=Auto. smile

Post's attachments

SVP4_FullHD_x3_threads.png, 14.28 kb, 481 x 384
SVP4_FullHD_x3_threads.png 14.28 kb, 561 downloads since 2016-02-23 

Re: So why DOES "Auto" threads not give enough performance?

> I have 4 threads CPU and Auto threads for it was 7.

actually it should be 9 according to the math from the sources

Re: So why DOES "Auto" threads not give enough performance?

Chainik wrote:

> I have 4 threads CPU and Auto threads for it was 7.

actually it should be 9 according to the math from the sources

Does that mean mine i5-6600 non-k should be on 5 threads and not 7 or 9 for smoothest videos and movies?

11 (edited by dlr5668 24-02-2016 17:31:13)

Re: So why DOES "Auto" threads not give enough performance?

TayyabKhalid wrote:
Chainik wrote:

> I have 4 threads CPU and Auto threads for it was 7.

actually it should be 9 according to the math from the sources

Does that mean mine i5-6600 non-k should be on 5 threads and not 7 or 9 for smoothest videos and movies?

More threads -> more memory required, more chances to crash, better cpu utilization. Stay with 7.

Re: So why DOES "Auto" threads not give enough performance?

I have an Core i7 4790K @ 4.7Ghz (Hyper-Threading Enabled), any suggestions as to what the optimal number would be? I think by testing it was somewhere between 15 and 19 with SVP 3+ but with SVP 4 I've left it on Auto so far with no issues.

Re: So why DOES "Auto" threads not give enough performance?

Blackfyre wrote:

with SVP 4 I've left it on Auto so far with no issues.

Really the only reason to manually set the amount of threads is if you're not getting full performance with "Auto" while you still have some headroom with regards to CPU utilization.

Re: So why DOES "Auto" threads not give enough performance?

Try this,
http://i.imgur.com/ikpJ29d.png
Balanced for fluidity whilst minimizing artifacts.
4790k @ 4.7GHz, GTX 770 @ 1320MHz
MadVR used as well. 1080p > 1440p 96Hz too. (Yay!)

You should try to OC your CPU some more and get a custom bios for your GPU.
http://www.simforums.com/forums/haswell … 46180.html

I'll give you my madVR settings if you want too. Make sure to enable smooth motion always or else you'll get frame drops though.
Often only one or two tweaks are required when using these configs on different hardware, more or less powerful.

15 (edited by Nintendo Maniac 64 03-03-2016 06:05:52)

Re: So why DOES "Auto" threads not give enough performance?

cookieboyeli wrote:

Try this

Uhhhh, wrong thread?

Nobody in here was having issues with SVP using too much CPU, rather it was just the opposite...

Re: So why DOES "Auto" threads not give enough performance?

Nintendo Maniac 64 wrote:
cookieboyeli wrote:

Try this

Uhhhh, wrong thread?

Nobody in here was having issues with SVP using too much CPU, rather it was just the opposite...

I get good usage with these settings on an i5 AND i7.

SVP has a limit, it won't use more and more and more if you keep giving it more powerful hardware. The settings top out. I know you're talking about efficiency of usage here with the threads and all, but I'm just saying I have zero problem running these settings on a range of hardware.

17 (edited by Nintendo Maniac 64 04-03-2016 04:30:04)

Re: So why DOES "Auto" threads not give enough performance?

I just realized something!

I said I was using 3x and the graph above assumed that 72 fps was real-time... but I'm using 3x with a 30 fps video, so in this case real-time needs to be 90 fps!


For reference, I run the following refresh rates for the following source video frame rates:

90Hz = 30 fps
96Hz = 24, 48 fps
100Hz = 20, 25, 50 fps
120Hz = 60 fps


cookieboyeli wrote:

I get good usage with these settings on an i5 AND i7.

...you do realize that "Auto" threads gives different amounts of threads on different CPUs, right?  Auto will give you more threads on a 4-thread CPU than it will on a 2-thread CPU.

I have reason to believe that, on my 2-thread CPU, Auto gives you 5 threads, so therefore it would be very likely that both of your CPUs are given at least 7 threads when using "Auto".  Considering the jump in performance that can be gotten by using 7 threads, it's no surprise that you are not seeing the performance bottleneck that I am seeing with "Auto".

Re: So why DOES "Auto" threads not give enough performance?

Nintendo Maniac 64 wrote:

I just realized something!

I said I was using 3x and the graph above assumed that 72 fps was real-time... but I'm using 3x with a 30 fps video, so in this case real-time needs to be 90 fps!


For reference, I run the following refresh rates for the following source video frame rates:

90Hz = 30 fps
96Hz = 24, 48 fps
100Hz = 20, 25, 50 fps
120Hz = 60 fps


cookieboyeli wrote:

I get good usage with these settings on an i5 AND i7.

...you do realize that "Auto" threads gives different amounts of threads on different CPUs, right?  Auto will give you more threads on a 4-thread CPU than it will on a 2-thread CPU.

I have reason to believe that, on my 2-thread CPU, Auto gives you 5 threads, so therefore it would be very likely that both of your CPUs are given at least 7 threads when using "Auto".  Considering the jump in performance that can be gotten by using 7 threads, it's no surprise that you are not seeing the performance bottleneck that I am seeing with "Auto".

0 is auto correct?

So if I'm using an 8 thread 4790k at 4.7GHz and going to 96Hz... what should auto be setting?
Maybe I'm looking at the wrong thing or setting the wrong thing, but under Thread Count here: https://www.svp-team.com/wiki/SVP:Technical_insights
it says I should be using CPU Threads * 1.8 = threads, which would be 14.4...

The setting I'm changing is just below GPU > id11.

Re: So why DOES "Auto" threads not give enough performance?

if I'm using an 8 thread 4790k at 4.7GHz and going to 96Hz... what should auto be setting?

probably it'll be something like (8*1.8) * ((96/24) / 2.5), but no more than 25

Re: So why DOES "Auto" threads not give enough performance?

I have an amd-6410 cpu 4 cores..how many threads i have to set?

Re: So why DOES "Auto" threads not give enough performance?

auto big_smile