Implement actual cuda backend