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
I am wondering if there is any approach can adapt symmetry in tensor contraction in opt_einsum. E.g.,
A[a,b] B[b,c,d,e] = C[a,c,d,e], where B[:,:,d,e] = B[:,:,e,d], or various tensor contractions in the correlated methods (perturbation, coupled-cluster etc)
From my experience, ctf gets useful when there are many symmetries, but the efficiency is less than nested loops in Fortran cyclops-community/ctf#136
If so, and I use f2py etc to make a Fortran-python interface, how complicated to use it to the backend of opt_einsum? Or is there any available options already? (even I use ctf as the backend, presumably I still need to mark symmetries for the tensors used in opt_einsum)
The text was updated successfully, but these errors were encountered:
Lancashire3001
changed the title
Possibilies to utilize symmetry in opt_einsum
Possibilities to utilize symmetry in opt_einsum
Apr 28, 2022
We haven't attempted to add symmetry as, in practice, different kinds of symmetries have different performances as the binary product level. The lack of symmetry is fairly hard coded into the current code as we have optimized the tensor contractor cost and associated path finding tech for performance over flexibility.
I am wondering if there is any approach can adapt symmetry in tensor contraction in opt_einsum. E.g.,
A[a,b] B[b,c,d,e] = C[a,c,d,e]
, whereB[:,:,d,e] = B[:,:,e,d]
, or various tensor contractions in the correlated methods (perturbation, coupled-cluster etc)From my experience,
ctf
gets useful when there are many symmetries, but the efficiency is less than nested loops in Fortrancyclops-community/ctf#136
If my observation is true, that would affect
symtensor
, which adoptsctf
as the backendhttps://github.com/yangcal/symtensor
If so, and I use
f2py
etc to make a Fortran-python interface, how complicated to use it to the backend ofopt_einsum
? Or is there any available options already? (even I usectf
as the backend, presumably I still need to mark symmetries for the tensors used inopt_einsum
)The text was updated successfully, but these errors were encountered: