Add CUDA implementation