Issue #2: Added CUDA back-end