What are the relationships and rules between devices, contexts, host threads and resources in CUDA 2.0? This is not made particularly clear in the programming guide. A list of relational / structural statements would help, e.g.
Each host thread maintains a stack of contexts.
Calls to use resources must be made with the same current context as when they were created. (?)
Each host thread has a current device.
These may not even be correct, but I’d like to see a list of a dozen or so statements which make it really clear what’s going on with these concepts.