Quick question:
Is the cusparse context handle meant to be initialised+created once and shared by all subsequent functions? or is it meant to be re-created every time one needs to perform a transpose/multiply function?
If it is meant to be shared, is it thread safe? or should I have a separate handle for each thread?
One handle per thread. Within a thread, there is usually only need for one handle, and it can be used for/by all cusparse functions dispatched within that thread.