added CUDA support