stng
stng copied to clipboard
Creating sketches for stencilmark tests fails
Hi,
I built the frontend
with make
on a 32bit Ubuntu 14.04 setup (same as in the Dockerfile) and used it to get *.ir files with make stencil
in the stencilmark_fortran
folder. Then, I tried to use the provided docker image for the backend
in the stng/backend
directory to create the sketch file, but it fails with
[INFO]: Generating sketch level 11 from IR file: stencil_stencilmark/heat_loop0.ir
[INFO]: Sketch file: sketch/heat_loop0.sk
Traceback (most recent call last):
File "./stng-backend.py", line 139, in <module>
gen_sketch(args)
File "./stng-backend.py", line 32, in gen_sketch
sketch = whichGenerator(program, inputs, loopvars).generate()
File "/home/sdorkenw/stng/backend/generate_sketch.py", line 221, in generate
ret += self.generate_generators()
File "/home/sdorkenw/stng/backend/generate_sketch.py", line 739, in generate_generators
interpreter_result = interpret.Interpreter(inputs, outputs).interpret(self.program)
File "/home/sdorkenw/stng/backend/interpret.py", line 68, in interpret
self.visit(tree)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 107, in visit_Block
map(self.visit, node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 112, in visit_WhileLoop
self.visit(node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 107, in visit_Block
map(self.visit, node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 112, in visit_WhileLoop
self.visit(node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 107, in visit_Block
map(self.visit, node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 112, in visit_WhileLoop
self.visit(node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 107, in visit_Block
map(self.visit, node.body)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 119, in visit_AssignExp
self.state[node.lval.name.name][self.visit(node.lval.loc)+AOFFSET] = self.visit(node.rval)
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 103, in visit_BinExp
ret = sympy.sympify("(("+str(self.visit(node.left))+")" + node.op +"("+str(self.visit(node.right))+"))")
File "/usr/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/home/sdorkenw/stng/backend/interpret.py", line 90, in visit_ArrExp
return self.state[node.name.name][loc+AOFFSET]
IndexError: list index out of range
This is however working for the CloverLeaf_Serial
tests that I tried so far (eg. accelerate_kernel_loop82.ir
).
Let me look into this. I believe it's an issue of allocating a large enough array size in the interpreter. Thanks for reporting.