of sweeps required for convergence [@Oksa_2006] as well as by adaptively selecting pairs of block columns based on the computed offdiagonal norms of their Gram matrices. These changes are beyond the scope of this paper and will be the focus of future work.

[0.45]{} ![Profile of the different phases of the block Jacobi SVD for 200 matrices of varying size on a P100 GPU in double precision. Single precision exhibits similar behavior.[]{data-label="fig:block_jacobi_profile"}](block_perf_1.pdf "fig:")

[0.45]{} ![Profile of the different phases of the block Jacobi SVD for 200 matrices of varying size on a P100 GPU in double precision. Single precision exhibits similar behavior.[]{data-label="fig:block_jacobi_profile"}](block_perf_1b.pdf "fig:")

[0.45]{} ![Batched block Jacobi performance for 200 matrices of varying size on a P100 GPU in single and double precision arithmetics.](block_perf_2.pdf "fig:")

[0.45]{} ![Batched block Jacobi performance for 200 matrices of varying size on a P100 GPU in single and double precision arithmetics.](block_perf_3.pdf "fig:")

Randomized SVD {#sec:randomized}
==============

As mentioned in Section \[sec:intro\], we are often interested in a rank-$k$ approximation of a matrix $A \approx \tilde{U} \tilde{S} \tilde{V}$. We can compute this approximation by first determining the singular value decomposition of the full $m \times n$ matrix $A$ and then truncating the $n-k$ smallest singular values 