atomicarchitects / PriceofFreedom

[GRaM at ICML'24] The Price of Freedom: Exploring Tradeoffs between Expressivity and Computational Efficiency in Equivariant Tensor Products
https://openreview.net/forum?id=0HHidbjwcf
5 stars 0 forks source link

Question about the implementation of gaunt tensor product #2

Open EperLuo opened 1 month ago

EperLuo commented 1 month ago

Hi! Thanks for the impressive work Price of Freedom and the well organized code base, which is very inspiring to me. However, I have several question about the implementation of gaunt tensor product.

  1. The shape of y_grid. In the implementation of compute_y_grid the y_grid.shape == ((lmax + 1) * 2, 4 lmax + 1, 4 lmax + 1) , indicating that the u and v is 4lmax+1. However, in the paper both u and v are range from -L to L, which is 2*lmax+1. So i am quite confuse about this part.

  2. The implementation of gaunt_tensor_product_fourier_2D. In the paper you mention that one can use the sparsity of y_grid to simplified the calculation of x_u,v. However, in the function of gaunt_tensor_product_fourier_2D this simplification process does not appear to have been realized. This may cause a high memory consumption when the number of input irreps orders and channels is very high.

I would be very grateful if you could answer my questions. Any replies would be very helpful!

ameya98 commented 1 month ago

Hi! Thank you for the compliments and the interest in our work.

  1. Originally, we were observing that the coefficients were non-zero for $-2L \leq u,v \leq 2L$, but it turns out that there was an ambiguity in sign that was fixed by this commit. We now confirm that the right range is $-L \leq u,v \leq L$, which should alleviate your confusion.

  2. Yes, the sparsity of y_grid is not completely used; this is a work in progress (mainly due to figuring out how to make this compile nicely with JAX).