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

Added CudaNdarray.is_c_contiguous().

上级 71eccb91
......@@ -810,6 +810,9 @@ static PyMethodDef CudaNdarray_methods[] =
{"copy",
(PyCFunction)CudaNdarray_Copy, METH_NOARGS,
"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",
(PyCFunction)CudaNdarray_ReduceSum, METH_O,
"Reduce over the given dimensions by summation"},
......
......@@ -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]
*/
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_sger(float alpha, CudaNdarray * x, CudaNdarray * y, CudaNdarray* A);
......
......@@ -909,6 +909,11 @@ def test_base():
e = b.reshape((5,2,2,3))
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__':
test_zeros_basic_3d_tensor()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论