Add a new matrixmult function

Without transpose
Add a gpu_cache to varray
trivial stuff