This was pretty hairy to debug, but I tracked it down:
In : np.dtype(np.uintp)
In : np.dtype(np.uintp) == np.dtype(np.uint32)
In : hash(np.dtype(np.uintp))
In : hash(np.dtype(np.uint32))
I encountered the problem when using gpuarray.arange which causes one
argument to be set to uintp in the following line elementwise.py:144:
Can anyone test if this replicates with his numpy (mine is 1.6.1)?
On Fri, Dec 30, 2011 at 9:36 PM, Andreas Kloeckner
On Fri, 30 Dec 2011 20:03:44 +0100, Thomas Wiecki
glad to see that you followed up on this issue. I will try to boil it
down but noticed that when I was investigating the issue back then I
could not easily reproduce the problem. For some reason the dict
stored dtype was hashing to something else. Can you easily point me to
the place where the dict is created?
- Initial fill in pycuda.compyte.dtype._fill_dtype_registry().
- Vector types added in pycuda.gpuarray._create_vector_types().
PS: Please make sure to keep the list cc'd.