Skip to content

[Performance]Provides NEON Optimized Implementations for ARM in HNSWlib #639

@AmberLZY

Description

@AmberLZY

Hello HNSWLib community,

We are the Huawei Kunpeng BoostKit team. We have noticed the request for NEON/SVE optimizations for HNSWLib on the ARM platform in issue #637. We have implemented NEON vectorization optimizations for the distance calculation functions in space_l2.h and space_ip.h for the ARM platform. Our evaluation on the ARM platform shows a certain performance improvement.

We would like to contribute this work upstream. There are a few key points about this change set:

We have not introduced or modified any public APIs (no new external interfaces, and no changes to existing interfaces).

These changes have passed the built-in unit tests of HNSWLib in our environment.

These optimizations are ARM-specific and are conditionally compiled, so they will not affect the compilation or execution on the x86 platform; non-ARM platforms will continue to use the existing generic implementation.

Before preparing to submit the PR, we’d appreciate maintainers’ guidance on:

Whether there is interest in accepting ARM-specific CPU optimizations of this scope.

Preferred integration approach (e.g., where ARM-specific code should be placed, naming and usage rules for feature macros and conditional compilation, and minimum compiler/toolchain requirements).

Any constraints or requirements we should follow (e.g., portability policies, CI (continuous integration) expectations, benchmarking standards, etc.).
We can provide the complete patch set and benchmark results on AArch64.

Best regards,
Huawei Kunpeng BoostKit Team

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions