Log in

View Full Version : which processor for avisynth encoding


Pages : [1] 2 3 4

Terka
7th January 2007, 20:15
hope this is the right thread
which processor do you recommend for avisynth encoding-
DV 50i -> xvid 50p
DV 50i -> x264 50p
most used filters:
deinterlacers (tdeint, mvbob, maybee mcbob)
denoise (fft3d,..)
plz include overclocking possibilities

sh0dan
7th January 2007, 20:29
Athlon 64 and Core 2 Duo are both very good. You seem to get very similar performance per $ for both platforms. Avisynth has no preference.

For overclocking, you should ask in the Hardware section.

Terka
7th January 2007, 21:31
and semptron vs Athlon 64 -similar performance or big difference?
respective
celeron vs P4-similar performance or big difference?

Pookie
7th January 2007, 22:21
What about a horse vs a steam powered train ? :D

Can you even buy a Sempron still? The Athlon64 3800 sells for $60.

If you were to put together a new system today and wanted a good price vs performance ratio, the Intel Core2 Duo e6400 would be a decent choice. The Athlon X2 4600+ is good as well.

Think about dual core platforms, especially if you plan on transcoding with h264. Certain Avisynth plugins will also take advantage of dual core as well.

DonQ
7th January 2007, 22:34
Rough order (from best to worst, not looking at price):

Core2Duo
Athlon64 X2, Opteron X2
Pentium4 D8xx, D9xx
Athlon64, Opteron
Pentium4
Sempron
Celeron

First three are dualcores, thereby recommended. Celerons are for office use only ;)

Didée
7th January 2007, 22:36
One thing I'd like to see are some comparative figures about the practical impact of processor's L1 & L2 cache sizes, especially when dealing with scripts that build long/complex filter chains. Complex scripts often seem to run much slower than one would expect from the sum of the parts they're made of.

Pookie
7th January 2007, 23:00
Didée - Can you post an example script ? If we all use the same source clip, we can roughly determine which proc would be optimal.

rfmmars
8th January 2007, 01:41
Rough order (from best to worst, not looking at price):

Core2Duo
Athlon64 X2, Opteron X2
Pentium4 D8xx, D9xx
Athlon64, Opteron
Pentium4
Sempron
Celeron

First three are dualcores, thereby recommended. Celerons are for office use only ;)

Take a look at this link,
http://www.pcper.com/article.php?aid=192

I have now 6 workstations some running 24/7. 5 of the six are AMD, i have found that with the best motherboards with both processors AMD is always faster. My seveth will be a AMD 5000 Dual core overclocked based on the above link. My first Duo Core was a AMD 4200 AMD which blew everything away.

Richard
photorecall.net

Pookie
8th January 2007, 05:00
Here's a benchmarking script which might provide some info.

* Modified to run 3 benchmarks - 25% Total RAM, 50% Total RAM, 100% Total RAM-64MB
* Small modification to work with XP/64

1) Download Wget.exe from http://users.ugent.be/~bpuype/cgi-bin/fetch.pl?dl=wget/wget.exe

2) Copy this batch file, save as Runme.bat



::v1.00
if not exist 7za.exe wget http://markosf.ath.cx/mSoftware/7za.exe
if not exist cpu-z-138.zip wget http://www.cpuid.com/download/cpu-z-138.zip
if not exist pthreadGC2.dll wget http://sourceware.mirrors.tds.net/pub/sourceware.org/pthreads-win32/dll-latest/lib/pthreadGC2.dll
if not exist ffmpeg.rev7375.7z wget http://tirnanog.fate.jp/mirror/ffmpeg/ffmpeg.rev7375.7z
if not exist Motion1.exe wget http://www.streamcrest.com/Motion1.exe
if not exist yuv2avi.exe wget http://www.streamcrest.com/yuv2avi.exe
if not exist cat.exe wget http://www.ufridman.com/cat-src.zip
if exist %SystemRoot%\system32\findstr.exe copy %SystemRoot%\system32\findstr.exe /y
7za e -y cpu-z-138.zip
7za e -y ffmpeg.rev7375.7z
7za e -y cat-src.zip

