F.bilinear used a matrix multiplication, which created large intermediate tensors and introduced a performance regression (in comparison to the previous pure Python implementation). @tom fixed this by using a loop approach some time ago in this PR 2.