Open seberg opened 1 year ago
Thanks for the heads-up!
Just to make sure I'm on the same page, you're referring to our uses of PyArrayMapIterObject
in the C backend, right?
Right, I was somewhat hoping to just reduce the burden of keeping the ABI around. It isn't a big deal to keep it alive, though!
EDIT: There is an issue of bumping the maximum numbre of supported dimensions, although maybe I can pull it off for selected iterators (like this one) by hiding a few fields behind macros, in which case you probably need not do anything.
Right, I was somewhat hoping to just reduce the burden of keeping the ABI around. It isn't a big deal to keep it alive, though!
Yeah, I completely understand. We've been slowly deprecating all that code anyway, so don't let it complicate things for you. If you want to remove it, I'll start making the appropriate updates as soon as I can.
OK, I decided to push for this in NumPy, because there is also the wish to bump to 64 dimensions. And leaving it public would make it hard to make advanced indexing 64bit dimension compatible. (Not everything will be for the same reason, but here it just seems enough to end up on the side of removal.)
OK, I decided to push for this in NumPy, because there is also the wish to bump to 64 dimensions. And leaving it public would make it hard to make advanced indexing 64bit dimension compatible. (Not everything will be for the same reason, but here it just seems enough to end up on the side of removal.)
No problem, and thanks again for the update!
I was wondering if I can get rid of the MapIter as public API in NumPy thinking that Theano is end-of-life, but Aesara clearly isn't :).
Now, in new NumPy versions simple
np.add.at()
calls are vastly faster than manualMapIter
use. But there are two problems:So, I guess this is just an FYI that at some point replacing the MapIter use with a direct
np.add.at
call is probably vastly better. I thought theano also had an advanced-indexing equivalence (which should just use advanced indexing). But I don't see it, so maybe that is already replaced.