Monday, August 15, 2022

Re: [VOLK] a += b*c ?

Hi,

the kernels are type specific. However, if you want a dot product:

>> a = \sum_{i=0}^{N-1} b[i]c[i],
https://github.com/gnuradio/volk/blob/main/kernels/volk/volk_32fc_x2_dot_prod_32fc.h

> A [i] += B [i] * C [i], for i = 0...N-1

This would implement the above formula:
1.
https://github.com/gnuradio/volk/blob/main/kernels/volk/volk_32fc_x2_multiply_32fc.h
2.
https://github.com/gnuradio/volk/blob/main/kernels/volk/volk_32fc_x2_add_32fc.h

It would be interesting to see how much faster an integrated kernel
would be.

The ipp `AddProduct function:
https://www.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-1-signal-and-data-processing/essential-functions/arithmetic-functions/addproduct.html

I assume ipp aims for:
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=3202,3202,3202,3206,3206,3206&text=_mm256_fmadd_ps

Which version are you looking for?

Cheers
Johannes

No comments:

Post a Comment