Lisandro Dalcin wrote: > On 8/3/07, David Cournapeau <[EMAIL PROTECTED]> wrote: >> Here is what I can think of: >> - adding an API to know whether a given PyArrayObject has its data >> buffer 16 bytes aligned, and requesting a 16 bytes aligned >> PyArrayObject. Something like NPY_ALIGNED, basically. >> - forcing data allocation to be 16 bytes aligned in numpy (eg >> define PyDataMem_Mem to a 16 bytes aligned allocator instead of malloc). > > All this sounds pretty similar to sdt::allocator we can found in C++ > STL (http://www.sgi.com/tech/stl/Allocators.html). Perhaps a NumPy > array could be associated with an instance of an 'allocator' object > (surely written in C, perhaps subclassable in Python) providing > appropriate methos for > alloc/dealloc(/realloc?/initialize(memset)?/copy(memcpy)?) memory. > > This would be really nice, as it is extensible (you could even write a > custom allocator, perhaps making use of a preallocated,static pool; > use of C++ new/delete; use of any C++ std::allocator, shared memory, > etc. etc.). I think this is the direction to go but no idea how much > difficult it could be to implement. > Well, when I proposed the SIMD extension, I was willing to implement the proposal, and this was for a simple goal: enabling better integration with many numeric libraries which need SIMD alignment.
As nice as a custom allocator might be, I will certainly not implement it myself. For SIMD, I think the weight adding complexity / benefit worth it (since there is not much change to the API and implementation), and I know more or less how to do it; for custom allocator, that's an entirely different story. That's really more complex; static pools may be useful in some cases (but that's not obvious, since only the data are allocated with this buffer, everything else being allocated through the python memory allocator, and numpy arrays have pretty simple memory allocation patterns). David _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
