https://medium.com/quant-guild/parallelizing-randomized-singular-value-decomposition-using-gpus-62dff9e0c945