Working partitioning multiplication with double precision support - can
fail for large matrices. Still looking into why, I think because copying
to global memory fails.