some tuning, adding cuda kernels