[ https://issues.apache.org/jira/browse/SINGA-341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16473525#comment-16473525 ]
ASF subversion and git services commented on SINGA-341: ------------------------------------------------------- Commit a44d2e76b70a54e6ad1e063c0b8e895c43018b63 in incubator-singa's branch refs/heads/master from Vaan Ng [ https://git-wip-us.apache.org/repos/asf?p=incubator-singa.git;h=a44d2e7 ] Merge branch 'master' of github.com:apache/incubator-singa into SINGA-341-351 > Add stride field to Tensor class > -------------------------------- > > Key: SINGA-341 > URL: https://issues.apache.org/jira/browse/SINGA-341 > Project: Singa > Issue Type: Improvement > Reporter: wangwei > Priority: Major > > The current Tensor class stores data in a contiguous chunk of memory. It is a > very simple implementation. However, it is difficult to support some > operations. For example, > {code} > Tensor a = b.transpose() > Tensor d = a + c > {code} > > Like other tensor implementation (e.g. numpy), Tensor a and b shares memory. > The addition operation has to do real transpose, which incurs some overhead. > With stride, we can avoid the transpose operation. Instead, we enumerate each > element of a and c using the index, shape and stride information. > https://stackoverflow.com/questions/32034237/how-does-numpys-transpose-method-permute-the-axes-of-an-array > More over, stride is necessary for broadcasting operations. > [https://stackoverflow.com/questions/39626233/how-did-numpy-implement-multi-dimensional-broadcasting.] > > Code in src/core/tensor.cc tensor_math_cpp.h tensor_math_cuda.h needs > modification when stride is added as a field/member of Tensor. -- This message was sent by Atlassian JIRA (v7.6.3#76005)