On Fri, 6 Dec 2024 at 10:54, devanga.susmi...@fujitsu.com <
devanga.susmi...@fujitsu.com> wrote:

> Hello,   This email is to discuss the contribution of the speed-up
> popcount and popcount mask feature we have developed for the ARM
> architecture using SVE intrinsics.
> The current method for popcount on ARM relies on compiler intrinsics or C
> code, which processes data in a scalar fashion, handling one integer at a
> time. By leveraging SVE intrinsics for popcount, the execution can process
> multiple integers simultaneously, depending on the vector length, thereby
> significantly enhancing the performance of the functionality.
> We have designed this feature to ensure compatibility and robustness. It
> includes compile-time and runtime checks for SVE compatibility with both
> the compiler and hardware. If either check fails, the code falls back to
> the existing scalar implementation, ensuring fail-safe operation.
> Additionally, we leveraged the existing infrastructure to select between
> different popcount implementations, avoiding additional complexity.
>
> *Algorithm Overview:*
> 1. For larger inputs, align the buffers to avoid double loads. For smaller
> inputs alignment is not necessary and might even degrade the performance.
> 2. Process the aligned buffer chunk by chunk till the last incomplete
> chunk.
> 3. Process the last incomplete chunk.
> *Our setup:*
> Machine: AWS EC2 c7g.8xlarge - 32vcpu, 64gb RAM
> OS : Ubuntu 22.04.5 LTS
> GCC: 11.4
>
> *Benchmark and Result:*
> We have used John Naylor's popcount-test-module [0] for benchmarking and
> observed a speed-up of more than 3x for larger buffers. Even for smaller
> inputs of size 8 and 32 bytes there aren't any performance degradations
> observed.
>
>
>
> We would like to contribute our above work so that it can be available for
> the community to utilize. To do so, we are following the procedure
> mentioned in Submitting a Patch - PostgreSQL wiki
> <https://wiki.postgresql.org/wiki/Submitting_a_Patch>. *Please find the
> attachments for the patch and performance results.*
> Please let us know if you have any queries or suggestions.
>
>
> Thanks & Regards,
> Susmitha Devanga.
>
Hi! Is this patch somehow related to [0] ?


[0]
https://www.postgresql.org/message-id/010101936e4aaa70-b474ab9e-b9ce-474d-a3ba-a3dc223d295c-000000%40us-west-2.amazonses.com

-- 
Best regards,
Kirill Reshke

Reply via email to