On Thu, Jan 25, 2018 at 12:59:56 +0000, Alex Bennée wrote: > Howard Spoelstra <hsp.c...@gmail.com> writes: (snip) > > Recent tcg optimisations had improved processor and floating point > > performance considerably, but that gain seems to be more than lost for > > the floating point performance. > > > > Any idea what is causing this? > > Well we expected a little degradation but it's a bit more than I > expected.
It's pretty bad (almost a 2X mean slowdown) for the three FP workloads in dbt-bench: [FWIW before is 52483b067cce, after is 00fc0c00ca9fa26] NBench score; higher is better Host: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz 6 +-+-----------+-------------+--------------+-------------+-----------+-+ | ***** | | * * softfloat-before | 5 +-+.....................*...*.........******...softfloat-after.......+-+ | * * * * ****** | | * * * * * * | 4 +-+.....................*...*.........*....*........*....*...........+-+ | * * * * * * | 3 +-+......******.........*...*.........*....*........*....*...........+-+ | * * * *##### * *#### * * | | * * * * # * * # * *##### | 2 +-+......*....*.........*...*....#....*....*...#....*....*....#......+-+ | * * * * # * * # * * # | | * *##### * * # * * # * * # | 1 +-+......*....*....#....*...*....#....*....*...#....*....*....#......+-+ | * * # * * # * * # * * # | | * * # * * # * * # * * # | 0 +-+------******#####----*****#####----******####----******#####------+-+ FOURIER NEURAL NET LU DECOMPOSITION gmean You can obtain the above on your machine (assuming /tmp/softfloat-$branch corresponds to the before/after x86_64-linux-user binaries) with: $ time for branch in before after; do cd $DBT_BENCH/nbench && \ taskset -c 0 /tmp/softfloat-$branch \ $DBT_BENCH/nbench/nbench -V -C$DBT_BENCH/nbench/FP.DAT \ | tee $DBT_BENCH/softfloat-$branch.nbench || break && cd -; \ done And then plot the results with: $ ./breakdown.pl --suite=fp --barchart softfloat-before.nbench softfloat-after.nbench \ | $BARCHART/barchart.pl --extra-gnuplot='set term dumb 80' \ --extra-gnuplot='set title "NBench score; higher is better\nHost: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz"' \ --extra-gnuplot="set yrange [0:]" --extra="=norotate" | gnuplot You'll need both dbt-bench and barchart: https://github.com/cota/dbt-bench (clone with --recursive and build nbench first. You can also use CROSS_COMPILE there to benchmark other linux-user targets) https://github.com/cota/barchart Hope that helps, Emilio