GSoC 2017: Linear Algebra - Tensor Core

78 views
Skip to first unread message

Peeyush Kushwaha

unread,
Mar 20, 2017, 2:13:41 PM3/20/17
to sympy
Hello,

My name is Peeyush, I've been a hobby developer since when I was in school and I'm currently a first year undergraduate student enrolled in a Computer Science and Applied Mathematics programme at Indraprastha Institute of Information Technology, Delhi, India.

I want to work on 3 related things:
  1. Work on the tensor module so that we could refactor the whole matrix module to internally use tensors.
  2. Interoperability between scalars and rank 0 tensors
  3. Implement a module for creating different Vector Spaces (Similar in application to coordinate systems functionality in vector module, but for n-dimensional vectors)
I've taken a course in Linear Algebra but it did not cover tensors so I'll be teaching myself tensors in the summer as I go along. I have a lot of informal software development experience (working on own projects and libraries) and I'm very comfortable using git, writing documentation, unit tests, and code organization.

I originally wanted to contact @mrocklin and discuss these ideas because he is listed as only interested party on the wiki page for Linear Algebra Vision (a page which the ideas page for tensor core links to), but I'm not sure if he is actively involved with the project anymore and I'm unsure who to ask.

I specifically want to discuss the time each of these 3 might take. The ideas page mentions that "SymPy has a number of disconnected projects related to Tensor/Linear algebra. These include Matrices, Sparse Matrices, Matrix Expressions, Indexed (for code generation), Geometric Algebra, Differential Geometry, Tensor Canonicalization, and various projects in Physics." I've had a quick look at the current source code for matrices and tensors, but I still need some help breaking down my goals into sub-tasks while taking care of all the disconnected projects that are mentioned, and identifying how much time they may take, and if it is suitable for a GSoC proposal (too much / too less work) or not.

Sincerely,
Peeyush Kushwaha

Aaron Meurer

unread,
Mar 20, 2017, 2:20:15 PM3/20/17
to sy...@googlegroups.com
A good place to start would be to look through the various issues and
pull requests on the issue tracker that are related to tensors.

By the way, I'm unsure if the goal should be to refactor the matrices
to use the tensors. But maybe others disagree.

Aaron Meurer
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+un...@googlegroups.com.
> To post to this group, send email to sy...@googlegroups.com.
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/9f878a24-4ae9-452c-bbe3-911e4a03cc2c%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Francesco Bonazzi

unread,
Mar 20, 2017, 8:28:34 PM3/20/17
to sympy
What about getting rid of the MatMul and MatAdd classes for matrix expressions? We could just use Mul and Add for everything.

Previously we had complicated proposals to subclass Mul and Add with some complicated methods (e.g. multiple dispatch). Though maybe their constructors could simply activate a post-construction routine if some type of elements (such as matrix symbols) are detected.

We really need this feature.
Reply all
Reply to author
Forward
0 new messages