提交 492d5a6a authored 作者: Pierre Luc Carrier's avatar Pierre Luc Carrier

Fixed typo and remplaced local_optimizer by op_lifter.

上级 48607a1d
...@@ -15,6 +15,7 @@ except ImportError: ...@@ -15,6 +15,7 @@ except ImportError:
from theano.sandbox.gpuarray.basic_ops import (as_gpuarray_variable, from theano.sandbox.gpuarray.basic_ops import (as_gpuarray_variable,
host_from_gpu, gpu_from_host) host_from_gpu, gpu_from_host)
from theano.sandbox.gpuarray.opt import register_opt as register_gpu_opt from theano.sandbox.gpuarray.opt import register_opt as register_gpu_opt
from theano.sandbox.gpuarray.opt import op_lifter as op_lifter
from theano.sandbox.gpuarray.type import GpuArrayType from theano.sandbox.gpuarray.type import GpuArrayType
...@@ -44,7 +45,7 @@ class GpuImages2Neibs(Images2Neibs, Op): ...@@ -44,7 +45,7 @@ class GpuImages2Neibs(Images2Neibs, Op):
dtype=ten4.type.dtype)()]) dtype=ten4.type.dtype)()])
def c_code_cache_version(self): def c_code_cache_version(self):
return (9,) return (9,1)
def c_headers(self): def c_headers(self):
return ['cuda.h', '<compyte/extension.h>', '<numpy_compat.h>', return ['cuda.h', '<compyte/extension.h>', '<numpy_compat.h>',
...@@ -221,10 +222,8 @@ class GpuImages2Neibs(Images2Neibs, Op): ...@@ -221,10 +222,8 @@ class GpuImages2Neibs(Images2Neibs, Op):
z, = out z, = out
fail = sub['fail'] fail = sub['fail']
mode = self.mode mode = self.mode
import pdb
pdb.set_trace()
if config.gpuarray.sync: if config.gpuarray.sync:
cnda_thread_sync = "GpuArray_sync(&%(zz)s->ga);" % dict(zz=zz) cnda_thread_sync = "GpuArray_sync(&%(z)s->ga);" % dict(z=z)
else: else:
cnda_thread_sync = "" cnda_thread_sync = ""
return """ return """
...@@ -322,7 +321,7 @@ class GpuImages2Neibs(Images2Neibs, Op): ...@@ -322,7 +321,7 @@ class GpuImages2Neibs(Images2Neibs, Op):
grid_d = 1+(((PyGpuArray_DIMS(%(ten4)s))[3]-d)/step_y); grid_d = 1+(((PyGpuArray_DIMS(%(ten4)s))[3]-d)/step_y);
}else{ }else{
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"GpuImages2Neibs:: unknow mode '%(mode)s'"); "GpuImages2Neibs:: unknown mode '%(mode)s'");
%(fail)s; %(fail)s;
} }
...@@ -442,17 +441,9 @@ class GpuImages2Neibs(Images2Neibs, Op): ...@@ -442,17 +441,9 @@ class GpuImages2Neibs(Images2Neibs, Op):
} // END NESTED SCOPE } // END NESTED SCOPE
""" % locals() """ % locals()
def gpu_images2neibs(ten4, neib_shape, neib_step=None, mode='valid'):
return GpuImages2Neibs(mode)(ten4, neib_shape, neib_step)
@op_lifter([Images2Neibs]) @op_lifter([Images2Neibs])
def use_gpu_images2neibs(node): def use_gpu_images2neibs(node):
if (type(node.op) is Images2Neibs and if node.op.mode in ['valid', 'ignore_borders', 'wrap_centered']:
node.op.mode in ['valid', 'ignore_borders', 'wrap_centered']): return GpuImages2Neibs(node.op.mode)
return [host_from_gpu(gpu_images2neibs(gpu_from_host(node.inputs[0]),
node.inputs[1], node.inputs[2],
mode=node.op.mode))]
register_gpu_opt()(use_gpu_images2neibs) register_gpu_opt()(use_gpu_images2neibs)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论