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
> Hi Andreas,
> 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.