[Numpy-discussion] ndarray allocation question
Tue Apr 10 01:38:07 CDT 2007
David Doukhan wrote:
> I'm writing you this mail because I would like to do "advanced" use of
> ndarray memory allocation.
> So here is a short description of my problem:
> I'm interfacing multidimensionnal Numpy array to C using the ctypes
> module. For now, there is no problem.
> The C program that will use the pointer to the data of the array runs
> on a CellBE architecture.
> The consequences are:
> * the adress of the beginning of the data of the array must be a
> multiple a 16 bytes (that could be specified using the attribute
> 'align' of dtype)
> * the memory allocated MUST be a multiple of 16 bytes, and that's my
> current problem, because I didn't find a way to specify it using dtypes...
You can't specify the alignment for a data-type unless you write your
own data-type (the alignment is a property of the data-type and is
determined at compile time for built-in data-types). I don't think you
can set the alignment for a derived data-type at this point.
> So, do the think there is a "clean" way to do what I want. For
> example, asking for an array of 2 lines and 7 columns of float32, so
> that the adress of the biginning of the data would be a multiple of 16
> bytes (that's already possible)
How are you doing that?
> AND beeing sure that the allocated memory for the data would be at
> least 16 * sizeof(float32), instead of 14*sizeof(float32).
You will have to make sure that the array is large-enough yourself by
over requesting the size.
More information about the Numpy-discussion