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