The tensor contraction engine is great work, and focuses on dense tensor. We currently optimize for sparse tensors so TCE will do better than us for pure dense expressions. We want to bridge this gap next semester though.
The cyclops framework is also great. We discuss it in our related work, but we did not directly compare to it in our evaluation. The first version of it, like TCE, focused on dense tensors, and their main focus is on distributed computing, which we don't support yet (we do shared memory parallel execution at the moment). They have some followup work on sparse computations. The difference to our work is that they, if I read their paper correctly, transposes the data until they can call pre-existing matrix multiplication routines. This causes data movement overheads. Our work compiles expressions to work at the data at hand, without moving it.
It seems like a strange thing that no one thought of doing this before! Nice that you identified a cool problem and solved it :)
https://github.com/amzn/amazon-dsstne
But this library is clearly more thorough.
We believe our contribution is being able to generate kernels for all the expressions.
Thanks for the reference though! We’re trying to learn where sparsity may be important in neural networks.
Ps: excellent name
taco does not target GPUs yet, and we want to work on it this spring. It’s clearly needed, for example for neural networks
I'm hoping that you can (at some point) write a language-agnostic library, so that your work can be used in many other development tools (which are not using C++). I suppose it would amount to publishing the documentation of the intermediate code you are already using. This would also save you the trouble of writing and maintaining a GPU back-end because other people could do that using your library.
Anyway, great work!
Is this intentional? (if so, why)
http://news.mit.edu/2017/faster-big-data-analysis-tensor-alg...
The code is available at:
https://github.com/tensor-compiler/taco/issues
I’m happy to discuss the project and to answer any questions :)