Hi, I think there are some difference between torch.lu(s, pivot=True, get_infos=True) and at::_lu_with_info(s, true, true)
check here:

  
      github.com
  
  
    pytorch/pytorch/blob/master/torch/tensor.py#L333 2

    else:
        return self.flip(0)


def norm(self, p="fro", dim=None, keepdim=False, dtype=None):
    r"""See :func:`torch.norm`"""
    return torch.norm(self, p, dim, keepdim, dtype=dtype)


def lu(self, pivot=True, get_infos=False):
    r"""See :func:`torch.lu`"""
    # If get_infos is True, then we don't need to check for errors and vice versa
    LU, pivots, infos = torch._lu_with_info(self, pivot=pivot, check_errors=(not get_infos))
    if get_infos:
        return LU, pivots, infos
    else:
        return LU, pivots


def stft(self, n_fft, hop_length=None, win_length=None, window=None,
         center=True, pad_mode='reflect', normalized=False, onesided=True):
    r"""See :func:`torch.stft`


    .. warning::



  
  
    
    
  
  


If get_infos is True, then check_error flag in at version should be false. So you should use at::_lu_with_info(s, true, false) in the test.
Let me know if the performance goes back to normal after this change.