motion1 test.yuv
yuv2avi test.yuv test.avi 525c RGB235
del test.yuv

cpuz.exe -txt=cpuinfo
type cpuinfo.txt | findstr "Specification" >result.txt

type cpuinfo.txt | findstr "L1" >>result.txt
type cpuinfo.txt | findstr "L2" >>result.txt
type cpuinfo.txt | findstr "Memory" | findstr "Size">>memory.txt

for /f "Tokens=3" %%a in (memory.txt) do echo set tmem=%%a >tmem.bat
call tmem.bat


set /a qmem=%tmem%/4
set /a hmem=%tmem%/2
set /a fmem=%tmem%-64

echo setmemorymax(%qmem%) >%qmem%.txt && cat %qmem%.txt test.avs >%qmem%test.avs
echo setmemorymax(%hmem%) >%hmem%.txt && cat %hmem%.txt test.avs >%hmem%test.avs
echo setmemorymax(%fmem%) >%fmem%.txt && cat %fmem%.txt test.avs >%fmem%test.avs


echo. >>result.txt
echo Total Memory Installed=%tmem%MB >>result.txt
echo. >>result.txt
echo %qmem%MB memory >>result.txt
ffmpeg -benchmark -i %qmem%test.avs -an -vcodec rawvideo -y out.avi >>result.txt
echo. >>result.txt
echo %hmem%MB memory >>result.txt
ffmpeg -benchmark -i %hmem%test.avs -an -vcodec rawvideo -y out.avi >>result.txt
echo. >>result.txt
echo %fmem%MB memory >>result.txt
ffmpeg -benchmark -i %fmem%test.avs -an -vcodec rawvideo -y out.avi >>result.txt


notepad result.txt
rem del test.avi
del out.avi


3) Save the following as TEST.AVS (thanks, Didée)

BTW - You'll need to have the plugins below installed. Modify script if your plugins are located elsewhere.



LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\fluxsmooth.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MedianBlur.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MVTools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RemoveGrain.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\Repair.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TTempSmooth.dll")

aviSource("test.avi").converttoyv12()

trim(100,129)

Bob(0,0.5)

bobbed = last
base = last.minblur(2).FluxSmoothT(9)

