File: make_plot.sh

package info (click to toggle)
rocsparse 5.3.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,540 kB
  • sloc: cpp: 157,515; f90: 9,304; sh: 1,689; python: 1,596; xml: 206; makefile: 26
file content (77 lines) | stat: -rwxr-xr-x 1,666 bytes parent folder | download | duplicates (3)
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"