[Numpy-discussion] Dot + add operation

Ralf Gommers ralf.gommers at gmail.com
Wed Mar 31 07:34:51 EDT 2021


On Wed, Mar 31, 2021 at 2:35 AM Guillaume Bethouart <
guillaume.bethouart at eshard.com> wrote:

> Is it possible to add a method to perform a dot product and add the result
> to an existing matrix in a single operation ?
>
> Like C = dot_add(A, B, C) equivalent to C += A @ B.This behavior is
> natively proposed by the Blas *gemm primitive.
>
> The goal is to reduce the peak memory consumption. Indeed, during the
> computation of C += A @ B, the maximum allocated memory is twice the size
> of C.Using *gemm to add directly the result , the maximum memory
> consumption is less than 1.5x the size of C.
> This difference is significant for large matrices.
>
> Any people interested in it ?
>

Hi Guillaume, such fused operations cannot easily be done with NumPy alone,
and it does not make sense to add separate APIs for that purpose because
there are so many combinations of function calls that one might want to
fuse.

Instead, Numba, Pythran or numexpr can add this to some extent for numpy
code. E.g. search for "loop fusion" in the Numba docs.

Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/numpy-discussion/attachments/20210331/80a8150e/attachment.html>


More information about the NumPy-Discussion mailing list