Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VSs > VSs__H264__App
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 |
