View Full Version : AVSMeter 3.0.9.0
Pages :
1
2
3
[
4]
5
6
7
8
9
Groucho2004
4th November 2018, 12:52
I have some troubles running AVSMeter64 with -gpu switch.
I have GPU-Z running in the background but I get 0% usage
Does GPU-Z itself show correct values?
tormento
4th November 2018, 18:06
Does GPU-Z itself show correct values?
Shame on me.
GPU-Z was set to integrated Intel since a previous test.
Groucho2004
6th November 2018, 16:33
v2.8.7
Error handling improvements
Cosmetics
Changed some error messages
Groucho2004
22nd January 2019, 03:14
v2.8.8
Timer tweaks (less overhead)
Re-phrased some error messages
Refactoring
FranceBB
22nd January 2019, 10:49
Thank you. ^_^
Groucho2004
23rd January 2019, 21:35
v2.8.9
Updated documentation
Updated dates (2018 -> 2019)
StvG
12th February 2019, 17:25
Is that error "Script runtime is too short for meaningful measurements" expected? The script is:BlankClip(length=20000,pixel_type="yuv420p10")
videoh
12th February 2019, 17:33
Try a higher number of frames:
BlankClip(...,length=10000) # for example
Probably the default of 240 is too small.
StvG
12th February 2019, 17:58
But I have "length=20000". Even with one/two "0" more, I have the same error. Also with width=1920*2,height=1080*2, no changes.
Groucho2004
12th February 2019, 18:09
But I have "length=20000". Even with one/two "0" more, I have the same error. Also with width=1920*2,height=1080*2, no changes.
With my i5 2500K CPU I get ~4,500,000 fps with that script. 20,000 frames @ 4,500,000 fps is about 4.4 ms. Minimum runtime in AVSMeter is 500 ms. Try more zeros (but not too many, max value for length is 2^31 - 1 or 2,147,483,647).
videoh
12th February 2019, 18:09
Sorry, missed your length parameter. :scared:
Maybe BlankClip is just so fast that even a very large length won't matter.
Groucho2004 can probably enlighten us further.
wonkey_monkey
12th February 2019, 19:12
blankclip constructs a single blank frame on startup and just returns a pointer to it each time. It doesn't actually do anything per frame - not even calling env->NewVideoFrame() - so it's super fast. Same with colorbars, although that has a parameter to disable the framestore:
colorbars(staticframes = false)
Groucho2004
12th February 2019, 19:33
blankclip constructs a single blank frame on startup and just returns a pointer to it each time. It doesn't actually do anything per frame - not even calling env->NewVideoFrame() - so it's super fast. Same with colorbars, although that has a parameter to disable the framestore:
colorbars(staticframes = false)
Quite the difference:
colorbars(staticframes = x, pixel_type = "yv12").loop(10000).trim(0, 99999999)
staticframes = true
Frames processed: 314750000 (0 - 314749999)
FPS (min | max | average): 5811893 | 32190153 | 30993818
Process memory usage (max): 23 MiB
Thread count: 9
CPU usage (average): 23.6%
Time (elapsed): 00:00:10.155
staticframes = false
Frames processed: 287810 (0 - 287809)
FPS (min | max | average): 7370 | 28961 | 28340
Process memory usage (max): 23 MiB
Thread count: 9
CPU usage (average): 23.5%
Time (elapsed): 00:00:10.156
Groucho2004
23rd February 2019, 03:14
v2.9.0
Added Veselin Georgiev's libcpuid (again) for better detection of some CPU features (such as number of physical/logical cores of contemporary CPUs)
Minor other fixes
Refactoring
wonkey_monkey
6th March 2019, 18:50
If it doesn't exist already, would it be possible to add a switch to output seconds per frame instead of frames per second? It feels like it might be more useful, or at least differently useful, for benchmarking.
Groucho2004
6th March 2019, 19:39
If it doesn't exist already, would it be possible to add a switch to output seconds per frame instead of frames per second? It feels like it might be more useful, or at least differently useful, for benchmarking.There are two INI file options:
DisplayFPS=1
DisplayTPF=0
from the included documentation:
"DisplayFPS" (0 or 1)
If set to "1", frames/second is printed to the console.
"DisplayTPF" (0 or 1):
If set to "1", time/frame (in milliseconds) is printed to the console.
Edit: These two options are not mutually exclusive.
wonkey_monkey
6th March 2019, 19:48
I should never have doubted you. And I should have read the manual.:stupid::thanks:
Groucho2004
8th May 2019, 10:14
v2.9.1
Fixed an error reporting bug
More accurate memory usage measurements
Limit performance data section in log/csv files to 10000 entries
Groucho2004
31st May 2019, 21:34
v2.9.2
Fixed wrong AVISYNTH_INTERFACE_VERSION
Updated dates in some messages
LouieChuckyMerry
13th June 2019, 13:48
Thanks again for AVSMeter, Groucho2004 :thanks: and I've a question (which will most likely highlight my ignorance ;) ). Under "Features" it states '"Running" scripts with virtually no overhead...', which I kinda-sorta understand. What I wonder is if "running" multiple scripts simultaneously with AVSMeter would change the output statistics, like running multiple non-multithreaded real scripts simultaneously does? Let me try again: If I "ran" three scripts in a row with AVSMeter--Script A, Script B, and ScriptC--then ran the three scripts simultaneously with AVSMeter, would the statistics for the three pairs of log files--Script A alone and Script A simultaneously, Script B alone and Script B simultaneously, Script C alone an Script C simultaneously--be the same? I need more coffee...
Groucho2004
13th June 2019, 18:09
What I wonder is if "running" multiple scripts simultaneously with AVSMeter would change the output statistics, like running multiple non-multithreaded real scripts simultaneously does? Let me try again: If I "ran" three scripts in a row with AVSMeter--Script A, Script B, and ScriptC--then ran the three scripts simultaneously with AVSMeter, would the statistics for the three pairs of log files--Script A alone and Script A simultaneously, Script B alone and Script B simultaneously, Script C alone an Script C simultaneously--be the same? I need more coffee...
First of all, AVSMeter only allows a single instance by default. If you want to run multiple instances you have to enable that in avsmeter.ini.
How much multiple instances of AVSMeter affect the statistics for each instance depends on how demanding each instance is. If one instance already eats up most of the CPU cycles then the other instances will of course be heavily affected. It also depends on the process priority for each instance. Also, if you mess around with thread affinity, things get even more complicated.
Lastly, if the Windows thread scheduler has a bad day, the CPU cycles may go wild and do silly things. :D
StainlessS
13th June 2019, 18:59
Not just depend upon CPU, hard drive usage (seeking etc) would likely also play a significant part, probably other stuff too.
Not a good idea anyway (assuming you want reasonable results).
Groucho2004
14th June 2019, 12:29
There's now a 45 minute (!) tutorial for AVSMeter on youtube.
https://www.youtube.com/watch?v=RxXP0oNJh4Q
Thanks Andrew Swan!
LouieChuckyMerry
15th June 2019, 14:35
Groucho2004 and Bender, er, StainlessS: Thanks very much for the answers (and Happy Saturday!). I'll stick with one instance at a time so that I'm the only silly thing in the room.
LouieChuckyMerry
15th June 2019, 23:33
Back for more answers--still Happy Saturday!--and thank you for your patience :) . I'm trying to understand just how to use AVSMeter to, hopefully, improve encoding speed in AviSynth+ x86 on a Windows 7 x64 quad-core setup. I'm testing different "SetMemoryMax()" and "PreFetch()" combinations with the script:
SOURCE INFORMATION HERE
SetMemoryMax(xxxx)
SetFilterMTMode("Default_MT_Mode",2)
SMDegrain(TR=3,ThSAD=600,RefineMotion=True,Plane=0,Chroma=False,n16=True,n16_Out=True)
FastLineDarkenMod4()
ConvertToDoubleWidth()
F3KDB(Y=100,Cb=100,Cr=100,GrainY=0,GrainC=0,Input_Mode=2,Output_Mode=2)
ConvertFromDoubleWidth()
PreFetch(x)
and I'm unclear what to make of the fact that a trim test with "SetMemoryMax(0)", which I think results in the default memory amount (a number I can't discern from the Wiki), and "PreFetch(5)" (which gave better results than 6, 7, or 8 in earlier tests without any "SetMemoryMax()" line) "run" with AVSMeter results in:
[Runtime info]
Frames processed: 1130 (0 - 1129)
FPS (min | max | average): 0.392 | 272826 | 9.702
Process memory usage (max): 1157 MiB
Thread count: 21
CPU usage (average): 61.6%
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+. Any elucidation is much appreciated.
Groucho2004
16th June 2019, 00:06
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+.I do not understand this part -> "when actually run in AviSynth+".
gonca
16th June 2019, 02:18
Back for more answers--still Happy Saturday!--and thank you for your patience :) . I'm trying to understand just how to use AVSMeter to, hopefully, improve encoding speed in AviSynth+ x86 on a Windows 7 x64 quad-core setup. I'm testing different "SetMemoryMax()" and "PreFetch()" combinations with the script:
SOURCE INFORMATION HERE
SetMemoryMax(xxxx)
SetFilterMTMode("Default_MT_Mode",2)
SMDegrain(TR=3,ThSAD=600,RefineMotion=True,Plane=0,Chroma=False,n16=True,n16_Out=True)
FastLineDarkenMod4()
ConvertToDoubleWidth()
F3KDB(Y=100,Cb=100,Cr=100,GrainY=0,GrainC=0,Input_Mode=2,Output_Mode=2)
ConvertFromDoubleWidth()
PreFetch(x)
and I'm unclear what to make of the fact that a trim test with "SetMemoryMax(0)", which I think results in the default memory amount (a number I can't discern from the Wiki), and "PreFetch(5)" (which gave better results than 6, 7, or 8 in earlier tests without any "SetMemoryMax()" line) "run" with AVSMeter results in:
[Runtime info]
Frames processed: 1130 (0 - 1129)
FPS (min | max | average): 0.392 | 272826 | 9.702
Process memory usage (max): 1157 MiB
Thread count: 21
CPU usage (average): 61.6%
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+. Any elucidation is much appreciated.
You do realize that the effects of an encoder are not factored in.
The 2.99 fps when run in windows is probably the result of the encoder.
Groucho2004
16th June 2019, 03:21
The 2.99 fps when run in windows"when run in windows"???
I kinda understand now that Chucky is comparing apples and oranges but the terminology you guys are using makes no sense.
Natty
16th June 2019, 07:01
I do not understand this part -> "when actually run in AviSynth+".
maybe - when actually encoding
gonca
16th June 2019, 11:24
"when run in windows"???
I kinda understand now that Chucky is comparing apples and oranges but the terminology you guys are using makes no sense.
Sorry
I should have written "run in Windows", with quotes, indicating that it really is being run in an encode workflow.
I was just trying to figure out what the op was referring to.
Apologies for confusing the issue
Groucho2004
16th June 2019, 11:48
Sorry
I should have written "run in Windows", with quotes, indicating that it really is being run in an encode workflow.
I was just trying to figure out what the op was referring to.
Apologies for confusing the issue
No need to apologise. Apparently I'm very bad at decoding ambiguous statements. I'm like a kitchen robot with speech control. If you don't give me clear commands I'll beat you with the pan instead of making fried eggs.
ASVTut
16th June 2019, 17:48
There's now a 45 minute (!) tutorial for AVSMeter on youtube.
https://www.youtube.com/watch?v=RxXP0oNJh4Q&t=1208s
Thanks Andrew Swan!
Thanks for linking to it, Groucho! Just one thing - your link is to about 20 minutes into the tutorial. Trimming the URL to https://www.youtube.com/watch?v=RxXP0oNJh4Q fixes that. Otherwise, keep up the good work, man. :)
Groucho2004
16th June 2019, 17:55
Just one thing - your link is to about 20 minutes into the tutorial.D'oh. Fixed, thanks for pointing it out.
LouieChuckyMerry
17th June 2019, 00:06
I do not understand this part -> "when actually run in AviSynth+".
Thanks for your patience and apologies for the confusion. It seems I should've typed "when actually encoded with AviSynth+" (or please correct me if that's wrong).
You do realize that the effects of an encoder are not factored in.
The 2.99 fps when run in windows is probably the result of the encoder.
I do now (and thanks) ;) .
maybe - when actually encoding
Yes, thank you.
And now that I'm a little less clueless, any suggestions for converting the AVSMeter results into improved encoding speed with AviSynth+? Around five years ago--geez, time flies--I used AVSMeter to find the most efficient memory settings for SEt's AviSynth MT, but I'm having trouble doing the same for AviSynth+.
With no "SetMemoryMax()" line in the script, "PreFetch(5)" (on my quad-core, 16GB RAM setup) achieves better encoding speed than "PreFetch(1-4 or 6-8)". Under "SetMemoryMax" in the AviSynth wiki, it states:
In Avisynth+ this limit for default Memory Max is 1024MB for 32 bits and 4096MB on the x64 version. DefaultMemoryMax = minimum(physical_memory / 4, secondary_memory_max_limit)
which leads me to think that I'm limited to 1024MB given that I'm using AviSynth+ x86. Is this the case?
Groucho2004
17th June 2019, 19:51
@LouieChuckyMerry
A couple of questions before going deeper:
Why are you not using AVS+ 64 bit?
What is the frame size of your source?
LouieChuckyMerry
17th June 2019, 23:12
@LouieChuckyMerry
A couple of questions before going deeper:
Why are you not using AVS+ 64 bit?
What is the frame size of your source?
1) I very recently began looking into AviSynth+ x64 but haven't yet had enough free time to track down all the necessary x64 plugins-filters for my script templates.
2) 1920x1080.
Groucho2004
17th June 2019, 23:27
any suggestions for converting the AVSMeter results into improved encoding speed with AviSynth+? Around five years ago--geez, time flies--I used AVSMeter to find the most efficient memory settings for SEt's AviSynth MT, but I'm having trouble doing the same for AviSynth+.
With your script, SetMemoryMax() of about 1000 - 2000 should be sufficient. Apart from that, try various values for prefetch() and also check if adding/removing "avstp.dll" in your plugin directory makes a difference. With avstp.dll present you can probably reduce the number of threads you pass to prefetch().
Lastly, maxing out the CPU usage doesn't necessarily mean it's faster and/or more efficient.
It's usually a trial and error process. AVSMeter is your friend.
LouieChuckyMerry
19th June 2019, 01:21
With your script, SetMemoryMax() of about 1000 - 2000 should be sufficient. Apart from that, try various values for prefetch() and also check if adding/removing "avstp.dll" in your plugin directory makes a difference. With avstp.dll present you can probably reduce the number of threads you pass to prefetch().
Lastly, maxing out the CPU usage doesn't necessarily mean it's faster and/or more efficient.
It's usually a trial and error process. AVSMeter is your friend.
Thanks, Groucho2004, and indeed AVSMeter is my friend. I'll run tests with "SetMemoryMax()" between 1000 and 2000--do you happen to know the default value; I can't discern it from the AviSynth+ wiki--and various "PreFetch()" values. And I'll again try to successfully use avstp.dll (about four years ago I tried to incorporate it into my workflow but couldn't, due to frequent, obvious artifacts that looked like frost on a windowpane and were more prevalent during action scenes; hopefully updated filters-plugins have rectified this). About the only thing I remember from my use of AVSMeter five years ago with SEt's AviSynth MT is that the highest CPU usage doesn't necessarily mean the highest encoding speed, but thanks for the reminder. I'm starting to think that figuring out AviSynth+ x64 would be a better use of my (currently limited) time...
Groucho2004
20th June 2019, 00:27
v2.9.3
- Added fftw library dependency check
- New ini setting: "DisableFFTWDLLWarning". See included documentation for more info.
- Removed some superfluous ini settings which are present as command line switches
- Cleaned up documentation
Groucho2004
7th July 2019, 11:24
v2.9.4
- Updated CPU extension flags
- Updated plugin type detection
Groucho2004
22nd July 2019, 10:00
v2.9.5
- Updated libcpuid (AMD Zen 2 support)
StainlessS
25th August 2019, 17:18
Carried on from this post in Groucho2004 Avisynth Stuff thread:- https://forum.doom9.org/showthread.php?p=1883115#post1883115
Modified from VoodooFX script
#clip = LWLibavVideoSource("C:\LagarithYV12.avi.lwi") # ssS: No idea if this works ie using named index, and not the clip name.
clip=LSMashvideoSource("1941 Flint Michigan Parade [Low, 360p].mp4")
clp = clip.ConvertToRGB24
a = clp.Trim(20,-30)+clp.Trim(2000,-30)
a = a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Added
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Ditto
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Ditto
return a # 96,000,000 frames ### Max possible frames = $7FFFFFFF, ~= 2,000,000,000
I just made script [EDIT: clip] a bit longer(96,000,000 frames).
Here results, Avs v2.60 standard is indeed well faster than AVS+, I cancelled AVS+ timing at about same time as v2.60 standard had finished, and avs+ estimate has still about 50 minutes remaining till complete.
It could stand a little bit of inverstigation.
https://i.postimg.cc/8P1LP7v5/Untitled-00.jpg (https://postimages.org/)
EDIT:
BlankClip(length=1000000000)
return Last
https://i.postimg.cc/c1RZsH7r/Untitled-00.jpg (https://postimages.org/)
manolito
25th August 2019, 17:50
Try a different video source filter... :rolleyes:
I have complained repeatedly about AVS+ being very slow with FFMS2 as well as with LWLibavVideoSource. No solution so far, but DSS2Mod is way faster with AVS+.
Groucho2004
25th August 2019, 18:16
v2.9.6
Updated libcpuid
If the script runtime is too short, the number of frames processed and runtime are displayed in addition to the warning.
Refactoring
Cosmetics
VoodooFX
25th August 2019, 18:38
Here results, Avs v2.60 standard is indeed well faster than AVS+, I cancelled AVS+ timing at about same time as v2.60 standard had finished, and avs+ estimate has still about 50 minutes remaining till complete.
It could stand a little bit of inverstigation.
I think you mixed up 50 minutes with 50 hours.
Look at my test, I didn't stopped AVS+, just took screenshot at ~same time when avs v2.6 finished. In my AVS+ test it had 12 hours left and it run ~5x faster than in your test.
For some reason on my test AVS+ run on all 4 cores, when yours on 2, AVS 2.6 is same - 1 core.
https://i.imgur.com/u2CW8d4.png
clip = LWLibavVideoSource("C:\LagarithYV12.avi.lwi")
clp = clip.ConvertToRGB24
a = clp.Trim(20,-30)+clp.Trim(2000,-30)
a = a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
return a
EDIT:
Thanks Groucho2004 for new version. Can something to be done for overwriting "ini" file when I comment out "AVSDLL=" with path to AVS+(it disappears) and uncomment empty "AVSDLL=" to work with default avs 2.6?
StainlessS
25th August 2019, 19:17
I think you mixed up 50 minutes with 50 hours.
Oops, yes indeed.
Groucho2004
25th August 2019, 19:49
Can something to be done for overwriting "ini" file when I comment out "AVSDLL=" with path to AVS+(it disappears) and uncomment empty "AVSDLL=" to work with default avs 2.6?There's currently no comment feature implemented for ini entries. I'll think about it.
VoodooFX
25th August 2019, 20:02
Try a different video source filter... :rolleyes:
I have complained repeatedly about AVS+ being very slow with FFMS2 as well as with LWLibavVideoSource. No solution so far, but DSS2Mod is way faster with AVS+.
I couldn't find any working link for DSS2Mod. Can you share it?
If I replace LWLibavVideoSource with BlankClip, AVS+ test goes down from ~12h to ~3h, still ~92 times slower(when takes ~3.7x more cpu load) than avs 2.6.
Groucho2004
25th August 2019, 20:35
I couldn't find any working link for DSS2Mod.
http://avisynth.nl/index.php/DSS2mod#Source_Filters
real.finder
25th August 2019, 22:41
I couldn't find any working link for DSS2Mod. Can you share it?
If I replace LWLibavVideoSource with BlankClip, AVS+ test goes down from ~12h to ~3h, still ~92 times slower(when takes ~3.7x more cpu load) than avs 2.6.
try put this line
SetFilterMtMode("LWLibavVideoSource",MT_SPECIAL_MT,true)
in the top of script and see if it get better speed
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.