works on general matrices.
Parameters:
      * A (Tensor) -- tensor of shape (, m, n)* where *** is
        zero or more batch dimensions.
  * **full_matrices** (*bool**, **optional*) -- controls whether
    to compute the full or reduced SVD, and consequently, the
    shape of the returned tensors *U* and *Vh*. Default: *True*.

Keyword Arguments:
      * driver (str, optional) -- name of the cuSOLVER
        method to be used. This keyword argument only works on CUDA
        inputs. Available options are: None, gesvd, gesvdj, and
        gesvda. Default: None.
  * **out** (*tuple**, **optional*) -- output tuple of three
    tensors. Ignored if *None*.

Returns:
      A named tuple (U, S, Vh) which corresponds to U, S,
      V^{\text{H}} above.
  *S* will always be real-valued, even when "A" is complex. It
  will also be ordered in descending order.

  *U* and *Vh* will have the same dtype as "A". The left / right
