1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#!/usr/bin/env bash
# Author: Nico Trost
if [ $# -eq 0 ]; then
echo "Please supply a rocSPARSE performance logfile as command line argument";
exit 1
fi
echo "Parsing $1 ..."
# Read all lines of the logfile
readarray log < $1
# Store if GFlop/s pattern has been found
found=0
# Create temporary file
tmpfile=$(mktemp /tmp/$1.XXXXXX)
i=0
for line in "${log[@]}"; do
# Extract the matrix names
matrix=$(echo $line | sed -n 's/.*Reading matrix .\/matrices\/// ; s/.csr.*//p')
if [ ! "$matrix" = "" ]; then
echo "Extracting performance data of matrix $matrix"
mat=$matrix
fi
# Split line into its strings
array=($(echo $line | tr " " "\n"))
# Find GFlop/s slot
j=0
for slot in "${array[@]}"; do
if [ "$slot" = "GFlop/s" ]; then
idx=$j
fi
j=$((j+1))
done
# Extract GFlop/s on pattern match
if [ $found -eq 1 ]; then
# Add data to tmpfile
echo "$i $mat ${array[$idx]}" >> $tmpfile
i=$((i+1))
fi
# Check for GFlop/s pattern
if [ "${array[$idx]}" = "GFlop/s" ]; then
found=1
else
found=0
fi
done
# Plot the bar chart
i=$((i-1))
gnuplot -persist <<-EOFMarker
reset
set grid
set style fill solid 0.2
set term postscript eps enhanced color font 'Helvetica,12'
set output "$1.eps"
set termoption noenhanced
set ylabel "GFlop/s"
set xrange [-0.5:$i.5]
set yrange [0:*]
set offsets 0.25, 0.25, 10, 0
set xtics rotate by -45
set boxwidth 0.5
set size ratio 0.35
unset key
plot "$tmpfile" using 1:3:xtic(2) with boxes
EOFMarker
rm "$tmpfile"
|