added CUDA implementation, and timings