Re: [eigen] Merge Tensor module

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Fantastic! Thanks a lot for making it happen.

On Thu, Feb 12, 2015 at 12:51 PM, Gael Guennebaud <gael.guennebaud@xxxxxxxxx> wrote:
The big merge has been bone! Have fun with tensors, and thanks again to Benoit!

gael

On Wed, Feb 11, 2015 at 1:05 PM, Wood, Tobias <tobias.wood@xxxxxxxxx> wrote:

A quick +1 to say I have been looking forward to seeing this in /unsupported so I can try it. Thanks to Benoit for working on it.


Toby



From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
Sent: 09 February 2015 08:43
To: eigen
Subject: [eigen] Merge Tensor module
 

Hi,

I'm willing to merge Benoit Steiner's Tensor module in unsupported/. See pull-request #96 (https://bitbucket.org/eigen/eigen/pull-request/96).

Feel free to object with arguments.

Basically, it supports the following features:
 - arbitrary tensor rank (up to 5 in C++03)
 - fully-dynamic or fully-fixed dimensions
 - forward or backward storage order (like row-major/column-major)
 - slicing, chipping (pick a R-1 rank sub tensor), reduction,
 - contractions using Eigen's fast matrix-matrix and matrix-vector kernels,
 - reshape, shuffling of the dimensions,
 - convolutions
- etc.

There are also a few features aiming to be integrated in Eigen core. In particular, the evaluation of expressions on CUDA and a fast CUDA matrix-matrix kernel.

Before it can be integrated within Eigen's official modules, we will have to unify everything that can be unified:
 - the evaluator mechanisms (more on that later)
 - unify Tensor and FixedSizeTensor while enabling mixed fixed-dynamic sizes
 - TensorMap -> Map<Tensor>
 - CUDA stuffs (more on that later)
 - move the documentation to Doxygen
 - clean Eigen::array, Eigen::DSizes if possible
 - fix Eigen::IndexList (it currently requires C++14)
 - etc.
and also stabilize the naming convensions (more on that later).

Additional welcome features could be:
 - Ref<Tensor>
 - Iterator based evaluation for large-rank _expression_ with complex indexing
 - cost model (could allow to switch between index-based and iterator-based evaluation
 - unify 1D/2D tensors with MatrixBase?

Nonetheless, I think this is a good timing for the merge as the current implementation is already pretty mature and this will provide the visibility this module deserves.

Cheers,
Gael.






Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/