Sparse tensor and Sparse CudaTensor
Sparse tensor support is important in general machine learning especially for to store matrices of one-hot encoded vectors.

For CUDA backend, CuBLAS has a Sparse API.
For CPU, further investigation is needed to find a suitable Sparse BLAS backend. See this [link](http://www.netlib.org/utk/people/JackDongarra/la-sw.html) for potential libraries.

