CUDA backend passes all tests on a single device

There are still problems with context switching and other untied ends