提交 8bb90e12 authored 作者: Frederic's avatar Frederic

Added CudaNdarray.is_c_contiguous().

上级 71eccb91
...@@ -810,6 +810,9 @@ static PyMethodDef CudaNdarray_methods[] = ...@@ -810,6 +810,9 @@ static PyMethodDef CudaNdarray_methods[] =
{"copy", {"copy",
(PyCFunction)CudaNdarray_Copy, METH_NOARGS, (PyCFunction)CudaNdarray_Copy, METH_NOARGS,
"Create a copy of this object"}, "Create a copy of this object"},
{"is_c_contiguous",
(PyCFunction)CudaNdarray_IS_C_Contiguous, METH_NOARGS,
"Return True is the object is c contiguous. False otherwise."},
{"reduce_sum", {"reduce_sum",
(PyCFunction)CudaNdarray_ReduceSum, METH_O, (PyCFunction)CudaNdarray_ReduceSum, METH_O,
"Reduce over the given dimensions by summation"}, "Reduce over the given dimensions by summation"},
......
...@@ -504,6 +504,10 @@ CudaNdarray_ZEROS(int n, int * dims); ...@@ -504,6 +504,10 @@ CudaNdarray_ZEROS(int n, int * dims);
* True iff the strides look like [dim[nd-2], dim[nd-3], ... , dim[0], 1] * True iff the strides look like [dim[nd-2], dim[nd-3], ... , dim[0], 1]
*/ */
bool CudaNdarray_is_c_contiguous(const CudaNdarray * self); bool CudaNdarray_is_c_contiguous(const CudaNdarray * self);
PyObject * CudaNdarray_IS_C_Contiguous(CudaNdarray * self)
{
return PyBool_FromLong(CudaNdarray_is_c_contiguous(self));
}
int CudaNdarray_gemm(float alpha, const CudaNdarray * A, const CudaNdarray * B, float beta, CudaNdarray * C); int CudaNdarray_gemm(float alpha, const CudaNdarray * A, const CudaNdarray * B, float beta, CudaNdarray * C);
int CudaNdarray_sger(float alpha, CudaNdarray * x, CudaNdarray * y, CudaNdarray* A); int CudaNdarray_sger(float alpha, CudaNdarray * x, CudaNdarray * y, CudaNdarray* A);
......
...@@ -909,6 +909,11 @@ def test_base(): ...@@ -909,6 +909,11 @@ def test_base():
e = b.reshape((5,2,2,3)) e = b.reshape((5,2,2,3))
assert e.base is a assert e.base is a
def test_is_c_contiguous():
a = cuda_ndarray.CudaNdarray.zeros((3,4,5))
assert a.is_c_contiguous()
assert a[1].is_c_contiguous()
assert not a[::2].is_c_contiguous()
if __name__ == '__main__': if __name__ == '__main__':
test_zeros_basic_3d_tensor() test_zeros_basic_3d_tensor()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论