You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be convenient if users can construct blocked tensors with the taco TensorBaseAPI.
For linear algebra it means they can construct blocked matrices/vectors and operate on them using linear algebra, as opposed to 4-tensor operations. E.g. a = B*c instead of a(i,j) = B(i,k,j,l) * c(k,l).
For tensor algebra it means they can construct blocked tensors and operate on them with fewer indices. E.g. A(i,j) = B(i,j,k) * c(k) instead of A(i,j,k,l) = B(i,j,m,k,l,n) * c(m,n).
Underneath the hood we'll still treat everything as high-order unblocked operations. So this is a proposed frontend change that should not change the lowering machinery or backends.
We still have to let the user express the ordering she wants for the loops/unblocked index variables. That is, make such choices as stencil form a(i,j) = B(i,j,k,l) * c(k,l) vs blocked form a(i,j) = B(i,k,j,l) * c(k,l). This can probably be expressed when describing the blocking.
The text was updated successfully, but these errors were encountered:
It would be convenient if users can construct blocked tensors with the taco
TensorBase
API.For linear algebra it means they can construct blocked matrices/vectors and operate on them using linear algebra, as opposed to 4-tensor operations. E.g.
a = B*c
instead ofa(i,j) = B(i,k,j,l) * c(k,l)
.For tensor algebra it means they can construct blocked tensors and operate on them with fewer indices. E.g.
A(i,j) = B(i,j,k) * c(k)
instead ofA(i,j,k,l) = B(i,j,m,k,l,n) * c(m,n)
.Underneath the hood we'll still treat everything as high-order unblocked operations. So this is a proposed frontend change that should not change the lowering machinery or backends.
We still have to let the user express the ordering she wants for the loops/unblocked index variables. That is, make such choices as stencil form
a(i,j) = B(i,j,k,l) * c(k,l)
vs blocked forma(i,j) = B(i,k,j,l) * c(k,l)
. This can probably be expressed when describing the blocking.The text was updated successfully, but these errors were encountered: