Hi All,

I’ve restructured and make public code we had to do DSP CPU benchmarks. For 
developers a new tool called 'bench-llvm’ can be used to help find out the best 
compilation options for a given DSP program.

On Faust2 branch and assuming Faust/LLVM are correctly compiled an installed 
do, 

cd benchmark

make bench-llvm && sudo make install 

Then bench-llvm foo.dsp can be used to discover best compilation options, like 
for instance :

bench-llvm freeverb.dsp that gives :

Discover best parameters option
 -scal : 86.2888
 -vec -lv 0 -vs 4 : 176.712
 -vec -lv 0 -vs 8 : 202.025
 -vec -lv 0 -vs 16 : 215.681
 -vec -lv 0 -vs 32 : 212.01
 -vec -lv 0 -vs 64 : 217.916
 -vec -lv 0 -vs 128 : 206.906
 -vec -lv 0 -vs 256 : 149.128
 -vec -lv 0 -vs 512 : 153.923
 -vec -lv 1 -vs 4 : 162.558
 -vec -lv 1 -vs 8 : 201.7
 -vec -lv 1 -vs 16 : 209.534
 -vec -lv 1 -vs 32 : 214.032
 -vec -lv 1 -vs 64 : 210.461
 -vec -lv 1 -vs 128 : 205.331
 -vec -lv 1 -vs 256 : 145.351
 -vec -lv 1 -vs 512 : 145.588
 -vec -lv 0 -vs 4 -dfs : 172.634
 -vec -lv 0 -vs 8 -dfs : 204.772
 -vec -lv 0 -vs 16 -dfs : 229.479
 -vec -lv 0 -vs 32 -dfs : 221.281
 -vec -lv 0 -vs 64 -dfs : 216.011
 -vec -lv 0 -vs 128 -dfs : 208.13
 -vec -lv 0 -vs 256 -dfs : 153.893
 -vec -lv 0 -vs 512 -dfs : 151.132
 -vec -lv 1 -vs 4 -dfs : 164.406
 -vec -lv 1 -vs 8 -dfs : 202.688
 -vec -lv 1 -vs 16 -dfs : 211.306
 -vec -lv 1 -vs 32 -dfs : 211.62
 -vec -lv 1 -vs 64 -dfs : 210.413
 -vec -lv 1 -vs 128 -dfs : 210.301
 -vec -lv 1 -vs 256 -dfs : 147.78
 -vec -lv 1 -vs 512 -dfs : 145.636
Refined with -mcd
 -vec -lv 0 -vs 16 -dfs -mcd 2 : 222.197
 -vec -lv 0 -vs 16 -dfs -mcd 4 : 215.45
 -vec -lv 0 -vs 16 -dfs -mcd 8 : 216.117
 -vec -lv 0 -vs 16 -dfs -mcd 16 : 225.706
 -vec -lv 0 -vs 16 -dfs -mcd 32 : 228.542
 -vec -lv 0 -vs 16 -dfs -mcd 64 : 219.499
 -vec -lv 0 -vs 16 -dfs -mcd 128 : 213.928
 -vec -lv 0 -vs 16 -dfs -mcd 256 : 176.189
Best compilation parameters for 'freeverb.dsp' are : -vec -lv 0 -vs 16 -dfs 
-mcd 32 value = 228.542

It would be helpful if the tool can be tested on various DSP, see how ‘stable’ 
it is (that is find out similar options each run…)

Several classes : time_bench, measure_dsp (in faust/dsp/dsp-bench.h) and 
dsp_optimizer (in faust/dsp/dsp-optimizer.h) can possibly be used to 
dynamically find out best options in programs using libfaust based dynamic 
compilation chain.

Thanks.

Stéphane



------------------------------------------------------------------------------
_______________________________________________
Faudiostream-devel mailing list
Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel

Reply via email to