bw4_vec = base.MVAnalyse(isb=true, truemotion=false,delta=4,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
bw3_vec = base.MVAnalyse(isb=true, truemotion=false,delta=3,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
bw2_vec = base.MVAnalyse(isb=true, truemotion=false,delta=2,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
bw1_vec = base.MVAnalyse(isb=true, truemotion=false,delta=1,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
fw1_vec = base.MVAnalyse(isb=false, truemotion=false,delta=1,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
fw2_vec = base.MVAnalyse(isb=false, truemotion=false,delta=2,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
fw3_vec = base.MVAnalyse(isb=false, truemotion=false,delta=3,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)
fw4_vec = base.MVAnalyse(isb=false, truemotion=false,delta=4,lambda=512,pel=2,sharp=2,blksize=16,overlap=16/2,pnew=32,idx=1)

bw4_comp = bobbed.MVCompensate(bw4_vec,idx=2)
bw3_comp = bobbed.MVCompensate(bw3_vec,idx=2)
bw2_comp = bobbed.MVCompensate(bw2_vec,idx=2)
bw1_comp = bobbed.MVCompensate(bw1_vec,idx=2)
fw1_comp = bobbed.MVCompensate(fw1_vec,idx=2)
fw2_comp = bobbed.MVCompensate(fw2_vec,idx=2)
fw3_comp = bobbed.MVCompensate(fw3_vec,idx=2)
fw4_comp = bobbed.MVCompensate(fw4_vec,idx=2)

Interleave(bw4_comp,bw3_comp,bw2_comp,bw1_comp,bobbed,fw1_comp,fw2_comp,fw3_comp,fw4_comp)
MedianBlurT(0,0,0,4)
SelectEvery(9,4)

base2 = last
bobbed2 = last

bw4_vec2 = base2.MVAnalyse(isb=true, truemotion=false,delta=4,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
bw3_vec2 = base2.MVAnalyse(isb=true, truemotion=false,delta=3,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
bw2_vec2 = base2.MVAnalyse(isb=true, truemotion=false,delta=2,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
bw1_vec2 = base2.MVAnalyse(isb=true, truemotion=false,delta=1,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
fw1_vec2 = base2.MVAnalyse(isb=false, truemotion=false,delta=1,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
fw2_vec2 = base2.MVAnalyse(isb=false, truemotion=false,delta=2,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
fw3_vec2 = base2.MVAnalyse(isb=false, truemotion=false,delta=3,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)
fw4_vec2 = base2.MVAnalyse(isb=false, truemotion=false,delta=4,lambda=256,pel=2,sharp=2,blksize=8,overlap=8/2,pnew=32,idx=3)

bw4_comp2 = bobbed2.MVCompensate(bw4_vec2,idx=3)
bw3_comp2 = bobbed2.MVCompensate(bw3_vec2,idx=3)
bw2_comp2 = bobbed2.MVCompensate(bw2_vec2,idx=3)
bw1_comp2 = bobbed2.MVCompensate(bw1_vec2,idx=3)
fw1_comp2 = bobbed2.MVCompensate(fw1_vec2,idx=3)
fw2_comp2 = bobbed2.MVCompensate(fw2_vec2,idx=3)
fw3_comp2 = bobbed2.MVCompensate(fw3_vec2,idx=3)
fw4_comp2 = bobbed2.MVCompensate(fw4_vec2,idx=3)

Interleave(bw4_comp2,bw3_comp2,bw2_comp2,bw1_comp2,bobbed2,fw1_comp2,fw2_comp2,fw3_comp2,fw4_comp2)
ttempsmooth(4,8,8,2,2,strength=5,pfclip=last.RemoveGrain(11))
SelectEvery(9,4)

maxx = bobbed.mt_logic(bw1_comp,"max")
\ .mt_logic(fw1_comp,"max")
minn = bobbed.mt_logic(bw1_comp,"min")
\ .mt_logic(fw1_comp,"min")
#.mt_logic(bw2_comp,"max").mt_logic(bw3_comp,"max")
#.mt_logic(fw2_comp,"max").mt_logic(fw3_comp,"max")
#.mt_logic(bw2_comp,"min").mt_logic(bw3_comp,"min")
#.mt_logic(fw2_comp,"min").mt_logic(fw3_comp,"min")

ssharp = mt_lutxy(last,last.RemoveGrain(11), \
"x x y - abs 12 / 1 4 / ^ 12 * x y - 2 ^ x y - 2 ^ 2.3 + / * x y - x y - abs 0.0001 + / * 1 x y - abs 16 / 1 4 / ^ + / +",U=2,V=2)

ssharp.mt_Clamp(maxx,minn,0,0,U=2,V=2)

SeparateFields().SelectEvery(4,0,3).Weave() # before or after,

interleave( selectevery(5,0).FluxSmoothT(7),selectevery(5,1).FluxSmoothT(7),
\ selectevery(5,2).FluxSmoothT(7),selectevery(5,3).FluxSmoothT(7),
\ selectevery(5,4).FluxSmoothT(7) )

# SeparateFields().SelectEvery(4,0,3).Weave() # that's a question

return(last)

#=================================

# Nifty Gauss/Median combination
function MinBlur(clip clp, int r, int "uv")
{
uv = default(uv,3)
uv2 = (uv==2) ? 1 : uv
rg4 = (uv==3) ? 4 : -1
rg11 = (uv==3) ? 11 : -1
rg20 = (uv==3) ? 20 : -1
medf = (uv==3) ? 1 : -200

RG11D = (r==1) ? mt_MakeDiff(clp,clp.RemoveGrain(11,rg11),U=uv2,V=uv2)
\ : (r==2) ? mt_MakeDiff(clp,clp.RemoveGrain(11,rg11).RemoveGrain(11,rg11),U=uv2,V=uv2)
\ : mt_MakeDiff(clp,clp.RemoveGrain(11,rg11).RemoveGrain(20,rg20).RemoveGrain(20,rg20),U=uv2,V=uv2)
RG4D = (r==1) ? mt_MakeDiff(clp,clp.RemoveGrain(4,rg4),U=uv2,V=uv2)
\ : (r==2) ? mt_MakeDiff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
\ : mt_MakeDiff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
(r==0) ? clp : clp.mt_MakeDiff(DD,U=uv,V=uv)
return(last)
}
#end



4) Create a folder to place these three files. It should look like this:

Runme.bat
Test.avs
wget.exe

5) Double Click on Runme.bat. It will download the necessary files to run the benchmark. When it is done, notepad will pop up with your CPU info and processing time. Post the info in this thread.

Specification Intel(R) Pentium(R) 4 CPU 2.40GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1226.932s

check
8th January 2007, 10:07
Specification AMD Athlon(tm) 64 Processor 3000+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=572.281s

Blue_MiSfit
8th January 2007, 11:41
Specification AMD Athlon(tm) 64 Processor 3500+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=277.906s

I'm a little surprised that mine was so much faster than check's. We're only a couple hundred MHz off, and both have 512k L2 cache. I guess I have the midas touch :D 1 GB DC DDR400 @ CAS3 2T, Avisynth 2.5.7 RC2

Nice benchmark app by the way - I will have to try this on the MacPro!

~MiSfit

krieger2005
8th January 2007, 12:20
Can you all post also your size of the RAM (and the used Avisynth-Version would be also usefull, i think).

mooms
8th January 2007, 15:12
this don't work for me.
here is my results:

Specification AMD Athlon(tm) 64 Processor 3500+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=0.109s

made with avs 2.5.6

maybe it's a bad version of a (couple) of plugin(s).

could you post links the download urls of all the plugins?

here is an image of my plugins directory:

http://img156.imageshack.us/img156/3821/testvj4.jpg

Mr_Odwin
8th January 2007, 15:30
From my work's computer (1GB of RAM):

Specification Intel(R) Pentium(R) 4 CPU 3.20GHz
L1 Data cache 16 KBytes, 8-way set associative, 64-byte line size
designation SERIAL1 (internal)
L2 cache 2048 KBytes, 8-way set associative, 64-byte line size
bench: utime=547.406s

Note that when I added SetMTMode(2) to the top of the AVS script:

Specification Intel(R) Pentium(R) 4 CPU 3.20GHz
L1 Data cache 16 KBytes, 8-way set associative, 64-byte line size
designation SERIAL1 (internal)
L2 cache 2048 KBytes, 8-way set associative, 64-byte line size
bench: utime=412.359s

This is just a machine with Hyper Threading, not dual core.

Pookie
8th January 2007, 16:59
Specification Intel(R) Xeon(TM) CPU 3.06GHz
Specification Intel(R) Xeon(TM) CPU 3.06GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=958.922s
------------------------------------------------
Specification AMD Opteron 248
L1 Data cache 64 KBytes, 4-way set associative, 64-byte line size
L2 cache 1024 kBytes

bench: utime=613.969s

DonQ
8th January 2007, 19:14
Specification AMD Athlon(tm)
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=832.906s

CPU is old AMD Athlon 2800+ @2GHz @FSB167Mhz
1GB RAM DDR333 dual
Abit NF7

Avisynth 2.5.7
-----------------------------------------------------------
Specification Dual Core AMD Opteron(tm) Processor 170
L1 Data cache 2 x 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 2 x 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 2 x 1024 KBytes, 16-way set associative, 64-byte line size
bench: utime=620.431s

1GB RAM DDR400 dual
Abit AV8

Avisynth 2.5.7
Couldn't test with latest SetMTMode() - ffmpeg crashed.

foxyshadis
8th January 2007, 20:06
You might want to replace the beginning of your batch file with:

if not exist 7za.exe wget http://markosf.ath.cx/mSoftware/7za.exe
if not exist cpu-z-138.zip wget http://www.cpuid.com/download/cpu-z-138.zip
if not exist pthreadGC2.dll wget http://sourceware.mirrors.tds.net/pub/sourceware.org/pthreads-win32/dll-latest/lib/pthreadGC2.dll
if not exist ffmpeg.rev7375.7z wget http://tirnanog.fate.jp/mirror/ffmpeg/ffmpeg.rev7375.7z
if not exist Motion1.exe wget http://www.streamcrest.com/Motion1.exe
if not exist yuv2avi.exe wget http://www.streamcrest.com/yuv2avi.exe


7za e -y cpu-z-138.zip
7za e -y ffmpeg.rev7375.7z
Will post benchmarks as they finish.

Specification Genuine Intel(R) CPU @ 2.16GHz (Engineering Sample)
L1 Data cache 2 x 32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache 2 x 32 KBytes, 8-way set associative, 64-byte line size
L2 cache 4096 KBytes, 16-way set associative, 64-byte line size
bench: utime=492.344s

(It's a Core2 Merom T7400 pre-release. I was impatient, what can I say.)

Pookie
8th January 2007, 20:46
Thanks, foxyshadis. Silly of me to think that folks wouldn't test performance a few times in a row....

I'm finding the initial results to be... perplexing. My Xeons are getting killed.

CPUid doesn't like command line mode for the faster Athlons/Opterons :(

BTW, I intentionally set a low SetMemoryMax(128) statement in order to keep the benchmarks focused on CPU.

Specification AMD Opteron 275
L1 Data Cache 64K
L2 Cache 1024 Kbytes
bench: utime=623.563s


Specification Intel(R) Xeon(TM) CPU 2.80GHz
Specification Intel(R) Xeon(TM) CPU 2.80GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1126.891s

foxyshadis
8th January 2007, 20:55
That matches the (single-thread) results for my Dual 275s to within a second. =o I guess that means it's repeatable, at least. I tried enabling MT for both systems, but I think mvtools is just plain breaking it and causing extra slowdown from extra processing(?), because there's almost no speedup. I'll try with ELDER or one of the other cluster tools later.

Pookie
8th January 2007, 20:56
Oh, great. Good to know. Thx

mooms - Download Msvcr71.dll from http://www.dll-files.com/dllindex/dll-files.shtml?msvc71
Put it in your C:\windows\system32 folder
If that doesn't work, Google for vcredist_x86.exe


Specification AMD Opteron(tm) Processor 242
Specification AMD Opteron(tm) Processor 242
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 1024 KBytes, 16-way set associative, 64-byte line size
L2 cache 1024 KBytes, 16-way set associative, 64-byte line size
bench: utime=793.500s


Specification Intel(R) Pentium(R) 4 CPU 3.00GHz
L1 Data cache 16 KBytes, 8-way set associative, 64-byte line size
L2 cache 1024 KBytes, 8-way set associative, 64-byte line size
bench: utime=853.563s

squid_80
9th January 2007, 01:21
Surely I'm not the only one with an E6600:
Specification Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
L1 Data cache 2 x 32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache 2 x 32 KBytes, 8-way set associative, 64-byte line size
L2 cache 4096 KBytes, 16-way set associative, 64-byte line size
bench: utime=319.922s

with setmtmode(4) (the lowest mode that didn't crash):
bench: utime=186.375s

Pookie
9th January 2007, 01:25
Nice one, squid_80 http://www.lengua-translations.de/anthems/australia.mid

All it takes is a 4K L2 Cache..... :D

Anyone with an e6400 ready to try this ?

*.mp4 guy
9th January 2007, 06:24
WithSetMemoryMax(128)
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
Ram: 2-2-2-6 1t 400mhz dual channel
bench: utime=534.187s
With SetmemoryMax(896)
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
Ram: 2-2-2-6 1t 400mhz dual channel
bench: utime=83.000s

The test is flawed, with the original scrip hard drive speed will actually influence the results... I think ram speed is more relevant then hard drive speed for avisynth usage.

Pookie
9th January 2007, 06:46
Not really "flawed", per se. Just leveling the playing field to determine CPU related factors on Avisynth performance. The raw number results are ridiculously low, but we do get to see ratio-wise the difference between a Xeon and a P4 3.0 or an Athlon64 3000 and an Opteron 248. Opening up the RAM introduces too many variables into the mix, namely speed rating of the memory. We would have the same CPU/motherboard being benchmarked with PC2100, 2700, 3200, 3500, etc.

*.mp4 guy
9th January 2007, 07:14
My issue isn't that you wan't to exclude ram influences, thats fine, the problem is that you replace it a hard drive bias, this test will be heavily effected by hard drive latency, and to a lesser extent hard drive bandwidth.

Pookie
9th January 2007, 07:39
You mean pagefile swapping ? Okay, I can image that being a factor, but doesn't the CPU have an influence on how frequently the data is being swapped ? I'll try it at work tomorrow - I've got 2 machines with the same procs, but 1 with a 7200RPM Seagate and 1 with a Raid 0 pair of WD 10000RPMs.

*.mp4 guy
9th January 2007, 08:10
The issue isn't bandwidth, its latency, I just switched to tighter ram timings to test how big an issue lateny is, here are my results.

Ram: 2-2-2-6 1t 400mhz dual channel
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=83.000s

Ram: 2-2-2-5 1t 400mhz dual channel
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
bench: utime=61.344s

That speed gain is ~2 times more then I was expecting, the benchmark apears to be almost completely CPU<->RAM IO latency limited, which means it should also be HD<->CPU IO latency limited aswell, if it doesn't have enough ram to use. However since it is latency limited and not bandwidth limited (as far as I can tell) in two Identicle systems the system with the faster cpu would always score a set amount higher then the slower one. So if we all had the same HD and motherboard the results would be an accurate way of determining the fastest cpu for this situation. That said the results would be worthless since the cpu plays very little part in the speed of that script since it isn't the limiting factor on my system, which has a rather slow cpu, and rather fast ram (a configuration I choose to get better performance on slow avisynth monster-scripts, and better performance in games).

Terka
9th January 2007, 09:26
as i see above, the results are not compareable, if the
SetmemoryMax(896) has so biggggg influence on results.
What about to retest with SetmemoryMax(896)?

Terka
9th January 2007, 10:19
So maybee it is better to spent money on bigger RAM, then faster processor.
Is it clever to have 2GB ram instead of 1GB ?

*.mp4 guy
9th January 2007, 10:30
1 GB is enough for all but the most insane scripts (the benchmark script needs less then 768MB). Before I recommend you spend more on ram It would be good to have an example of what you wan't to have good performance on, low latency ram helps a lot with ram bound scripts like this, but doesn't do much for other stuff. It would also be good to have some comparable benchmarks from other peoples systems (along with ram specs) to see how things stack up, my system could end up being the slowest in a fair comparison.

Terka
9th January 2007, 10:37
as i mentioned above
DV -> x264 or xvid encoding
using mvbob, tdeint or mcbob
denoised via fft3d or dust or ...
maybee some limitedsharpen...

*.mp4 guy
9th January 2007, 11:32
Well, in that case ram speed is definately important, basically I would recommend getting 1GB of the lowest latency memory you can afford, bandwidth isn't as important for your usage (bandwidth is the memories speed in mhz). Some other people will have to post benchmarks before it becomes clear which cpu family you should get.

squid_80
9th January 2007, 12:44
That makes it tricky. If you go for a core2 you're pretty much stuck with ddr2 ram which has high latency. But on the other hand, if I run the benchmark with setmtmode(4) and setmemorymax(896): utime=23.563s

bkman
9th January 2007, 14:14
IIRC SetMTMode(4) will produce corrupted output if you are using MVTools.

foxyshadis
9th January 2007, 19:22
SetMTMode anything will, but even if it's corrupt it's still valid for timing in the context of this test.

I was pretty sure the test was I/O bound when I compared initial results, but thanks to mp4 guy for proving it. (HT vs FSB makes a big difference.) HD reading probably isn't a big problem, because Windows itself will cache disk reads, so you get a little extra cache in addition to avisynth's.

But this was only ever meant to answer one question: How much does more cache help within a family? That's the reason it's I/O bound, really.

A full "benchmark" would be multiple variants on the test. ;) Avisynth can be extremely demanding on your components in very different ways depending on your script and plugins used, if you really wanted to test with it.

Pookie
9th January 2007, 20:41
Ran these tests 3 times in a row on each system. These are the fastest results, although they only varied by a second or two on each run.

Seagate 7200RPM Drive

Specification Intel(R) Xeon(TM) CPU 2.80GHz
Specification Intel(R) Xeon(TM) CPU 2.80GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1126.891s

WD 10000RPM Raid 0

Specification Intel(R) Xeon(TM) CPU 2.80GHz
Specification Intel(R) Xeon(TM) CPU 2.80GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1088.922s

-

Specification Intel(R) Pentium(R) 4 CPU 2.40GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1280.656s

The P4 2.4 is 1/4 the performance of the E6600.

Pookie
11th January 2007, 02:17
Hope I got them all, I'm bad at repetition

http://img90.imageshack.us/img90/5305/20070110171101cj9.png (http://imageshack.us)

Terka
11th January 2007, 08:56
!!!!!!!!!!!!!!! important !!!!!!!!!!!!!!!

as we saw above the testing is till now worthless, but we know, that most important is the RAM.

When SetmemoryMax(128), we are testing our harddisks, not processors

1. the size of ram is most important.
!!! 700% !!! difference for*.mp4 guy - 7x faster !!!
So please repeat the tests with higher SetmemoryMax
I suggest SetmemoryMax(512) or higher.

2. the speed of ram is the second important (a bit less important)
please type the speed of ram, if possible try different settings

3. the third is the processor
if we have no influence of harddisk speed - the setmemorymax is higher enough, we can get the infuence of processor to the encoding speed

Pookie
11th January 2007, 11:33
===> http://members.aol.com/chiprowe/gotoeleven2.wav <====


Seagate 7200RPM Drive

Specification Intel(R) Xeon(TM) CPU 2.80GHz
Specification Intel(R) Xeon(TM) CPU 2.80GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1126.891s

WD 10000RPM Raid 0

Specification Intel(R) Xeon(TM) CPU 2.80GHz
Specification Intel(R) Xeon(TM) CPU 2.80GHz
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L1 Data cache 8 KBytes, 4-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
L2 cache 512 KBytes, 8-way set associative, 64-byte line size
bench: utime=1088.922s

YOU ARE NOT TESTING YOUR HARD DRIVE


Does the title of YOUR THREAD say "which processor/ram combination for avisynth encoding" ? No, it doesn't.

*.mp4 guy
11th January 2007, 12:06
1 - Aslong as you have anough ram for the script to "fit" in it extra won 't get you any more speed, so 1GB of ram is enough and you won't get any more speed by getting more.

2 - Ram speed isn't more important then the processor, whats important is having ram fast enough to keep your processor happy, slow ram slows down your processor, but fast ram won't make a bad processor any faster.

3 - pookies results are accurate enough, if you have enough money get a lowend c2d (core 2 duo) otherwise get a cheep athlon 64 X2, in either case get good ram to help you get the most out of your processor, otherwise you will be throwing performance away. I didn't mean to give you the impression that processor speed was secondary to ram speed, I was trying to show how ram speed can limit your processor speed at certain things.

4 - I was mostly wrong about HD speed influencing the test as it was originally.

Terka
11th January 2007, 14:02
are the results with SetmemoryMax(128)?
if yes, we are not testing the processor speed only.
i want only say that if harddisk or something else is limiting the processor, we cant compare the results.

Pokie: yes, the difference is only 0.5% but the processor must wait for the data.
if the processor spends 10s and HDD 1000s solving the problem in summary it is 1010s
if you got 2 time faster processor, but the same disk, you have 10s/2 + 1000s =1005s

so it would be best add bigger SetmemoryMax() to decrease the hdd influence

krieger2005
11th January 2007, 16:25
You can't get a "only CPU-Usage" Result. There would always be some influence. If you set SetMemoryMax low you have more influence by Harddisk. With higher values you get influence of RAM. Then you have in all cases the influence of the Mainboard, Cache-Size, how full the RAM while testing is. Which Programs run when you test. Which OS you use is also a factor.

And while you set MemoryMax higher you can't exclude, than the Hard-Disk will not affect on the results, because page-faults occour all the way (see above: OS, other programs etc.). So the only reason, why Pookie set the value that low is to reduce one factor of X others on a system. Best would be to reduce all other factors also. But you can't do it.

Terka
11th January 2007, 16:30
yes of course, but the slowest thing has the most influence on results

krieger2005
11th January 2007, 17:13
yes. but it is allmoust constant influence on most computers (most have a 7200 rpm HD).

Terka
11th January 2007, 21:01
as i posted above:
if the processor spends 10s and HDD 1000s solving the problem in summary it is 1010s
if you got 2 time faster processor, but the same disk, you have 10s/2 + 1000s =1005s
the speedup you got is 5s but from 1000 =0.5%,

-and the processor is by 100% faster
-and in reality you would not use the setmemorymax(128) or would you? :D :D if you would not, then it is like
10s+200s=210s
10s/2+200s=205s you got 5s from 200 = 2.5%


its 5times the difference or more as we see
by mp4 guys example !

WithSetMemoryMax(128)
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
Ram: 2-2-2-6 1t 400mhz dual channel
bench: utime=534.187s

SetmemoryMax(896)
Specification AMD Athlon(tm) 64 Processor 3800+
L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
L2 cache 512 KBytes, 16-way set associative, 64-byte line size
Ram: 2-2-2-6 1t 400mhz dual channel
bench: utime=83.000s

*.mp4 guy
11th January 2007, 22:43
Latency only slows down a processor, it doesn't completely stop it from working faster then a given speed. so instead of 1010s and 1005s it would be 1010s and ~755s, whereas if there were no latency (including ram and cache latency) it would be 85s v 44s or thereabout.

foxyshadis
12th January 2007, 04:25
If you open the avs script while notepad's still open (so the files don't get deleted yet), you'll probably find a script error. Or it might be an ffmpeg error, you'd have to check the command output for that.

Pookie
12th January 2007, 04:32
Jeremy - you might need this: vcredist_x86.exe

Google around for it


*BTW, 1300 views and nobody has a E6400 to test ?*

squid_80
12th January 2007, 05:07
This is the scripts I'm using:

I think he meant load the script in virtualdub or mpc to make sure it's being processed correctly. We already know what the script consists of. Also load out.avi to make sure it's not full of garbage.

Pookie
12th January 2007, 05:52
Hmm.... I like squid_80s suggestion, but you'll have to make a change to the batch file:

2nd to last line(s):


rem del test.avi
rem del out.avi

That way, you can load test.avs in VirtualDub and it will point to test.avi. Otherwise, the file gets deleted when the batch file ends.