Ignore:
Timestamp:
Sep 11, 2014, 4:02:00 PM (5 years ago)
Author:
linmengl
Message:

experimental support for BLOCK_SIZE 256 ready to test

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/performance/viewer.py

    r4128 r4151  
    1212
    1313stat_set = set()
    14 def prepare_data(perf):
     14def prepare_data(perf1, perf2):
    1515    #key: 'cycles:u', 'instructions:u'
    1616    #value: perf data
    17     yvalues = {}
     17    y1 = {}
     18    y2 = {}
    1819
    1920    # program, file, expression, stat
    20     for p in perf:
    21         for f in perf[p]:
    22             for e in perf[p][f]:
    23                 for s in perf[p][f][e]:
    24                     if s not in yvalues:
    25                         yvalues[s] = []
    26                     stat_set.add(s)
    27                     yvalues[s].append(perf[p][f][e][s])
     21    p1 = perf1.keys()[0]
     22    p2 = perf2.keys()[0]
    2823
    29     return yvalues
     24    for f in perf1[p1]:
     25        for e in perf1[p1][f]:
     26            for s in perf1[p1][f][e]:
     27                if s not in y1:
     28                    y1[s] = []
     29                if s not in y2:
     30                    y2[s] = []
     31
     32                stat_set.add(s)
     33                y1[s].append(perf1[p1][f][e][s])
     34                y2[s].append(perf2[p2][f][e][s])
     35
     36    return y1, y2
    3037
    3138if __name__ == "__main__":
     39    #Parse args
     40    parser = argparse.ArgumentParser()
     41    parser.add_argument("-t", "--text", help="generate text-based view", action="store_true")
     42    parser.add_argument("-l", "--latex", help="generate latex table of the view", action="store_true")
     43    args = parser.parse_args()
     44
    3245    file_list = [f for f in os.listdir('.') if os.path.isfile(f) and "-perf.json" in f]
    3346    print "Found the following perf data:"
     
    4053    perf2 = json.load(fp = open(file_list[f2], 'r'))
    4154
    42     y1 = prepare_data(perf1)
    43     y2 = prepare_data(perf2)
     55    y1,y2 = prepare_data(perf1, perf2)
    4456
    4557    if len(y1) != len(y2):
     
    4860
    4961    stat_set = list(stat_set)
    50     print "Found the following stats availble:"
     62    print "Found the following stats available:"
    5163    for f in enumerate(stat_set):
    5264        print "{0} ... {1}".format(f[0], f[1])
     
    5870
    5971        stat = stat_set[s1]
    60         ind = np.arange(len(y1[stat]))
    6172
    62         width = (2 - 0.4 * 2) / 2.0
     73        if not args.text and not args.latex:
     74            ind = np.arange(len(y1[stat]))
    6375
    64         p1 = plt.bar(ind * 2, y1[stat], width=width, color='y')
    65         p2 = plt.bar(ind * 2 + width, y2[stat], width=width, color='r')
    66         plt.ylabel(stat)
    67         plt.legend((p1[0], p2[0]), (file_list[f1], file_list[f2]))
     76            width = (2 - 0.4 * 2) / 2.0
    6877
    69         plt.show()
     78            p1 = plt.bar(ind * 2, y1[stat], width=width, color='y')
     79            p2 = plt.bar(ind * 2 + width, y2[stat], width=width, color='r')
     80            plt.ylabel(stat)
     81            plt.legend((p1[0], p2[0]), (file_list[f1], file_list[f2]))
     82
     83            plt.show()
     84
     85        if args.text:
     86            row_format = "{:>20}" * 3
     87            print row_format.format("y1", "y2", "y2 : y1")
     88            print "-" * 20 * 3
     89            for i in xrange(0, len(y1[stat])):
     90                print row_format.format(y1[stat][i], y2[stat][i],
     91                                        y2[stat][i] * 1.0 / y1[stat][i])
     92            print "-" * 20 * 3
     93            print 'y1 = ' + file_list[f1]
     94            print 'y2 = ' + file_list[f2]
     95
Note: See TracChangeset for help on using the changeset viewer.