提交 c4aa115d authored 作者: Gabe Schwartz's avatar Gabe Schwartz

Removed (hopefully) the last uses of locals() inside list comprehensions.

上级 43700eae
...@@ -1133,10 +1133,10 @@ class GpuCAReduce(GpuOp): ...@@ -1133,10 +1133,10 @@ class GpuCAReduce(GpuOp):
assert N in [1, 2, 3] assert N in [1, 2, 3]
makecall = self._makecall(node, name, x, z, fail) makecall = self._makecall(node, name, x, z, fail)
N_pattern = ''.join(['1'] * N) N_pattern = ''.join(['1'] * N)
param_dim = ",".join(["CudaNdarray_HOST_DIMS(%(x)s)[%(i)s]" % locals() param_dim = ",".join(["CudaNdarray_HOST_DIMS(%s)[%d]" % (x, i)
for i in xrange(N + 1)]) for i in xrange(N + 1)])
strides_dim = ",".join(["CudaNdarray_HOST_STRIDES(%(x)s)[%(i)s]" strides_dim = ",".join(["CudaNdarray_HOST_STRIDES(%s)[%d]"
% locals() for i in xrange(N + 1)]) % (x, i) for i in xrange(N + 1)])
threads_y = """ threads_y = """
//get as many y threads as we can fit //get as many y threads as we can fit
...@@ -1728,9 +1728,9 @@ class GpuCAReduce(GpuOp): ...@@ -1728,9 +1728,9 @@ class GpuCAReduce(GpuOp):
sA3 = 'sA3' sA3 = 'sA3'
reducebuf = self._k_reduce_buf('Z[i0 * sZ0]', node, nodename, sub = {}) reducebuf = self._k_reduce_buf('Z[i0 * sZ0]', node, nodename, sub = {})
param_dim = ",".join(["const int d%(i)s" % locals() param_dim = ",".join(["const int d%d" % i
for i in xrange(nd_in)]) for i in xrange(nd_in)])
param_strides = ",".join(["const int sA%(i)s" % locals() param_strides = ",".join(["const int sA%d" % i
for i in xrange(nd_in)]) for i in xrange(nd_in)])
decl = self._k_decl(node, nodename) decl = self._k_decl(node, nodename)
init = self._k_init(node, nodename) init = self._k_init(node, nodename)
......
...@@ -600,9 +600,11 @@ class NaiveAlgo(object): ...@@ -600,9 +600,11 @@ class NaiveAlgo(object):
print >> sio, 'std::cerr << "\\n";' print >> sio, 'std::cerr << "\\n";'
for ipos in xrange(len(node.inputs)): for ipos in xrange(len(node.inputs)):
print >> sio, 'std::cerr << " local_str inputs %(ipos)s: " <<'%locals()+' << " " << '.join(["local_str[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_str inputs %(ipos)s: " <<'%locals() + \
' << " " << '.join(["local_str[%s][%s]"% (ipos, x) for x in xrange(nd)])+'<<"\\n";'
for ipos in xrange(len(node.outputs)): for ipos in xrange(len(node.outputs)):
print >> sio, 'std::cerr << " local_ostr inputs %(ipos)s: " <<'%locals()+' << " " << '.join(["local_ostr[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_ostr inputs %(ipos)s: " <<'%locals() + \
' << " " << '.join(["local_ostr[%s][%s]"% (ipos, x) for x in xrange(nd)])+'<<"\\n";'
print >> sio, """ print >> sio, """
for(int id=0;id<nd_collapse;id++){ for(int id=0;id<nd_collapse;id++){
...@@ -641,9 +643,9 @@ class NaiveAlgo(object): ...@@ -641,9 +643,9 @@ class NaiveAlgo(object):
print >> sio, 'std::cerr << "\\n";' print >> sio, 'std::cerr << "\\n";'
for ipos in xrange(len(node.inputs)): for ipos in xrange(len(node.inputs)):
print >> sio, 'std::cerr << " local_str %(ipos)s: " <<'%locals()+' << " " << '.join(["local_str[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_str %(ipos)s: " <<'%locals()+' << " " << '.join(["local_str[%s][%s]"% (ipos, x) for x in xrange(nd)])+'<<"\\n";'
for ipos in xrange(len(node.outputs)): for ipos in xrange(len(node.outputs)):
print >> sio, 'std::cerr << " local_ostr %(ipos)s: " <<'%locals()+' << " " << '.join(["local_ostr[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_ostr %(ipos)s: " <<'%locals()+' << " " << '.join(["local_ostr[%s][%s]"% (ipos, x) for x in xrange(nd)])+'<<"\\n";'
# collapse contiguous dimensions (ignoring scalars, generic version(collapse any dimensions, right, left, middle)) # collapse contiguous dimensions (ignoring scalars, generic version(collapse any dimensions, right, left, middle))
# this is a good idea because we make less index calculation in the gpu. # this is a good idea because we make less index calculation in the gpu.
...@@ -670,12 +672,7 @@ nd_collapse_[i]=0; ...@@ -670,12 +672,7 @@ nd_collapse_[i]=0;
print >>sio, """ print >>sio, """
std::cerr<< "nd_collapse_%(ipos)s "<< std::cerr<< "nd_collapse_%(ipos)s "<<
"""%locals() """%locals()
print >>sio, ' << " " << '.join(["nd_collapse_%(ipos)s["%locals()+str(i)+"]" for i in xrange(nd)]) print >>sio, ' << " " << '.join(["nd_collapse_%s[" % ipos +str(i)+"]" for i in xrange(nd)])
print >>sio, '<< "\\n";'
print >>sio, """
std::cerr<< "nd_collapse_ "<<
"""%locals()
print >>sio, ' << " " << '.join(["nd_collapse_["%locals()+str(i)+"]" for i in xrange(nd)])
print >>sio, '<< "\\n";' print >>sio, '<< "\\n";'
# update the local stride. # update the local stride.
...@@ -719,8 +716,8 @@ nd_collapse_[i]=0; ...@@ -719,8 +716,8 @@ nd_collapse_[i]=0;
if(nd_collapse_[i]==1)nd_collapse--; if(nd_collapse_[i]==1)nd_collapse--;
} }
if(nd_collapse == 1 """%locals() if(nd_collapse == 1 """%locals()
l=["local_str[%(ipos)s][nd_collapse-1]==1 "%locals()for ipos in xrange(len(node.inputs)) if not _logical_scalar(node.inputs[ipos])] l=["local_str[%s][nd_collapse-1]==1 "%ipos for ipos in xrange(len(node.inputs)) if not _logical_scalar(node.inputs[ipos])]
l+=["local_ostr[%(ipos)s][nd_collapse-1]==1 "%locals()for ipos in xrange(len(node.outputs)) if not _logical_scalar(node.outputs[ipos])] l+=["local_ostr[%s][nd_collapse-1]==1 "%ipos for ipos in xrange(len(node.outputs)) if not _logical_scalar(node.outputs[ipos])]
if len(l)>0: if len(l)>0:
print >> sio," && "," && ".join(l) print >> sio," && "," && ".join(l)
print >> sio,"""){nd_collapse=0;} """ print >> sio,"""){nd_collapse=0;} """
...@@ -734,9 +731,9 @@ nd_collapse_[i]=0; ...@@ -734,9 +731,9 @@ nd_collapse_[i]=0;
print >> sio, 'std::cerr << "\\n";' print >> sio, 'std::cerr << "\\n";'
for ipos in xrange(len(node.inputs)): for ipos in xrange(len(node.inputs)):
print >> sio, 'std::cerr << " local_str %(ipos)s: " <<'%locals()+' << " " << '.join(["local_str[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_str %(ipos)s: " <<'%locals()+' << " " << '.join(["local_str[%s][%s]"%(ipos, x) for x in xrange(nd)])+'<<"\\n";'
for ipos in xrange(len(node.outputs)): for ipos in xrange(len(node.outputs)):
print >> sio, 'std::cerr << " local_ostr %(ipos)s: " <<'%locals()+' << " " << '.join(["local_ostr[%(ipos)s][%(x)s]"%locals() for x in xrange(nd)])+'<<"\\n";' print >> sio, 'std::cerr << " local_ostr %(ipos)s: " <<'%locals()+' << " " << '.join(["local_ostr[%s][%s]"%(ipos, x) for x in xrange(nd)])+'<<"\\n";'
def launch_Ccontiguous(nodename, scalar_op, sync=True): def launch_Ccontiguous(nodename, scalar_op, sync=True):
......
...@@ -1074,7 +1074,7 @@ class Elemwise(Op): ...@@ -1074,7 +1074,7 @@ class Elemwise(Op):
# the element-wise computation. Aliased scalar variables need # the element-wise computation. Aliased scalar variables need
# not be declared, as they are #defined in defines # not be declared, as they are #defined in defines
task_decl = "".join([ task_decl = "".join([
"%(dtype)s& %(name)s_i = *%(name)s_iter;\n" % locals() "%s& %s_i = *%s_iter;\n" % (dtype, name, name)
for name, dtype in izip(inames + list(real_onames), for name, dtype in izip(inames + list(real_onames),
idtypes + list(real_odtypes))]) idtypes + list(real_odtypes))])
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论