annotate ffmpeg_smp/benchmark.sh @ 1:11d15c47beaf

add h264 decoder code
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Mon, 27 Aug 2012 12:09:56 +0200
parents
children
rev   line source
nengel@1 1 #! /bin/bash
nengel@1 2
nengel@1 3 workers=(1 4 8 12 16 20 24 28 32)
nengel@1 4 cpus=(0 3 7 15 15 23 23 31 31)
nengel@1 5 nodes=(0 0 0 1 1 2 2 3 3)
nengel@1 6
nengel@1 7 confs=( "1 1 1" "1 2 2" "2 3 4" "2 4 5" "3 5 8" "3 6 10" "4 7 12" "4 8 15" "5 8 17" #small
nengel@1 8 "1 1 1" "1 2 2" "2 3 4" "2 4 5" "3 5 7" "3 6 9" "4 7 12" "4 8 13" "5 10 15") #large
nengel@1 9
nengel@1 10
nengel@1 11
nengel@1 12 #confsmall=("1 1 1" "1 2 2" "2 3 4" "2 4 5" "3 5 8" "3 6 10" "4 7 12" "4 8 15" "5 8 17")
nengel@1 13 # "7 10 21" "8 12 25" "10 15 29" "11 17 32")
nengel@1 14 #conflarge=("1 1 1" "1 2 2" "2 3 4" "2 4 5" "3 5 7" "3 6 9" "4 7 12" "4 8 13" "5 10 15")
nengel@1 15 #"5 12 21" "6 15 25" "7 17 30" "8 19 36")
nengel@1 16
nengel@1 17
nengel@1 18 configs=9
nengel@1 19
nengel@1 20 average_ompss_2d=0
nengel@1 21 average_ompss_3d=0
nengel@1 22 average_pthread=0
nengel@1 23 average_serial=0
nengel@1 24
nengel@1 25 iterations_low=4
nengel@1 26 iterations_high=8
nengel@1 27
nengel@1 28 nframes=10000 # max frames limit for debug purpose
nengel@1 29 inputs=("14" "10")
nengel@1 30 inputs_vebose=("Big Bug Bunny 1920x1080 10000 frames" "Park Joy 3840x2160 2500 frames")
nengel@1 31 osargs=("-z 8 8" "-z 12 12 --static-3d")
nengel@1 32
nengel@1 33 time_stamp=`date +%Y.%m.%d_%H.%M.%S`
nengel@1 34 outputdir="/home/stefan.hauser/ffmpeg_smp/ppopp_results/rx600s5-1t/$time_stamp"
nengel@1 35 ompss_2d="$outputdir/ompss_2d.txt"
nengel@1 36 ompss_3d="$outputdir/ompss_3d.txt"
nengel@1 37 pthread="$outputdir/pthread.txt"
nengel@1 38 serial="$outputdir/serial.txt"
nengel@1 39
nengel@1 40 #executes the experiments for a single conf $1=confnum $2 iterations $3 input_idx
nengel@1 41 function execute_single_conf {
nengel@1 42 conf=$1
nengel@1 43 iter=$2
nengel@1 44 iidx=$3
nengel@1 45
nengel@1 46 average_ompss_2d=0
nengel@1 47 average_ompss_3d=0
nengel@1 48 average_pthread=0
nengel@1 49
nengel@1 50 echo "Workers: " ${workers[$conf]} | tee -a $ompss_2d $ompss_3d $pthread $serial
nengel@1 51
nengel@1 52 cd build-ss
nengel@1 53 for ((i=1;i<=$iter;i+=1)); do
nengel@1 54 # OMPSS
nengel@1 55 #export CSS_NUM_CPUS=$worker
nengel@1 56 NX_PES=${workers[$conf]} numactl --interleave=0-${nodes[$conf]} time -p ./ffmpeg -i ${inputs[$iidx]} -n $nframes -e $((${workers[$conf]}+1)) ${osargs[0]} 2> output
nengel@1 57 runtime=$(cat output | grep real | sed s/^.*l.//g)
nengel@1 58 average_ompss_2d=$(echo "$average_ompss_2d + $runtime"|bc)
nengel@1 59 echo -n $runtime " " >> $ompss_2d
nengel@1 60 done
nengel@1 61
nengel@1 62 for ((i=1;i<=$iter;i+=1)); do
nengel@1 63 NX_PES=${workers[$conf]} numactl --interleave=0-${nodes[$conf]} time -p ./ffmpeg -i ${inputs[$iidx]} -n $nframes -e $((${workers[$conf]}+1)) ${osargs[1]} 2> output
nengel@1 64 runtime=$(cat output | grep real | sed s/^.*l.//g)
nengel@1 65 average_ompss_3d=$(echo "$average_ompss_3d + $runtime"|bc)
nengel@1 66 echo -n $runtime " " >> $ompss_3d
nengel@1 67 done
nengel@1 68 cd ..
nengel@1 69
nengel@1 70 cd build
nengel@1 71 for ((i=1;i<=$iter;i+=1)); do
nengel@1 72 # Pthreads
nengel@1 73 numactl --physcpubind=0-$((${cpus[$conf]})) time -p ./ffmpeg -i ${inputs[$iidx]} -n $nframes -t ${confs[$(($conf + $iidx * $configs))]} 2> output
nengel@1 74 runtime=$(cat output | grep real | sed s/^.*l.//g)
nengel@1 75 average_pthread=$(echo "$average_pthread + $runtime"|bc)
nengel@1 76 echo -n $runtime " " >> $pthread
nengel@1 77 done
nengel@1 78 cd ..
nengel@1 79
nengel@1 80 echo "" | tee -a $pthread $ompss_2d $ompss_3d
nengel@1 81 average_ompss_2d=$(echo "scale=5;$average_ompss_2d/$iter"|bc)
nengel@1 82 average_ompss_3d=$(echo "scale=5;$average_ompss_3d/$iter"|bc)
nengel@1 83 average_pthread=$(echo "scale=5;$average_pthread/$iter"|bc)
nengel@1 84
nengel@1 85 echo "time: " $average_ompss_2d >> $ompss_2d
nengel@1 86 echo "time: " $average_ompss_3d >> $ompss_3d
nengel@1 87 echo "time: " $average_pthread >> $pthread
nengel@1 88 echo "time: " $average_serial >> $serial
nengel@1 89 }
nengel@1 90
nengel@1 91
nengel@1 92 mkdir $outputdir
nengel@1 93
nengel@1 94 echo "Processing inputs ..."
nengel@1 95
nengel@1 96 echo "h264dec Benchmark" | tee $ompss_2d $ompss_3d $pthread $serial
nengel@1 97
nengel@1 98 for n in 0 1; do
nengel@1 99 echo "Input: ${inputs_vebose[$n]}" | tee -a $ompss_2d $ompss_3d $pthread $serial
nengel@1 100 echo "" | tee -a $ompss_2d $ompss_3d $pthread $serial
nengel@1 101
nengel@1 102 # Serial
nengel@1 103 cd build
nengel@1 104 numactl --physcpubind=0 time -p ./ffmpeg -i ${inputs[$n]} -n $nframes -s 2> output
nengel@1 105 runtime=$(cat output | grep real | sed s/^.*l.//g)
nengel@1 106 average_serial=$runtime
nengel@1 107 cd ..
nengel@1 108
nengel@1 109 execute_single_conf 0 1 $n
nengel@1 110
nengel@1 111 #Parallel
nengel@1 112 for ((confidx=1;confidx<=4;confidx+=1)); do
nengel@1 113 execute_single_conf $confidx $iterations_low $n
nengel@1 114 done
nengel@1 115
nengel@1 116 for ((confidx=5;confidx<=$(($configs-1));confidx+=1)); do
nengel@1 117 execute_single_conf $confidx $iterations_high $n
nengel@1 118 done
nengel@1 119
nengel@1 120 echo "-------------------" | tee -a $ompss_2d $ompss_3d $pthread $serial
nengel@1 121 done
nengel@1 122
nengel@1 123 echo "FINISHED"
nengel@1 124
nengel@1 125 rm build/output build-ss/output
nengel@1 126