summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJRPan <[email protected]>2023-06-13 20:40:17 +0800
committerGitHub <[email protected]>2023-06-13 20:40:17 +0800
commit4f1cdbe1ff00ab003cc9d33f1a6943eeb6b203a3 (patch)
tree5ee800a6507b85bfbefae1c242f9d285731aa4a3
parent25cdd73b170b0c560d1e6bf5f5418b0a9be2325b (diff)
parentb471b3481b2399222ffd9ee0f007628834e68767 (diff)
Merge branch 'dev' into dev
-rw-r--r--aerialvision/configs.py11
-rw-r--r--aerialvision/guiclasses.py85
-rw-r--r--aerialvision/lexyacc.py31
-rw-r--r--aerialvision/lexyaccbookmark.py9
-rw-r--r--aerialvision/lexyacctexteditor.py11
-rw-r--r--aerialvision/organizedata.py35
-rw-r--r--aerialvision/parser.out47
-rw-r--r--aerialvision/parsetab.py31
-rw-r--r--aerialvision/startup.py18
-rw-r--r--aerialvision/variableclasses.py16
-rwxr-xr-xbin/aerialvision.py9
-rw-r--r--cuobjdump_to_ptxplus/cuobjdumpInstList.cc2
-rw-r--r--cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc2
-rw-r--r--libcuda/cuda_runtime_api.cc10
-rw-r--r--src/abstract_hardware_model.cc8
-rw-r--r--src/abstract_hardware_model.h6
-rw-r--r--src/cuda-sim/Makefile4
-rw-r--r--src/cuda-sim/cuda-sim.cc18
-rw-r--r--src/cuda-sim/cuda_device_runtime.cc4
-rw-r--r--src/cuda-sim/memory.cc8
-rw-r--r--src/cuda-sim/ptx_ir.cc2
-rw-r--r--src/cuda-sim/ptx_loader.cc6
-rw-r--r--src/cuda-sim/ptx_parser.cc6
-rw-r--r--src/cuda-sim/ptx_sim.cc2
-rw-r--r--src/debug.cc8
-rw-r--r--src/gpgpu-sim/gpu-sim.cc2
-rw-r--r--src/gpgpu-sim/local_interconnect.cc14
-rw-r--r--src/gpgpu-sim/shader.cc14
-rw-r--r--src/gpgpu-sim/stat-tool.cc2
-rw-r--r--src/intersim2/networks/kncube.cpp2
-rw-r--r--src/intersim2/networks/qtree.cpp2
31 files changed, 264 insertions, 161 deletions
diff --git a/aerialvision/configs.py b/aerialvision/configs.py
index f0389ac..01dba2e 100644
--- a/aerialvision/configs.py
+++ b/aerialvision/configs.py
@@ -61,7 +61,7 @@
# Vancouver, BC V6T 1Z4
-import ConfigParser, os
+import configparser, os
userSettingPath = os.path.join(os.environ['HOME'], '.gpgpu_sim', 'aerialvision')
@@ -69,14 +69,14 @@ userSettingPath = os.path.join(os.environ['HOME'], '.gpgpu_sim', 'aerialvision')
class AerialVisionConfig:
def __init__(self):
- self.config = ConfigParser.SafeConfigParser()
+ self.config = configparser.SafeConfigParser()
self.config.read( os.path.join(userSettingPath, 'config.rc') )
def print_all(self):
for section in self.config.sections():
for option in self.config.options(section):
value = self.config.get(section, option)
- print "\t%s.%s = %s" % (section, option, value);
+ print("\t%s.%s = %s" % (section, option, value));
def get_value(self, section, option, default):
if (self.config.has_option(section, option)):
@@ -90,10 +90,11 @@ avconfig = AerialVisionConfig()
#Unit test / configviewer
def main():
- print "AerialVision Options:"
+ print("AerialVision Options:")
avconfig.print_all()
- print "";
+ print("");
if __name__ == "__main__":
main()
+
diff --git a/aerialvision/guiclasses.py b/aerialvision/guiclasses.py
index 04036a8..f4ecd29 100644
--- a/aerialvision/guiclasses.py
+++ b/aerialvision/guiclasses.py
@@ -64,10 +64,10 @@
import time
import os
import array
-import Tkinter as Tk
+import tkinter as Tk
import matplotlib
matplotlib.use('TkAgg')
-from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
+from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
import matplotlib as mpl
from matplotlib.colors import colorConverter
@@ -250,19 +250,19 @@ class formEntry:
self.cXAxisData.delete(0, Tk.END)
self.cYAxisData.delete(0, Tk.END)
-
+
#filling in xAxis vars
- for keys in self.data[self.fileChosen].keys():
+ for keys in list(self.data[self.fileChosen].keys()):
if keys == 'globalCycle':
self.cXAxisData.insert(Tk.END, keys)
#filling in yAxis vars
#Need to fill up list alphabetically
keysAlpha = []
- for key in self.data[self.fileChosen].keys():
+ for key in list(self.data[self.fileChosen].keys()):
if key not in ['globalCycle','CFLOG','EXTVARS']:#exclude hacks from list
keysAlpha.append(key)
- keysAlpha.sort(lambda x, y: cmp(x.lower(),y.lower()))
+ #keysAlpha.sort(key=lambda x, y: cmp(x.lower(),y.lower()))
for keys in keysAlpha:
self.cYAxisData.insert(Tk.END, keys)
@@ -782,7 +782,7 @@ class graphManager:
#self.plot = self.figure.add_subplot(111)
self.canvas = FigureCanvasTkAgg(self.figure, master=self.graphArea)
self.canvas.get_tk_widget().pack()
- self.toolbar = NavigationToolbar2TkAgg(self.canvas, self.toolbarArea)
+ self.toolbar = NavigationToolbar2Tk(self.canvas, self.toolbarArea)
self.toolbar.update()
self.plotData()
@@ -931,7 +931,7 @@ class graphManager:
- if self.simplerName.has_key('globalTotInsn') == 'False':
+ if ('globalTotInsn' in self.simplerName) == 'False':
graphOption = 1
if (graphOption == 1):
@@ -972,7 +972,7 @@ class graphManager:
graphOption = "NULL"
- if self.simplerName.has_key('globalTotInsn') == 'False':
+ if ('globalTotInsn' in self.simplerName) == 'False':
graphOption = 1
if (graphOption == 1):
@@ -1018,7 +1018,7 @@ class graphManager:
#if there are kernals.. we need to adjust the x axis for proper labelling
#Need to make changes here.. works for now though
- if self.simplerName.has_key('globalTotInsn'):
+ if 'globalTotInsn' in self.simplerName:
x = self.updateVarKernal(x)
concentrationFactor = len(x) // 512 + 1
@@ -1038,7 +1038,7 @@ class graphManager:
yoff = numpy.array([0.0] * numCols) #variable use to remember the last top location of a bar so that we may stack the proceeding bar on top of it
#Legendname = ['UNUSED', 'UNUSED', 'FQPUSHED','ICNT_PUSHED','ICNT_INJECTED','ICNT_AT_DEST','DRAMQ','DRAM_PROCESSING_START','DRAM_PROCESSING_END','DRAM_OUTQ','2SH_ICNT_PUSHED','2SH_ICNT_INJECTED','2SH_ICNT_AT_DEST','2SH_FQ_POP','RETURN_Q'];
Legendname = ['N/A', 'N/A','N/A','IcntInpBuf','N/A','Icnt2DRAM','N/A','N/A','N/A','DRAM','2Sh_IcntInpBuf','N/A','Icnt2shd','N/A','N/A'];
- BarSequence = range(numRows-1,-1,-1)
+ BarSequence = list(range(numRows-1,-1,-1))
if yAxis == 'WarpDivergenceBreakdown':
Legendname = []
@@ -1046,21 +1046,21 @@ class graphManager:
Legendname.append('Data Hazard')
Legendname.append('Stall')
for c in range(2, numRows):
- Legendname.append('W' + `4*(c-2)+1` + ':' + `4*(c-1)`)
- BarSequence = range(0,numRows)
+ Legendname.append('W' + repr(4*(c-2)+1) + ':' + repr(4*(c-1)))
+ BarSequence = list(range(0,numRows))
if yAxis == 'WarpIssueSlotBreakdown':
Legendname = []
for c in range(0, numRows):
- Legendname.append('W' + `c`)
- BarSequence = range(0,numRows)
+ Legendname.append('W' + repr(c))
+ BarSequence = list(range(0,numRows))
dynamic_warp_resolution = 32
if yAxis == 'WarpIssueDynamicIdBreakdown':
Legendname = []
for c in range(0, numRows):
- Legendname.append('W' + `dynamic_warp_resolution*c` + ":" + `dynamic_warp_resolution*(c+1)`)
- BarSequence = range(0,numRows)
+ Legendname.append('W' + repr(dynamic_warp_resolution*c) + ":" + repr(dynamic_warp_resolution*(c+1)))
+ BarSequence = list(range(0,numRows))
yoff_max = numpy.array([0.0] * numCols)
for row in range(numRows-1,-1,-1):
@@ -1102,10 +1102,10 @@ class graphManager:
for label in self.plot.get_yticklabels():
label.set_fontsize(plotFormat.yticksFontSize)
- self.canvas.show()
+ self.canvas.draw()
def type4Variable(self, x, xAxis, y, yAxis, plotID):
- keys = y.keys()
+ keys = list(y.keys())
keys.sort()
if (self.dataPointer.graphChosen == self.possGraphs[3]):
@@ -1251,7 +1251,7 @@ class graphManager:
self.plot.set_title(self.plotFormatInfo[self.currPlot].title)
self.plot.set_xlabel(self.plotFormatInfo[self.currPlot].xlabel, fontsize = self.plotFormatInfo[self.currPlot].labelFontSize)
self.plot.set_ylabel(self.plotFormatInfo[self.currPlot].ylabel, fontsize = self.plotFormatInfo[self.currPlot].labelFontSize)
- self.canvas.show()
+ self.canvas.draw()
def plotMultVarLine(self, x, xAxis, y, yAxis):
@@ -1261,7 +1261,7 @@ class graphManager:
self.plotFormatInfo[self.currPlot].InitLabels(xlabel = xAxis, ylabel = yAxis, cbarlabel = '', title = '')
self.plot.set_xlabel(self.plotFormatInfo[self.currPlot].xlabel, fontsize = self.plotFormatInfo[self.currPlot].labelFontSize)
self.plot.set_ylabel(self.plotFormatInfo[self.currPlot].ylabel, fontsize = self.plotFormatInfo[self.currPlot].labelFontSize)
- self.canvas.show()
+ self.canvas.draw()
def plotScatter(self, x, xAxis, y, yAxis, plotID):
@@ -1275,7 +1275,7 @@ class graphManager:
self.plot.set_title(plotFormat.title, fontsize = plotFormat.labelFontSize)
self.plot.set_xlabel(plotFormat.xlabel, fontsize = plotFormat.labelFontSize)
self.plot.set_ylabel(plotFormat.ylabel, fontsize = plotFormat.labelFontSize)
- self.canvas.show()
+ self.canvas.draw()
def takeDerivativeMult(self,x,y):
@@ -1347,12 +1347,12 @@ class graphManager:
# put number on axis if there are more than one ticks
if (self.xAxisStepsWilStack[self.currPlot] != 1):
- for count in range(0,len(x),len(x)/self.xAxisStepsWilStack[self.currPlot]):
+ for count in range(0,len(x),int(len(x)/self.xAxisStepsWilStack[self.currPlot])):
xlabelValues.append(x[count])
xlabelPos.append(xticksPos[count])
- print self.yAxisStepsWilStack[self.currPlot]
- for count in range(0,len(y),len(y)/self.yAxisStepsWilStack[self.currPlot]):
+ print(self.yAxisStepsWilStack[self.currPlot])
+ for count in range(0,len(y),int(len(y)/self.yAxisStepsWilStack[self.currPlot])):
ylabelValues.append(yTicks[count])
ylabelPos.append(yticksPos[count])
@@ -1387,7 +1387,7 @@ class graphManager:
xtickStep = x[1] - x[0]
self.plot.set_xlim(0 / xtickStep - 0.5, self.xlim / xtickStep + 0.5)
- self.canvas.show()
+ self.canvas.draw()
def updateWilTicks(self, z):
x= []
@@ -1480,7 +1480,7 @@ class graphManager:
else:
for iter in range(0, self.dataPointer.dydx):
if self.simplerName[self.dataPointer.dataChosenY].type == 4:
- keys = self.simplerName[self.dataPointer.dataChosenY].data.keys()
+ keys = list(self.simplerName[self.dataPointer.dataChosenY].data.keys())
keys.sort()
y = []
for iter in keys:
@@ -1523,7 +1523,7 @@ class graphManager:
entry[self.currPlot] = (maxEntry, minEntry)
cmap = self.plotFormatInfo[self.currPlot].cmap
- plotCMap = apply(Tk.OptionMenu, (root[-1], cmap) + tuple(PlotFormatInfo.cmapOptions))
+ plotCMap = Tk.OptionMenu(*(root[-1], cmap) + tuple(PlotFormatInfo.cmapOptions))
plotCMap.pack(side = Tk.LEFT, padx = 5)
@@ -1612,7 +1612,7 @@ class graphManager:
for self.currPlot in range(1,numPlots + 1):
self.findKernalLocs()
- if vars.has_key(str(self.currPlot)):
+ if str(self.currPlot) in vars:
if vars[str(self.currPlot)].get() == 1:
self.dataPointer.dydx += 1
@@ -1681,12 +1681,12 @@ class graphManager:
if (self.yAxisStepsWilStack[plotToIncrease] == 1):
self.yAxisStepsWilStack[plotToIncrease] = 2
self.yAxisStepsWilStack[plotToIncrease] = int(float(self.yAxisStepsWilStack[plotToIncrease])*1.50)
- print self.yAxisStepsWilStack[plotToIncrease]
+ print(self.yAxisStepsWilStack[plotToIncrease])
self.plotDataForNewBinning(plotToIncrease)
def collectDataDecreaseYBinning(self, currPlot, remove = False):
plotToDecrease = int(currPlot[0])
- print self.yAxisStepsWilStack[plotToDecrease]
+ print(self.yAxisStepsWilStack[plotToDecrease])
if (remove == True):
self.yAxisStepsWilStack[plotToDecrease] = 1
else:
@@ -1751,7 +1751,7 @@ class graphManager:
entries[self.currPlot].append(Tk.Entry(root, width = 50))
entries[self.currPlot][-1].grid(row = currentRow, column = 4, padx = 10)
entries[self.currPlot][-1].insert(0, self.plot.get_xlabel())
- if self.colorbars.has_key(self.currPlot):
+ if self.currPlot in self.colorbars:
plotLabel3 = Tk.Label(root, text = 'Colorbar: ', bg = 'white')
plotLabel3.grid(row = currentRow, column = 5)
entries[self.currPlot].append(Tk.Entry(root, width = 20))
@@ -1821,7 +1821,7 @@ class graphManager:
self.plot.set_ylabel(plotFormat.ylabel, fontsize=plotFormat.labelFontSize)
plotFormat.xlabel = entries[self.currPlot][1].get()
self.plot.set_xlabel(plotFormat.xlabel, fontsize=plotFormat.labelFontSize)
- if self.colorbars.has_key(self.currPlot):
+ if self.currPlot in self.colorbars:
plotFormat.cbarlabel = entries[self.currPlot][2].get()
self.colorbars[self.currPlot].set_label(plotFormat.cbarlabel, fontsize=plotFormat.labelFontSize)
else:
@@ -1841,7 +1841,7 @@ class graphManager:
ytickslabels[n].set_fontsize(plotFormat.yticksFontSize)
# change colorbar ticks label fontsize
- if self.colorbars.has_key(self.currPlot):
+ if self.currPlot in self.colorbars:
for label in self.colorbars[self.currPlot].ax.get_yticklabels():
label.set_fontsize(plotFormat.cticksFontSize)
@@ -1851,7 +1851,7 @@ class graphManager:
master.destroy()
## Now replot with changes.....
- self.canvas.show()
+ self.canvas.draw()
def zoomButton(self):
#Variable initializations
@@ -1980,7 +1980,7 @@ class graphManager:
plot.set_xticks(xlabelPos)
master.destroy()
- self.canvas.show()
+ self.canvas.draw()
class NaviPlotInfo:
@@ -2224,6 +2224,7 @@ class newTextTab:
countLines = 1
for lines in self.file.readlines():
+ lines = lines.decode()
self.textbox.insert(Tk.END, str(countLines) + '. ' + lines, ('normal'))
countLines += 1
countLines -= 1
@@ -2232,7 +2233,7 @@ class newTextTab:
figure = Figure(figsize=(22,5), dpi = 70)
self.histArea = FigureCanvasTkAgg(figure, master= bottomFrame)
self.histArea.get_tk_widget().pack()
- toolbar = NavigationToolbar2TkAgg(self.histArea, toolbarFrame)
+ toolbar = NavigationToolbar2Tk(self.histArea, toolbarFrame)
toolbar.update()
self.histogram = figure.add_subplot(111)
cid = figure.canvas.mpl_connect('button_press_event',self.onclick)
@@ -2285,8 +2286,8 @@ class newTextTab:
count += 1
def yview(self, *args):
- apply(self.textbox.yview, args)
- apply(self.statstextbox.yview, args)
+ self.textbox.yview(*args)
+ self.statstextbox.yview(*args)
def onclick(self, event):
if event.button == 3:
@@ -2298,6 +2299,7 @@ class newTextTab:
self.textbox.delete(0.0, Tk.END)
self.file = open(self.fileChosen, 'r')
for lines in self.file.readlines():
+ lines=lines.decode()
if (countLines < event.xdata - 1) or (countLines > event.xdata + 1):
self.textbox.insert(Tk.END, str(countLines) + '. ' + lines, ('normal'))
else:
@@ -2317,8 +2319,8 @@ class newTextTab:
- apply(self.textbox.yview, args)
- apply(self.statstextbox.yview, args)
+ self.textbox.yview(*args)
+ self.statstextbox.yview(*args)
def chooseFileCuda(self, *event):
self.fileChosen = self.cAvailableCudaFiles.get('active')
@@ -2572,3 +2574,4 @@ class newTextTab:
+
diff --git a/aerialvision/lexyacc.py b/aerialvision/lexyacc.py
index d657383..53541ed 100644
--- a/aerialvision/lexyacc.py
+++ b/aerialvision/lexyacc.py
@@ -82,7 +82,7 @@ def import_user_defined_variables(variables):
try:
file = open(os.path.join(userSettingPath, 'variables.txt'),'r')
except:
- print "No variables.txt file found."
+ print("No variables.txt file found.")
return
#this can be replaced with a proper lex-yacc parser later
@@ -96,7 +96,7 @@ def import_user_defined_variables(variables):
continue
# parse the line containing definition of a stat variable
- s = line.split(",")
+ s = line.split(',')
statName = s[0]
statVar = vc.variable('', 1, 0)
statVar.importFromString(line)
@@ -104,8 +104,9 @@ def import_user_defined_variables(variables):
# add parsed stat variable to the searchable map
variables[statName] = statVar
- except Exception, (e):
- print "error:",e,", in variables.txt line:",line
+ except Exception as xxx_todo_changeme:
+ (e) = xxx_todo_changeme
+ print("error:",e,", in variables.txt line:",line)
# Parses through a given log file for data
def parseMe(filename):
@@ -136,7 +137,7 @@ def parseMe(filename):
t.lexer.lineno += t.value.count("\n")
def t_error(t):
- print "Illegal character '%s'" % t.value[0]
+ print("Illegal character '%s'" % t.value[0])
t.lexer.skip(1)
lex.lex()
@@ -202,14 +203,14 @@ def parseMe(filename):
# generate a lookup table based on the specified name in log file for each stat
stat_lookuptable = {}
- for name, var in variables.iteritems():
+ for name, var in variables.items():
if (name == 'CFLOG'):
continue;
if (var.lookup_tag != ''):
stat_lookuptable[var.lookup_tag] = var
else:
stat_lookuptable[name.lower()] = var
-
+
inputData = 'NULL'
# a table containing all the metrics that has received the missing data warning
@@ -218,19 +219,19 @@ def parseMe(filename):
def p_sentence(p):
'''sentence : WORD NUMBERSEQUENCE'''
#print p[0], p[1],p[2]
- num = p[2].split(" ")
+ num = p[2].split(' ')
# detect empty data entry for particular metric and print a warning
if p[2] == '':
if not p[1] in stat_missing_warned:
- print "WARNING: Sample entry for metric '%s' has no data. Skipping..." % p[1]
+ print("WARNING: Sample entry for metric '%s' has no data. Skipping..." % p[1])
stat_missing_warned[p[1]] = True
return
lookup_input = p[1].lower()
if (lookup_input in stat_lookuptable):
if (lookup_input == "globalcyclecount") and (int(num[0]) % 10000 == 0):
- print "Processing global cycle %s" % num[0]
+ print("Processing global cycle %s" % num[0])
stat = stat_lookuptable[lookup_input]
if (stat.type == 1):
@@ -294,7 +295,7 @@ def parseMe(filename):
def p_error(p):
if p:
- print("Syntax error at '%s'" % p.value)
+ print(("Syntax error at '%s'" % p.value))
else:
print("Syntax error at EOF")
@@ -306,11 +307,12 @@ def parseMe(filename):
else:
file = open(filename, 'r')
while file:
- line = file.readline()
+ line = file.readline().decode()
+
if not line : break
- nameNdata = line.split(":")
+ nameNdata = line.split(':')
if (len(nameNdata) != 2):
- print("Syntax error at '%s'" % line)
+ print(("Syntax error at '%s'" % line))
namePart = nameNdata[0].strip()
dataPart= nameNdata[1].strip()
parts = [' ', namePart, dataPart]
@@ -323,3 +325,4 @@ def parseMe(filename):
+
diff --git a/aerialvision/lexyaccbookmark.py b/aerialvision/lexyaccbookmark.py
index 42c6b40..7aa2f80 100644
--- a/aerialvision/lexyaccbookmark.py
+++ b/aerialvision/lexyaccbookmark.py
@@ -108,7 +108,7 @@ def parseMe():
def t_error(t):
- print "Illegal character '%s'" % t.value[0]
+ print("Illegal character '%s'" % t.value[0])
t.lexer.skip(1)
lex.lex()
@@ -150,7 +150,7 @@ def parseMe():
pass
else:
- print 'An Parsing Error has occurred'
+ print('An Parsing Error has occurred')
@@ -159,7 +159,7 @@ def parseMe():
def p_error(p):
if p:
- print("Syntax error at '%s'" % p.value)
+ print(("Syntax error at '%s'" % p.value))
else:
print("Syntax error at EOF")
@@ -168,7 +168,7 @@ def parseMe():
try:
file = open(os.environ['HOME'] + '/.gpgpu_sim/aerialvision/bookmarks.txt', 'r')
inputData = file.readlines()
- except IOError,e:
+ except IOError as e:
if e.errno == 2:
inputData = ''
else:
@@ -178,3 +178,4 @@ def parseMe():
yacc.parse(x[0:-1]) # ,debug=True)
return listBookmarks
+
diff --git a/aerialvision/lexyacctexteditor.py b/aerialvision/lexyacctexteditor.py
index 51d3ced..57b41db 100644
--- a/aerialvision/lexyacctexteditor.py
+++ b/aerialvision/lexyacctexteditor.py
@@ -88,7 +88,7 @@ def textEditorParseMe(filename):
t.lexer.lineno += t.value.count("\n")
def t_error(t):
- print "Illegal character '%s'" % t.value[0]
+ print("Illegal character '%s'" % t.value[0])
t.lexer.skip(1)
lex.lex()
@@ -109,8 +109,8 @@ def textEditorParseMe(filename):
def p_error(p):
if p:
- print("Syntax error at '%s'" % p.value)
- print p
+ print(("Syntax error at '%s'" % p.value))
+ print(p)
else:
print("Syntax error at EOF")
@@ -152,17 +152,18 @@ def ptxToCudaMapping(filename):
loc = int(m.group(2))
count += 1
- x = map.keys()
+ x = list(map.keys())
return map
#Unit test / playground
def main():
data = textEditorParseMe(sys.argv[1])
- print data[100]
+ print(data[100])
if __name__ == "__main__":
main()
+
diff --git a/aerialvision/organizedata.py b/aerialvision/organizedata.py
index 090b90f..f5d5312 100644
--- a/aerialvision/organizedata.py
+++ b/aerialvision/organizedata.py
@@ -99,7 +99,7 @@ def organizedata(fileVars):
}
data_type_char = {int:'I', float:'f'}
- print "Organizing data into internal format..."
+ print("Organizing data into internal format...")
# Organize globalCycle in advance because it is used as a reference
if ('globalCycle' in fileVars):
@@ -107,28 +107,28 @@ def organizedata(fileVars):
fileVars['globalCycle'].data = organizeFunction[statData.organize](statData.data, data_type_char[statData.datatype])
# Organize other stat data into internal format
- for statName, statData in fileVars.iteritems():
+ for statName, statData in fileVars.items():
if (statName != 'CFLOG' and statName != 'globalCycle' and statData.organize != 'custom'):
fileVars[statName].data = organizeFunction[statData.organize](statData.data, data_type_char[statData.datatype])
# Custom routines to organize stat data into internal format
- if fileVars.has_key('averagemflatency'):
+ if 'averagemflatency' in fileVars:
zeros = []
for count in range(len(fileVars['averagemflatency'].data),len(fileVars['globalCycle'].data)):
zeros.append(0)
fileVars['averagemflatency'].data = zeros + fileVars['averagemflatency'].data
- if (skipCFLog == 0) and fileVars.has_key('CFLOG'):
+ if (skipCFLog == 0) and 'CFLOG' in fileVars:
ptxFile = CFLOGptxFile
statFile = CFLOGInsnInfoFile
- print "PC Histogram to CUDA Src = %d" % convertCFLog2CUDAsrc
+ print("PC Histogram to CUDA Src = %d" % convertCFLog2CUDAsrc)
parseCFLOGCUDA = convertCFLog2CUDAsrc
if parseCFLOGCUDA == 1:
- print "Obtaining PTX-to-CUDA Mapping from %s..." % ptxFile
+ print("Obtaining PTX-to-CUDA Mapping from %s..." % ptxFile)
map = lexyacctexteditor.ptxToCudaMapping(ptxFile.rstrip())
- print "Obtaining Program Range from %s..." % statFile
+ print("Obtaining Program Range from %s..." % statFile)
maxStats = max(lexyacctexteditor.textEditorParseMe(statFile.rstrip()).keys())
if parseCFLOGCUDA == 1:
@@ -136,7 +136,7 @@ def organizedata(fileVars):
for lines in map:
for ptxLines in map[lines]:
newMap[ptxLines] = lines
- print " Total number of CUDA src lines = %s..." % len(newMap)
+ print(" Total number of CUDA src lines = %s..." % len(newMap))
markForDel = []
for ptxLines in newMap:
@@ -144,7 +144,7 @@ def organizedata(fileVars):
markForDel.append(ptxLines)
for lines in markForDel:
del newMap[lines]
- print " Number of touched CUDA src lines = %s..." % len(newMap)
+ print(" Number of touched CUDA src lines = %s..." % len(newMap))
fileVars['CFLOGglobalPTX'] = vc.variable('',2,0)
fileVars['CFLOGglobalCUDA'] = vc.variable('',2,0)
@@ -152,7 +152,7 @@ def organizedata(fileVars):
count = 0
for iter in fileVars['CFLOG']:
- print "Organizing data for %s" % iter
+ print("Organizing data for %s" % iter)
fileVars[iter + 'PTX'] = fileVars['CFLOG'][iter]
fileVars[iter + 'PTX'].data = CFLOGOrganizePTX(fileVars['CFLOG'][iter].data, fileVars['CFLOG'][iter].maxPC)
@@ -174,7 +174,7 @@ def organizedata(fileVars):
for columns in range(0, len(fileVars[iter + 'CUDA'].data[rows])):
fileVars['CFLOGglobalCUDA'].data[rows][columns] += fileVars[iter + 'CUDA'].data[rows][columns]
except:
- print "Error in generating globalCFLog data"
+ print("Error in generating globalCFLog data")
count += 1
del fileVars['CFLOG']
@@ -231,10 +231,10 @@ def nullOrganizedStackedBar(nullVar, datatype_c):
for row in range (0,len(organized)):
newy = array.array(datatype_c, [0 for col in range(newLen)])
for col in range(0, len(organized[row])):
- newcol = col / n_data
+ newcol = int(col / n_data)
newy[newcol] += organized[row][col]
for col in range(0, len(newy)):
- newy[col] /= n_data
+ newy[col] = int(newy[col]/n_data)
organized[row] = newy
return organized
@@ -320,15 +320,15 @@ def CFLOGOrganizeCuda(list, ptx2cudamap):
nSamples = len(list[0])
# create a dictionary of empty data array (one array per cuda source line)
- for ptxline, cudaline in ptx2cudamap.iteritems():
- if tmp.has_key(cudaline):
+ for ptxline, cudaline in ptx2cudamap.items():
+ if cudaline in tmp:
pass
else:
tmp[cudaline] = [0 for lengthData in range(nSamples)]
for cudaline in tmp:
- for ptxLines, mapped_cudaline in ptx2cudamap.iteritems():
+ for ptxLines, mapped_cudaline in ptx2cudamap.items():
if mapped_cudaline == cudaline:
for lengthData in range(nSamples):
tmp[cudaline][lengthData] += list[ptxLines][lengthData]
@@ -336,7 +336,7 @@ def CFLOGOrganizeCuda(list, ptx2cudamap):
final = []
for iter in range(min(tmp.keys()),max(tmp.keys())):
- if tmp.has_key(iter):
+ if iter in tmp:
final.append(tmp[iter])
else:
final.append([0 for lengthData in range(nSamples)])
@@ -356,3 +356,4 @@ def CFLOGOrganizeCuda(list, ptx2cudamap):
# return organized
+
diff --git a/aerialvision/parser.out b/aerialvision/parser.out
new file mode 100644
index 0000000..809874f
--- /dev/null
+++ b/aerialvision/parser.out
@@ -0,0 +1,47 @@
+Created by PLY version 3.11 (http://www.dabeaz.com/ply)
+
+Grammar
+
+Rule 0 S' -> sentence
+Rule 1 sentence -> WORD NUMBERSEQUENCE
+
+Terminals, with rules where they appear
+
+NUMBERSEQUENCE : 1
+WORD : 1
+error :
+
+Nonterminals, with rules where they appear
+
+sentence : 0
+
+Parsing method: LALR
+
+state 0
+
+ (0) S' -> . sentence
+ (1) sentence -> . WORD NUMBERSEQUENCE
+
+ WORD shift and go to state 2
+
+ sentence shift and go to state 1
+
+state 1
+
+ (0) S' -> sentence .
+
+
+
+state 2
+
+ (1) sentence -> WORD . NUMBERSEQUENCE
+
+ NUMBERSEQUENCE shift and go to state 3
+
+
+state 3
+
+ (1) sentence -> WORD NUMBERSEQUENCE .
+
+ $end reduce using rule 1 (sentence -> WORD NUMBERSEQUENCE .)
+
diff --git a/aerialvision/parsetab.py b/aerialvision/parsetab.py
new file mode 100644
index 0000000..47a3884
--- /dev/null
+++ b/aerialvision/parsetab.py
@@ -0,0 +1,31 @@
+
+# parsetab.py
+# This file is automatically generated. Do not edit.
+# pylint: disable=W,C,R
+_tabversion = '3.10'
+
+_lr_method = 'LALR'
+
+_lr_signature = 'NUMBERSEQUENCE WORDsentence : WORD NUMBERSEQUENCE'
+
+_lr_action_items = {'WORD':([0,],[2,]),'$end':([1,3,],[0,-1,]),'NUMBERSEQUENCE':([2,],[3,]),}
+
+_lr_action = {}
+for _k, _v in _lr_action_items.items():
+ for _x,_y in zip(_v[0],_v[1]):
+ if not _x in _lr_action: _lr_action[_x] = {}
+ _lr_action[_x][_k] = _y
+del _lr_action_items
+
+_lr_goto_items = {'sentence':([0,],[1,]),}
+
+_lr_goto = {}
+for _k, _v in _lr_goto_items.items():
+ for _x, _y in zip(_v[0], _v[1]):
+ if not _x in _lr_goto: _lr_goto[_x] = {}
+ _lr_goto[_x][_k] = _y
+del _lr_goto_items
+_lr_productions = [
+ ("S' -> sentence","S'",1,None,None,None),
+ ('sentence -> WORD NUMBERSEQUENCE','sentence',2,'p_sentence','lexyacc.py',220),
+]
diff --git a/aerialvision/startup.py b/aerialvision/startup.py
index ae14fd3..d261c0c 100644
--- a/aerialvision/startup.py
+++ b/aerialvision/startup.py
@@ -62,11 +62,11 @@
import sys
-import Tkinter as Tk
+import tkinter as Tk
import Pmw
import lexyacc
import guiclasses
-import tkFileDialog as Fd
+import tkinter.filedialog as Fd
import organizedata
import os
import os.path
@@ -160,7 +160,7 @@ def fileInput(cl_files=None):
tmprecentfile = tmprecentfile.split('/')
for iter in range(1,len(tmprecentfile) - 1):
recentfile = recentfile + '/' + tmprecentfile[iter]
- except IOError,e:
+ except IOError as e:
if e.errno == 2:
# recentfiles.txt does not exist, ignore and use CWD
recentfile = '.'
@@ -313,7 +313,7 @@ def loadRecentFile(entry):
try:
loadfile = open(os.path.join(userSettingPath, 'recentfiles.txt'), 'r')
recentfiles = loadfile.readlines()
- except IOError,e:
+ except IOError as e:
if e.errno == 2:
recentfiles = ''
else:
@@ -323,7 +323,7 @@ def loadRecentFile(entry):
recentFileWindow.pack(side = Tk.TOP)
scrollbar = Tk.Scrollbar(recentFileWindow, orient = Tk.VERTICAL)
cRecentFile = Tk.Listbox(recentFileWindow, width = 100, height = 15, yscrollcommand = scrollbar.set)
- cRecentFile.bind("<Double-Button-1>", lambda(event): recentFileInsert(entry, cRecentFile.get('active'), instance))
+ cRecentFile.bind("<Double-Button-1>", lambda event: recentFileInsert(entry, cRecentFile.get('active'), instance))
cRecentFile.pack(side = Tk.LEFT)
scrollbar.config(command = cRecentFile.yview)
scrollbar.pack(side = Tk.LEFT, fill = Tk.Y)
@@ -391,9 +391,9 @@ def addListToListbox(listbox,list):
Filenames.append(string)
listbox.insert(Tk.END, string)
else:
- print 'Could not open file: ' + string
+ print('Could not open file: ' + string)
except:
- print 'Could not open file: ' + file
+ print('Could not open file: ' + file)
def errorMsg(string):
@@ -447,6 +447,7 @@ def submitClicked(instance, num, skipcflog, cflog2cuda, listboxes):
startup(res, [TEFiles, TEPTXFiles, TEStatFiles])
def graphAddTab(vars, graphTabs,res, entry):
+
TabsForGraphs.append(guiclasses.formEntry(graphTabs, str(len(TabsForGraphs) + 1), vars, res, entry))
entry.delete(0, Tk.END)
@@ -586,7 +587,7 @@ def startup(res, TEFILES):
organizedata.setCFLOGInfoFiles(TEFILES)
for files in Filenames:
vars[files] = organizedata.organizedata(vars[files])
-
+
graphAddTab(vars, graphTabs, res, eAddTab)
@@ -873,3 +874,4 @@ def manageFilesSubmit(window, listbox):
+
diff --git a/aerialvision/variableclasses.py b/aerialvision/variableclasses.py
index 18850a1..30d8d2d 100644
--- a/aerialvision/variableclasses.py
+++ b/aerialvision/variableclasses.py
@@ -102,8 +102,9 @@ class variable:
assert(self.organize == 'idx2DVec')
elif (self.type == 5):
assert(self.organize == 'sparse')
- except Exception, (e):
- print "Error in creating new stat variable from string: %s" % string_spec
+ except Exception as xxx_todo_changeme:
+ (e) = xxx_todo_changeme
+ print("Error in creating new stat variable from string: %s" % string_spec)
raise e
def initSparseMatrix(self):
@@ -133,7 +134,7 @@ def loadLineStatName(filename):
global lineStatName
file = open(filename, 'r')
while file:
- line = file.readline()
+ line = file.readline().decode()
if not line : break
if (line.startswith('kernel line :')) :
line = line.strip()
@@ -171,7 +172,7 @@ class cudaLineNo:
except:
tmp = 0
if cudaLineNo.debug:
- print 'Exception in cudaLineNo.takeMax()', self.stats[key]
+ print('Exception in cudaLineNo.takeMax()', self.stats[key])
return tmp
def takeRatioSums(self, key1,key2):
@@ -182,9 +183,9 @@ class cudaLineNo:
return tmp1/tmp2
except:
if cudaLineNo.debug:
- print tmp1, tmp2
+ print(tmp1, tmp2)
if tmp2 == 0 and cudaLineNo.debug:
- print 'infinite'
+ print('infinite')
return 0
@@ -209,7 +210,7 @@ class ptxLineNo:
return tmp1/tmp2
except:
if tmp2 == 0 and ptxLineNo.debug:
- print 'infinite'
+ print('infinite')
return 0
@@ -221,3 +222,4 @@ class ptxLineNo:
+
diff --git a/bin/aerialvision.py b/bin/aerialvision.py
index a5b02f0..5cc7ad9 100755
--- a/bin/aerialvision.py
+++ b/bin/aerialvision.py
@@ -66,20 +66,21 @@ import sys
import os
if not os.environ['HOME']:
- print 'please set your HOME environment variable to your home directory'
+ print('please set your HOME environment variable to your home directory')
sys.exit
if not os.environ['GPGPUSIM_ROOT']:
- print 'please set your GPGPUSIM_ROOT environment variable to your home directory'
+ print('please set your GPGPUSIM_ROOT environment variable to your home directory')
sys.exit
sys.path.append( os.environ['GPGPUSIM_ROOT'] + '/aerialvision/' )
-import Tkinter as Tk
+import tkinter as Tk
import Pmw
import startup
import time
-from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
+from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
startup.fileInput(sys.argv[1:])
+
diff --git a/cuobjdump_to_ptxplus/cuobjdumpInstList.cc b/cuobjdump_to_ptxplus/cuobjdumpInstList.cc
index 32834c7..d42e59e 100644
--- a/cuobjdump_to_ptxplus/cuobjdumpInstList.cc
+++ b/cuobjdump_to_ptxplus/cuobjdumpInstList.cc
@@ -505,7 +505,7 @@ std::string cuobjdumpInstList::parseCuobjdumpRegister(std::string reg, bool lo,
} else {
output("ERROR: unknown register type.\n");
printf("\nERROR: unknown register type: ");
- printf(reg.c_str());
+ printf("%s",reg.c_str());
printf("\n");
assert(0);
}
diff --git a/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc b/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc
index 82dcb7c..5c6fdcd 100644
--- a/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc
+++ b/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc
@@ -54,7 +54,7 @@ FILE *ptxplus_out;
void output(const char * text)
{
//printf(text);
- fprintf(ptxplus_out, text);
+ fprintf(ptxplus_out,"%s", text);
}
void output(const std::string text) {
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index fd05f55..12d3aac 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -435,7 +435,7 @@ std::string get_app_binary() {
// above func gives abs path whereas this give just the name of application.
char *get_app_binary_name(std::string abs_path) {
- char *self_exe_path;
+ char *self_exe_path = NULL;
#ifdef __APPLE__
// TODO: get apple device and check the result.
printf("WARNING: not tested for Apple-mac devices \n");
@@ -463,7 +463,7 @@ static int get_app_cuda_version() {
"ldd " + get_app_binary() +
" | grep libcudart.so | sed 's/.*libcudart.so.\\(.*\\) =>.*/\\1/' > " +
fname;
- system(app_cuda_version_command.c_str());
+ int res = system(app_cuda_version_command.c_str());
FILE *cmd = fopen(fname, "r");
char buf[256];
while (fgets(buf, sizeof(buf), cmd) != 0) {
@@ -1410,7 +1410,7 @@ cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlagsInternal(
function_info *entry = context->get_kernel(hostFunc);
printf(
"Calculate Maxium Active Block with function ptr=%p, blockSize=%d, "
- "SMemSize=%d\n",
+ "SMemSize=%lu\n",
hostFunc, blockSize, dynamicSMemSize);
if (flags == cudaOccupancyDefault) {
// create kernel_info based on entry
@@ -3234,7 +3234,7 @@ char *readfile(const std::string filename) {
fseek(fp, 0, SEEK_SET);
// allocate and copy the entire ptx
char *ret = (char *)malloc((filesize + 1) * sizeof(char));
- fread(ret, 1, filesize, fp);
+ int num = fread(ret, 1, filesize, fp);
ret[filesize] = '\0';
fclose(fp);
return ret;
@@ -3478,7 +3478,7 @@ void gpgpu_context::cuobjdumpParseBinary(unsigned int handle) {
context->add_binary(symtab, handle);
return;
}
- symbol_table *symtab;
+ symbol_table *symtab = NULL;
#if (CUDART_VERSION >= 6000)
// loops through all ptx files from smallest sm version to largest
diff --git a/src/abstract_hardware_model.cc b/src/abstract_hardware_model.cc
index fda84e8..ed7347d 100644
--- a/src/abstract_hardware_model.cc
+++ b/src/abstract_hardware_model.cc
@@ -75,7 +75,7 @@ void checkpoint::load_global_mem(class memory_space *temp_mem, char *f1name) {
FILE *fp2 = fopen(f1name, "r");
assert(fp2 != NULL);
char line[128]; /* or other suitable maximum line size */
- unsigned int offset;
+ unsigned int offset = 0;
while (fgets(line, sizeof line, fp2) != NULL) /* read a line */
{
unsigned int index;
@@ -1006,13 +1006,13 @@ void simt_stack::print(FILE *fout) const {
}
for (unsigned j = 0; j < m_warp_size; j++)
fprintf(fout, "%c", (stack_entry.m_active_mask.test(j) ? '1' : '0'));
- fprintf(fout, " pc: 0x%03x", stack_entry.m_pc);
+ fprintf(fout, " pc: 0x%03llx", stack_entry.m_pc);
if (stack_entry.m_recvg_pc == (unsigned)-1) {
fprintf(fout, " rp: ---- tp: %s cd: %2u ",
(stack_entry.m_type == STACK_ENTRY_TYPE_CALL ? "C" : "N"),
stack_entry.m_calldepth);
} else {
- fprintf(fout, " rp: %4u tp: %s cd: %2u ", stack_entry.m_recvg_pc,
+ fprintf(fout, " rp: %4llu tp: %s cd: %2u ", stack_entry.m_recvg_pc,
(stack_entry.m_type == STACK_ENTRY_TYPE_CALL ? "C" : "N"),
stack_entry.m_calldepth);
}
@@ -1032,7 +1032,7 @@ void simt_stack::print_checkpoint(FILE *fout) const {
for (unsigned j = 0; j < m_warp_size; j++)
fprintf(fout, "%c ", (stack_entry.m_active_mask.test(j) ? '1' : '0'));
- fprintf(fout, "%d %d %d %lld %d ", stack_entry.m_pc,
+ fprintf(fout, "%llu %d %llu %lld %d ", stack_entry.m_pc,
stack_entry.m_calldepth, stack_entry.m_recvg_pc,
stack_entry.m_branch_div_cycle, stack_entry.m_type);
fprintf(fout, "%d %d\n", m_warp_id, m_warp_size);
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h
index 6e4a87d..3b95829 100644
--- a/src/abstract_hardware_model.h
+++ b/src/abstract_hardware_model.h
@@ -963,7 +963,7 @@ class inst_t {
}
bool valid() const { return m_decoded; }
virtual void print_insn(FILE *fp) const {
- fprintf(fp, " [inst @ pc=0x%04x] ", pc);
+ fprintf(fp, " [inst @ pc=0x%04llx] ", pc);
}
bool is_load() const {
return (op == LOAD_OP || op == TENSOR_CORE_LOAD_OP ||
@@ -1157,7 +1157,7 @@ class warp_inst_t : public inst_t {
// accessors
virtual void print_insn(FILE *fp) const {
- fprintf(fp, " [inst @ pc=0x%04x] ", pc);
+ fprintf(fp, " [inst @ pc=0x%04llx] ", pc);
for (int i = (int)m_config->warp_size - 1; i >= 0; i--)
fprintf(fp, "%c", ((m_warp_active_mask[i]) ? '1' : '0'));
}
@@ -1386,7 +1386,7 @@ class register_set {
assert(has_ready());
warp_inst_t **ready;
ready = NULL;
- unsigned reg_id;
+ unsigned reg_id = 0;
for (unsigned i = 0; i < regs.size(); i++) {
if (not regs[i]->empty()) {
if (ready and (*ready)->get_uid() < regs[i]->get_uid()) {
diff --git a/src/cuda-sim/Makefile b/src/cuda-sim/Makefile
index 85d1c8c..01bc480 100644
--- a/src/cuda-sim/Makefile
+++ b/src/cuda-sim/Makefile
@@ -129,9 +129,9 @@ $(OUTPUT_DIR)/instructions.h: instructions.cc
$(OUTPUT_DIR)/ptx_parser_decode.def: $(OUTPUT_DIR)/ptx.tab.c
ifeq ($(shell uname),Linux)
- cat $(OUTPUT_DIR)/ptx.tab.h | grep "=" | sed 's/^[ ]\+//' | sed 's/[=,]//g' | sed 's/\([_A-Z1-9]\+\)[ ]\+\([0-9]\+\)/\1 \1/' | sed 's/^/DEF(/' | sed 's/ /,"/' | sed 's/$$/")/' > $(OUTPUT_DIR)/ptx_parser_decode.def
+ cat $(OUTPUT_DIR)/ptx.tab.h | grep "=" | sed 's/^[ ]\+//' | sed -E 's/\s+\/\*.+\*\///' | sed 's/[=,]//g' | sed 's/\([_A-Z1-9]\+\)[ ]\+\([0-9]\+\)/\1 \1/' | sed 's/^/DEF(/' | sed 's/ /,"/' | sed 's/$$/")/' | sed '/YYerror/d;/YYEOF/d;/YYEMPTY/d;/YYUNDEF/d;'> $(OUTPUT_DIR)/ptx_parser_decode.def
else
- cat $(OUTPUT_DIR)/ptx.tab.h | grep "=" | sed -E 's/^ +//' | sed 's/[=,]//g' | sed -E 's/([_A-Z1-9]+).*/\1 \1/' | sed 's/^/DEF(/' | sed 's/ /,"/' | sed 's/$$/")/' > $(OUTPUT_DIR)/ptx_parser_decode.def
+ cat $(OUTPUT_DIR)/ptx.tab.h | grep "=" | sed -E 's/^ +//' | sed -E 's/\s+\/\*.+\*\///' | sed 's/[=,]//g' | sed -E 's/([_A-Z1-9]+).*/\1 \1/' | sed 's/^/DEF(/' | sed 's/ /,"/' | sed 's/$$/")/' | sed '/YYerror/d;/YYEOF/d;/YYEMPTY/d;/YYUNDEF/d;' > $(OUTPUT_DIR)/ptx_parser_decode.def
endif
$(OUTPUT_DIR)/instructions.o: $(OUTPUT_DIR)/instructions.h $(OUTPUT_DIR)/ptx.tab.c
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index 680ce79..b063512 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -545,7 +545,7 @@ void gpgpu_t::gpu_memset(size_t dst_start_addr, int c, size_t count) {
void cuda_sim::ptx_print_insn(address_type pc, FILE *fp) {
std::map<unsigned, function_info *>::iterator f = g_pc_to_finfo.find(pc);
if (f == g_pc_to_finfo.end()) {
- fprintf(fp, "<no instruction at address 0x%x>", pc);
+ fprintf(fp, "<no instruction at address 0x%llx>", pc);
return;
}
function_info *finfo = f->second;
@@ -559,7 +559,7 @@ std::string cuda_sim::ptx_get_insn_str(address_type pc) {
#define STR_SIZE 255
char buff[STR_SIZE];
buff[STR_SIZE - 1] = '\0';
- snprintf(buff, STR_SIZE, "<no instruction at address 0x%x>", pc);
+ snprintf(buff, STR_SIZE, "<no instruction at address 0x%llx>", pc);
return std::string(buff);
}
function_info *finfo = f->second;
@@ -1372,7 +1372,7 @@ void function_info::add_param_data(unsigned argn,
unsigned num_bits = 8 * args->m_nbytes;
printf(
"GPGPU-Sim PTX: deferred allocation of shared region for \"%s\" from "
- "0x%x to 0x%x (shared memory space)\n",
+ "0x%llx to 0x%llx (shared memory space)\n",
p->name().c_str(), m_symtab->get_shared_next(),
m_symtab->get_shared_next() + num_bits / 8);
fflush(stdout);
@@ -1503,7 +1503,7 @@ void function_info::list_param(FILE *fout) const {
std::string name = p.get_name();
symbol *param = m_symtab->lookup(name.c_str());
addr_t param_addr = param->get_address();
- fprintf(fout, "%s: %#08x\n", name.c_str(), param_addr);
+ fprintf(fout, "%s: %#08llx\n", name.c_str(), param_addr);
}
fflush(fout);
}
@@ -1533,7 +1533,11 @@ void function_info::ptx_jit_config(
filename_c.c_str());
assert(system(buff) != NULL);
FILE *fp = fopen(filename_c.c_str(), "r");
- fgets(buff, 1024, fp);
+ char * ptr = fgets(buff, 1024, fp);
+ if(ptr == NULL ){
+ printf("can't read file %s \n", filename_c.c_str());
+ assert(0);
+ }
fclose(fp);
std::string fn(buff);
size_t pos1, pos2;
@@ -1877,7 +1881,7 @@ void ptx_thread_info::ptx_exec_inst(warp_inst_t &inst, unsigned lane_id) {
dim3 tid = get_tid();
printf(
"%u [thd=%u][i=%u] : ctaid=(%u,%u,%u) tid=(%u,%u,%u) icount=%u "
- "[pc=%u] (%s:%u - %s) [0x%llx]\n",
+ "[pc=%llu] (%s:%u - %s) [0x%llx]\n",
m_gpu->gpgpu_ctx->func_sim->g_ptx_sim_num_insn, get_uid(), pI->uid(),
ctaid.x, ctaid.y, ctaid.z, tid.x, tid.y, tid.z, get_icount(), pc,
pI->source_file(), pI->source_line(), pI->get_source(),
@@ -2376,7 +2380,7 @@ void cuda_sim::read_sim_environment_variables() {
"%s\n",
dbg_pc);
fflush(stdout);
- sscanf(dbg_pc, "%d", &g_debug_pc);
+ sscanf(dbg_pc, "%llu", &g_debug_pc);
}
#if CUDART_VERSION > 1010
diff --git a/src/cuda-sim/cuda_device_runtime.cc b/src/cuda-sim/cuda_device_runtime.cc
index 4a99c1c..8ed90bc 100644
--- a/src/cuda-sim/cuda_device_runtime.cc
+++ b/src/cuda-sim/cuda_device_runtime.cc
@@ -36,7 +36,7 @@ void cuda_device_runtime::gpgpusim_cuda_getParameterBufferV2(
unsigned n_args = target_func->num_args();
assert(n_args == 4);
- function_info *child_kernel_entry;
+ function_info *child_kernel_entry = NULL;
struct dim3 grid_dim, block_dim;
unsigned int shared_mem;
@@ -258,7 +258,7 @@ void cuda_device_runtime::gpgpusim_cuda_streamCreateWithFlags(
assert(n_args == 2);
size_t generic_pStream_addr;
- addr_t pStream_addr;
+ addr_t pStream_addr = 0;
unsigned int flags;
for (unsigned arg = 0; arg < n_args; arg++) {
const operand_info &actual_param_op =
diff --git a/src/cuda-sim/memory.cc b/src/cuda-sim/memory.cc
index 1323837..036bada 100644
--- a/src/cuda-sim/memory.cc
+++ b/src/cuda-sim/memory.cc
@@ -109,11 +109,11 @@ void memory_space_impl<BSIZE>::read_single_block(mem_addr_t blk_idx,
if ((addr + length) > (blk_idx + 1) * BSIZE) {
printf(
"GPGPU-Sim PTX: ERROR * access to memory \'%s\' is unaligned : "
- "addr=0x%x, length=%zu\n",
+ "addr=0x%llx, length=%zu\n",
m_name.c_str(), addr, length);
printf(
- "GPGPU-Sim PTX: (addr+length)=0x%lx > 0x%x=(index+1)*BSIZE, "
- "index=0x%x, BSIZE=0x%x\n",
+ "GPGPU-Sim PTX: (addr+length)=0x%llx > 0x%llx=(index+1)*BSIZE, "
+ "index=0x%llx, BSIZE=0x%x\n",
(addr + length), (blk_idx + 1) * BSIZE, blk_idx, BSIZE);
throw 1;
}
@@ -169,7 +169,7 @@ void memory_space_impl<BSIZE>::print(const char *format, FILE *fout) const {
typename map_t::const_iterator i_page;
for (i_page = m_data.begin(); i_page != m_data.end(); ++i_page) {
- fprintf(fout, "%s %08x:", m_name.c_str(), i_page->first);
+ fprintf(fout, "%s %08llx:", m_name.c_str(), i_page->first);
i_page->second.print(format, fout);
}
}
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc
index 029cf73..f25f1d5 100644
--- a/src/cuda-sim/ptx_ir.cc
+++ b/src/cuda-sim/ptx_ir.cc
@@ -1470,7 +1470,7 @@ std::string ptx_instruction::to_string() const {
unsigned used_bytes = 0;
if (!is_label()) {
used_bytes +=
- snprintf(buf + used_bytes, STR_SIZE - used_bytes, " PC=0x%03x ", m_PC);
+ snprintf(buf + used_bytes, STR_SIZE - used_bytes, " PC=0x%03llx ", m_PC);
} else {
used_bytes +=
snprintf(buf + used_bytes, STR_SIZE - used_bytes, " ");
diff --git a/src/cuda-sim/ptx_loader.cc b/src/cuda-sim/ptx_loader.cc
index 4e91763..df35498 100644
--- a/src/cuda-sim/ptx_loader.cc
+++ b/src/cuda-sim/ptx_loader.cc
@@ -95,7 +95,7 @@ void gpgpu_context::print_ptx_file(const char *p, unsigned source_num,
const ptx_instruction *pI = ptx_parser->ptx_instruction_lookup(filename, n);
char pc[64];
if (pI && pI->get_PC())
- snprintf(pc, 64, "%4u", pI->get_PC());
+ snprintf(pc, 64, "%4llu", pI->get_PC());
else
snprintf(pc, 64, " ");
printf(" _%u.ptx %4u (pc=%s): %s\n", source_num, n, pc, t);
@@ -240,7 +240,7 @@ void fix_duplicate_errors(char fname2[1024]) {
unsigned oldlinenum = 1;
unsigned linenum;
char *startptr = ptxdata;
- char *funcptr;
+ char *funcptr = NULL;
char *tempptr = ptxdata - 1;
char *lineptr = ptxdata - 1;
@@ -320,7 +320,7 @@ void fix_duplicate_errors(char fname2[1024]) {
// we need the application name here too.
char *get_app_binary_name() {
char exe_path[1025];
- char *self_exe_path;
+ char *self_exe_path = NULL;
#ifdef __APPLE__
// AMRUTH: get apple device and check the result.
printf("WARNING: not tested for Apple-mac devices \n");
diff --git a/src/cuda-sim/ptx_parser.cc b/src/cuda-sim/ptx_parser.cc
index 86a33c2..a80eeae 100644
--- a/src/cuda-sim/ptx_parser.cc
+++ b/src/cuda-sim/ptx_parser.cc
@@ -206,7 +206,7 @@ void ptx_recognizer::end_function() {
gpgpu_ptx_assemble(g_func_info->get_name(), g_func_info);
g_current_symbol_table = g_global_symbol_table;
- PTX_PARSE_DPRINTF("function %s, PC = %d\n", g_func_info->get_name().c_str(),
+ PTX_PARSE_DPRINTF("function %s, PC = %llu\n", g_func_info->get_name().c_str(),
g_func_info->get_start_PC());
}
@@ -486,7 +486,7 @@ void ptx_recognizer::add_identifier(const char *identifier, int array_dim,
case param_space_local:
printf(
"GPGPU-Sim PTX: allocating stack frame region for .param \"%s\" from "
- "0x%x to 0x%lx\n",
+ "0x%llx to 0x%llx\n",
identifier, g_current_symbol_table->get_local_next(),
g_current_symbol_table->get_local_next() + num_bits / 8);
fflush(stdout);
@@ -521,7 +521,7 @@ void ptx_recognizer::add_constptr(const char *identifier1,
unsigned addr = s2->get_address();
- printf("GPGPU-Sim PTX: moving \"%s\" from 0x%x to 0x%x (%s+%x)\n",
+ printf("GPGPU-Sim PTX: moving \"%s\" from 0x%llx to 0x%x (%s+%d)\n",
identifier1, s1->get_address(), addr + offset, identifier2, offset);
s1->set_address(addr + offset);
diff --git a/src/cuda-sim/ptx_sim.cc b/src/cuda-sim/ptx_sim.cc
index dc801f8..6503499 100644
--- a/src/cuda-sim/ptx_sim.cc
+++ b/src/cuda-sim/ptx_sim.cc
@@ -369,7 +369,7 @@ static void print_reg(FILE *fp, std::string name, ptx_reg_t value,
fprintf(fp, ".u64 %llu [0x%llx]\n", value.u64, value.u64);
break;
case F16_TYPE:
- fprintf(fp, ".f16 %f [0x%04x]\n", value.f16, (unsigned)value.u16);
+ fprintf(fp, ".f16 %f [0x%04x]\n", static_cast<float>(value.f16), (unsigned)value.u16);
break;
case F32_TYPE:
fprintf(fp, ".f32 %.15lf [0x%08x]\n", value.f32, value.u32);
diff --git a/src/debug.cc b/src/debug.cc
index 29506bd..e23ffd4 100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -124,7 +124,7 @@ void gpgpu_sim::gpgpu_debug() {
fflush(stdout);
char line[1024];
- fgets(line, 1024, stdin);
+ char * ptr = fgets(line, 1024, stdin);
char *tok = strtok(line, " \t\n");
if (!strcmp(tok, "dp")) {
@@ -136,7 +136,11 @@ void gpgpu_sim::gpgpu_debug() {
fflush(stdout);
} else if (!strcmp(tok, "q") || !strcmp(tok, "quit")) {
printf("\nreally quit GPGPU-Sim (y/n)?\n");
- fgets(line, 1024, stdin);
+ ptr = fgets(line, 1024, stdin);
+ if(ptr == NULL ){
+ printf("can't read input\n");
+ exit(0);
+ }
tok = strtok(line, " \t\n");
if (!strcmp(tok, "y")) {
exit(0);
diff --git a/src/gpgpu-sim/gpu-sim.cc b/src/gpgpu-sim/gpu-sim.cc
index 5af244b..5a68f13 100644
--- a/src/gpgpu-sim/gpu-sim.cc
+++ b/src/gpgpu-sim/gpu-sim.cc
@@ -2053,7 +2053,7 @@ void gpgpu_sim::cycle() {
m_cluster[i]->get_current_occupancy(active, total);
}
DPRINTFG(LIVENESS,
- "uArch: inst.: %lld (ipc=%4.1f, occ=%0.4f\% [%llu / %llu]) "
+ "uArch: inst.: %lld (ipc=%4.1f, occ=%0.4f%% [%llu / %llu]) "
"sim_rate=%u (inst/sec) elapsed = %u:%u:%02u:%02u / %s",
gpu_tot_sim_insn + gpu_sim_insn,
(double)gpu_sim_insn / (double)gpu_sim_cycle,
diff --git a/src/gpgpu-sim/local_interconnect.cc b/src/gpgpu-sim/local_interconnect.cc
index 0e20462..df6bd7b 100644
--- a/src/gpgpu-sim/local_interconnect.cc
+++ b/src/gpgpu-sim/local_interconnect.cc
@@ -159,8 +159,8 @@ void xbar_router::RR_Advance() {
}
if (verbose) {
- printf("%d : cycle %d : conflicts = %d\n", m_id, cycles, conflict_sub);
- printf("%d : cycle %d : passing reqs = %d\n", m_id, cycles, reqs);
+ printf("%d : cycle %llu : conflicts = %d\n", m_id, cycles, conflict_sub);
+ printf("%d : cycle %llu : passing reqs = %d\n", m_id, cycles, reqs);
}
// collect some stats about buffer util
@@ -217,7 +217,7 @@ void xbar_router::iSLIP_Advance() {
out_buffers[_packet.output_deviceID].push(_packet);
in_buffers[node_id].pop();
if (verbose)
- printf("%d : cycle %d : send req from %d to %d\n", m_id, cycles,
+ printf("%d : cycle %llu : send req from %d to %d\n", m_id, cycles,
node_id, i - _n_shader);
if (grant_cycles_count == 1)
next_node[i] = (++node_id % total_nodes);
@@ -228,7 +228,7 @@ void xbar_router::iSLIP_Advance() {
Packet _packet2 = in_buffers[node_id2].front();
if (_packet2.output_deviceID == i)
- printf("%d : cycle %d : cannot send req from %d to %d\n",
+ printf("%d : cycle %llu : cannot send req from %d to %d\n",
m_id, cycles, node_id2, i - _n_shader);
}
}
@@ -248,7 +248,7 @@ void xbar_router::iSLIP_Advance() {
}
if (verbose)
- printf("%d : cycle %d : grant_cycles = %d\n", m_id, cycles, grant_cycles);
+ printf("%d : cycle %llu : grant_cycles = %d\n", m_id, cycles, grant_cycles);
if (active && grant_cycles_count == 1)
grant_cycles_count = grant_cycles;
@@ -256,8 +256,8 @@ void xbar_router::iSLIP_Advance() {
grant_cycles_count--;
if (verbose) {
- printf("%d : cycle %d : conflicts = %d\n", m_id, cycles, conflict_sub);
- printf("%d : cycle %d : passing reqs = %d\n", m_id, cycles, reqs);
+ printf("%d : cycle %llu : conflicts = %d\n", m_id, cycles, conflict_sub);
+ printf("%d : cycle %llu : passing reqs = %d\n", m_id, cycles, reqs);
}
// collect some stats about buffer util
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index 6f68283..4ae0f62 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -2416,8 +2416,10 @@ void pipelined_simd_unit::cycle() {
if (!m_dispatch_reg->dispatch_delay()) {
int start_stage =
m_dispatch_reg->latency - m_dispatch_reg->initiation_interval;
- move_warp(m_pipeline_reg[start_stage], m_dispatch_reg);
- active_insts_in_pipeline++;
+ if(m_pipeline_reg[start_stage]->empty()) {
+ move_warp(m_pipeline_reg[start_stage], m_dispatch_reg);
+ active_insts_in_pipeline++;
+ }
}
}
occupied >>= 1;
@@ -3080,7 +3082,7 @@ void warp_inst_t::print(FILE *fout) const {
fprintf(fout, "bubble\n");
return;
} else
- fprintf(fout, "0x%04x ", pc);
+ fprintf(fout, "0x%04llx ", pc);
fprintf(fout, "w%02d[", m_warp_id);
for (unsigned j = 0; j < m_config->warp_size; j++)
fprintf(fout, "%c", (active(j) ? '1' : '0'));
@@ -3266,7 +3268,7 @@ void shader_core_ctx::display_pipeline(FILE *fout, int print_mem,
if (!m_inst_fetch_buffer.m_valid)
fprintf(fout, "bubble\n");
else {
- fprintf(fout, "w%2u : pc = 0x%x, nbytes = %u\n",
+ fprintf(fout, "w%2u : pc = 0x%llx, nbytes = %u\n",
m_inst_fetch_buffer.m_warp_id, m_inst_fetch_buffer.m_pc,
m_inst_fetch_buffer.m_nbytes);
}
@@ -3932,7 +3934,7 @@ bool shd_warp_t::waiting() {
void shd_warp_t::print(FILE *fout) const {
if (!done_exit()) {
- fprintf(fout, "w%02u npc: 0x%04x, done:%c%c%c%c:%2u i:%u s:%u a:%u (done: ",
+ fprintf(fout, "w%02u npc: 0x%04llx, done:%c%c%c%c:%2u i:%u s:%u a:%u (done: ",
m_warp_id, m_next_pc, (functional_done() ? 'f' : ' '),
(stores_done() ? 's' : ' '), (inst_in_pipeline() ? ' ' : 'i'),
(done_exit() ? 'e' : ' '), n_completed, m_inst_in_pipeline,
@@ -4008,7 +4010,7 @@ void opndcoll_rfu_t::init(unsigned num_banks, shader_core_ctx *shader) {
sub_core_model = shader->get_config()->sub_core_model;
m_num_warp_scheds = shader->get_config()->gpgpu_num_sched_per_core;
- unsigned reg_id;
+ unsigned reg_id = 0;
if (sub_core_model) {
assert(num_banks % shader->get_config()->gpgpu_num_sched_per_core == 0);
assert(m_num_warp_scheds <= m_cu.size() &&
diff --git a/src/gpgpu-sim/stat-tool.cc b/src/gpgpu-sim/stat-tool.cc
index 0513d17..08bbe9e 100644
--- a/src/gpgpu-sim/stat-tool.cc
+++ b/src/gpgpu-sim/stat-tool.cc
@@ -519,7 +519,7 @@ void thread_insn_span::print_span(FILE *fout) const {
fprintf(fout, "%d: ", (int)m_cycle);
span_count_map::const_iterator i_sc = m_insn_span_count.begin();
for (; i_sc != m_insn_span_count.end(); ++i_sc) {
- fprintf(fout, "%d ", i_sc->first);
+ fprintf(fout, "%llx ", i_sc->first);
}
fprintf(fout, "\n");
}
diff --git a/src/intersim2/networks/kncube.cpp b/src/intersim2/networks/kncube.cpp
index 03e13e7..178c905 100644
--- a/src/intersim2/networks/kncube.cpp
+++ b/src/intersim2/networks/kncube.cpp
@@ -231,7 +231,7 @@ void KNCube::InsertRandomFaults( const Configuration &config )
int num_fails;
unsigned long prev_seed;
- int node, chan;
+ int node, chan = 0;
int i, j, t, n, c;
bool available;
diff --git a/src/intersim2/networks/qtree.cpp b/src/intersim2/networks/qtree.cpp
index 7214947..37d3d7c 100644
--- a/src/intersim2/networks/qtree.cpp
+++ b/src/intersim2/networks/qtree.cpp
@@ -84,7 +84,7 @@ void QTree::_BuildNet( const Configuration& config )
{
ostringstream routerName;
- int h, r, pos, port;
+ int h, r = 0 , pos, port;
for (h = 0; h < _n; h++) {
for (pos = 0 ; pos < powi( _k, h ) ; ++pos ) {