Skip to content

Future Works

Ashar edited this page Aug 22, 2019 · 9 revisions

Future Work

This section contains the work that has been set to be done in the future / Post-GSoC period. Some of the these work are here because I couldn't complete it during Google summer of Code Period, while some are here because of some technical difficulties in YAP. The complete work can monitored in the kanaban board here.


Reorganization of the tensor directory

Assignee coder3101 , bassoy , amitsingh19975

Priority High

Description

All the Boost Libraries have detail implementation in a separate directory called detail. It is so kept to keep things organized and also let user know that some header belong to detail directory and should not be included. Our current tensor source does not have any such directory rather everything is kept at one place. We are keeping our detail in a separate nested namespace. Due to this it becomes very difficult to maintain the library and add features to it.

Link to the Issue is here


Making uBLAS expression movable/copyable

Assignee coder3101 , bassoy

Priority Low

Description

The new tensor expression that uses YAP is copy/movable, this allows us to reliably move and copy the expression allowing us to use it as a function argument. Due to those features we were able to add many utilities such as ublas::apply and expression_optimizer . These utilities cannot be used with ublas::expressions because they can't be copied or moved. In order to add full interoperability between the tensor and ublas::expression we need to make them copy and movable.

Link to the Issue is here


Execution Policy

Assignee coder3101, amitsingh19975

Priority High

Description

Current tensor evaluation is carried out using Open-MP parallel for loop. We initially presented in our proposal for the idea of adding a device based execution policy just like Eigen. Due to some issues with tensor-expression optimizer, we failed to achieve this goal. This features however has been now moved to future work sections. We both will do this together, this involves adding documentation and tests as well.

Link to the Issue is here


Extending and Finalizing Expression Optimizer

Assignee coder3101

Priority High

Description

Expression optimization was not possible to be done at compile-time for dynamic tensors. We are now using std::variant to optimize the expression at runtime this is a experimental feature and more information could be found at this(add) page. Once we find the this implementation is beneficial we will add this to main branch.


Einstein Notation's Lazy Evaluation

Assignee coder3101

Priority Normal

Description

Currently we are able to build up expression representing Einstein Notation but we cannot evaluate those lazy expressions. We plan to add make those expression evaluate-able, once we understand how those operations are performed for tensors involving multiple tensors.


Minimal Operation Evaluation for Tensor Contraction

Assignee coder3101, bassoy

Priority Low

Description

We are able to lazy-ify tensor-contractions involving multiple tensors, now we wish to evaluate the contraction in such a way that minimum possible operations are performed during evaluation. This can be done using Dynamic Programming. We wish to add this subroutine into main branch later this year.


Clone this wiki locally