提交 55f671d3 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Stop attempting to replicate strides on the GPU.

上级 5ed22311
...@@ -309,22 +309,27 @@ class GpuFromHost(Op): ...@@ -309,22 +309,27 @@ class GpuFromHost(Op):
def c_code(self, node, name, inputs, outputs, sub): def c_code(self, node, name, inputs, outputs, sub):
return """ return """
PyGpuArrayObject *%(name)s_tmp;
%(name)s_tmp = PyArray_GETCONTIGUOUS(%(inp)s);
if (%(name)s_tmp == NULL)
%(fail)s
Py_XDECREF(%(out)s); Py_XDECREF(%(out)s);
%(out)s = pygpu_fromhostdata(PyArray_DATA(%(inp)s), %(out)s = pygpu_fromhostdata(PyArray_DATA(%(name)s_tmp),
get_typecode((PyObject *)PyArray_DESCR(%(inp)s)), get_typecode((PyObject *)PyArray_DESCR(%(name)s_tmp)),
PyArray_NDIM(%(inp)s), PyArray_NDIM(%(name)s_tmp),
(size_t *)PyArray_DIMS(%(inp)s), (size_t *)PyArray_DIMS(%(name)s_tmp),
(ssize_t *)PyArray_STRIDES(%(inp)s), (ssize_t *)PyArray_STRIDES(%(name)s_tmp),
pygpu_default_context(), pygpu_default_context(),
Py_None); Py_None);
if (%(out)s == NULL) {
%(fail)s Py_DECREF(%(name)s_tmp);
} if (%(out)s == NULL)
%(fail)s
""" % {'name': name, 'inp': inputs[0], """ % {'name': name, 'inp': inputs[0],
'out': outputs[0], 'fail': sub['fail']} 'out': outputs[0], 'fail': sub['fail']}
def c_code_cache_version(self): def c_code_cache_version(self):
return (4,) return (5,)
gpu_from_host = GpuFromHost() gpu_from_host = GpuFromHost()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论