I think you only change the code for detach in cuda.hpp, but still keep
context.pop in pycuda.autoinit. With context.pop in pycuda.autoinit, I
get the following error when exiting Python after running some cufft code:
terminate called after throwing an instance of 'cuda::error'
what(): cuCtxPushCurrent failed: invalid value
Maybe you still need to change context.pop to context.detach in autoinit.
Thanks for reporting this. (Btw, thanks also for the
merge those soon.)
Regarding the complex numbers stuff, I discovered cuComplex.h in
/usr/local/cuda/include. It includes complex.h from C library if
CU_USE_NATIVE_COMPLEX is defined. Would cuComplex.h or complex.h be a
better way to implement complex numbers?
By the way, will you attend the PyCon2010 next month? I'll be there
presenting a poster. If you'll be there, you can consider organizing a
sprint on pycuda.