summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/MUM/make_figures.py
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
committerTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
commit11b308e7363e937966b035b4891db32b4eece3bf (patch)
tree50ca4c9ad6f163ac4acb2bf505e64dfebed66947 /benchmarks/CUDA/MUM/make_figures.py
parentbb820c116764d7a1b8e071137d32b74e7f34dd2f (diff)
integrating recent changes from fermi-test into fermi
(i'll use "fermi" for more disruptive changes to the pipeline model such as updating the MSHRs and getting rid of the warp tracker, ripping out DWF, etc...) [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7805]
Diffstat (limited to 'benchmarks/CUDA/MUM/make_figures.py')
-rw-r--r--benchmarks/CUDA/MUM/make_figures.py171
1 files changed, 0 insertions, 171 deletions
diff --git a/benchmarks/CUDA/MUM/make_figures.py b/benchmarks/CUDA/MUM/make_figures.py
deleted file mode 100644
index efc0f33..0000000
--- a/benchmarks/CUDA/MUM/make_figures.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/fs/sz-user-supported/Linux-i686/bin/python2.5
-import matplotlib
-matplotlib.use('PS')
-
-import pylab
-import csv
-
-def get_stats(filename):
- stats = {}
- statfile = open(filename)
- stats = dict([(key, float(value)) for (key, value) in csv.reader(statfile)])
- return stats
-
-from pylab import arange,pi,sin,cos,sqrt
-
-def set_figure_props():
- fig_width_pt = 225.0 # Get this from LaTeX using \showthe\columnwidth
- inches_per_pt = 1.0/72.27 # Convert pt to inch
- golden_mean = (sqrt(5)-1.0)/2.0 # Aesthetic ratio
- fig_width = fig_width_pt*inches_per_pt # width in inches
- fig_height = 1.5*fig_width*golden_mean # height in inches
- fig_size = [fig_width,fig_height]
- params = {'backend': 'ps',
- 'axes.labelsize': 8,
- 'axes.linewidth': 0.5,
- 'text.fontsize': 8,
- 'xtick.labelsize': 7,
- 'ytick.labelsize': 7,
- 'legend.fontsize': 7,
- 'legend.linewidth':0.5,
- 'title.fontsize' : 8,
- 'text.usetex': True,
- 'figure.figsize': fig_size}
- pylab.rcParams.update(params)
-
-def draw_speedup_figures(outfile, fig_title):
- query_lens = []
- app_speedups = []
- kernel_speedups = []
- f = open(outfile)
- headers = f.next()
- headers = headers.strip()
- headers = headers.split(',')
-
- query_col = headers.index("QUERY")
- kernel_col = headers.index("KERNEL_SPEEDUP")
- mummer_speed_col = headers.index("MUMMER_SPEEDUP")
-
- for vals in csv.reader(f, 'excel', delimiter=' '):
- query_lens.append(int(vals[query_col]))
- app_speedups.append(float(vals[mummer_speed_col]))
- kernel_speedups.append(float(vals[kernel_col]))
-
- draw_speedup_fig(query_lens,
- kernel_speedups,
- fig_title,
- outfile + ".kernel_speedup.eps")
-
-def draw_speedup_fig(x, y, fig_title, filename):
- set_figure_props()
- ax = pylab.subplot(111)
-
- pylab.semilogx(x, y, linestyle=':', marker='v', basex=2)
-
- pylab.xticks(x)
- frm = pylab.FormatStrFormatter("%d")
- ax.xaxis.set_major_formatter(frm)
-
- ax.xaxis.grid(True, which="minor")
- pylab.xlabel("Query length (bp - log scale)")
- pylab.ylabel("Speedup")
- pylab.title(fig_title, fontsize=9)
-
- pylab.savefig(filename)
- pylab.close()
-
-def make_time_breakout():
- statfiles = ["cbriggsae/cleanreads.fna-100.gpustats",
- "lmonocytogenes/cleanreads.fna-20.gpustats",
- "s_suis/cleanreads.fna-20.gpustats"
- ]
-
- labels = [ "\emph{C. briggsae}",
- "\emph{L. monocytogenes}",
- "\emph{S. suis} "
- ]
-
- stats = {}
- convert_to_seconds = ["Total",
- "Kernel",
- "Print matches",
- "Copy queries to GPU",
- "Copy output from GPU",
- "Copy suffix tree to GPU",
- "Read queries from disk",
- "Suffix tree constructions"]
-
- for f in statfiles:
- f_stats = get_stats(f)
- for (key, value) in f_stats.iteritems():
-
- if key in convert_to_seconds:
- val = value / 1000.0 #float( value/f_stats["TOTAL"]
- else:
- val = int(value)
- if key in stats:
- stats[key].append(val)
- else:
- stats[key] = [val]
-
- ind = arange(0,3.6,1.2 ) # the x locations for the groups
-
- width = 0.35 # the width of the bars: can also be len(x) sequence
-
- i = 0
-## colors = [ "#e31a1c",
-## "#377db8",
-## "#4daf4a",
-## "#984ea3",
-## "#ffff33",
-## "#ff7f00"]
-
- colors = [ "#FF4500",
- "#1E90FF",
- "#90EE90",
- "#FFD700",
- "#DA70D6",
- "#D2B48C"]
-
- set_figure_props()
- pylab.subplot(111)
- transfer = []
- for j in range(0, len(statfiles)):
- transfer.append( stats["Copy suffix tree to GPU"][j] + stats["Copy output from GPU"][j] + stats["Copy queries to GPU"][j])
-
- stats["Data transfer to GPU"] = transfer
-
- del stats["Copy suffix tree to GPU"]
- del stats["Copy output from GPU"]
- del stats["Copy queries to GPU"]
-
- del stats["Total"]
-
- lengths = stats["Minimum substring length"]
-
- del stats["Minimum substring length"]
- del stats["Average query length"]
-
-
- plots = []
- running_totals = [0 for j in range(0,len(statfiles))]
- for (category, series) in stats.iteritems():
- plots.append(pylab.bar(ind, series, width, color=colors[i], bottom=running_totals))
- running_totals = [running_totals[j] + series[j] for j in range(0, len(series))]
- i += 1
-
- #pylab.xticks(ind+width/2., labels )
- pylab.xticks(ind +width/2., labels )
-
-
- pylab.title("Time spent by phase in MUMmerGPU", fontsize=9)
- pylab.ylabel("time (s)")
- pylab.xlim(-width,len(ind))
- pylab.ylim(0, 600)
- pylab.legend( [p[0] for p in reversed(plots)], [key for key in reversed(stats.keys())] )
-
- pylab.savefig('time_breakout.eps')
- pylab.close()
-
-make_time_breakout()
-draw_speedup_figures("anthrax/speedup.out", "Kernel speedup, GPU vs. CPU")