Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Dot Byte SIMD implementation for ARM64 #4756

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

ajit283
Copy link
Contributor

@ajit283 ajit283 commented Apr 24, 2024

What's being changed:

Review checklist

  • Documentation has been updated, if necessary. Link to changed documentation:
  • Chaos pipeline run or not necessary. Link to pipeline:
  • All new code is covered by tests where it is reasonable.
  • Performance tests have been run or not necessary.

@ajit283 ajit283 requested a review from asdine April 26, 2024 10:12
asdine
asdine previously approved these changes May 8, 2024
@ajit283
Copy link
Contributor Author

ajit283 commented May 28, 2024

Benchmark

goos: darwin
goarch: arm64
pkg: github.com/weaviate/weaviate/adapters/repos/db/vector/hnsw/distancer
                          │ pure_go.txt  │              neon.txt              │
                          │    sec/op    │   sec/op     vs base               │
DotByte/2_dimensions-8       2.869n ± 1%   2.319n ± 3%  -19.20% (p=0.002 n=6)
DotByte/4_dimensions-8       3.493n ± 1%   2.511n ± 4%  -28.10% (p=0.002 n=6)
DotByte/6_dimensions-8       4.159n ± 2%   3.252n ± 1%  -21.80% (p=0.002 n=6)
DotByte/8_dimensions-8       4.779n ± 2%   4.139n ± 1%  -13.38% (p=0.002 n=6)
DotByte/10_dimensions-8      5.345n ± 3%   4.415n ± 1%  -17.42% (p=0.002 n=6)
DotByte/12_dimensions-8      5.971n ± 1%   6.066n ± 1%   +1.60% (p=0.002 n=6)
DotByte/16_dimensions-8      7.231n ± 1%   3.560n ± 3%  -50.77% (p=0.002 n=6)
DotByte/24_dimensions-8      9.806n ± 0%   6.295n ± 1%  -35.81% (p=0.002 n=6)
DotByte/30_dimensions-8     11.620n ± 1%   8.152n ± 2%  -29.85% (p=0.002 n=6)
DotByte/32_dimensions-8     12.255n ± 1%   3.884n ± 1%  -68.30% (p=0.002 n=6)
DotByte/128_dimensions-8    49.640n ± 1%   5.998n ± 1%  -87.92% (p=0.002 n=6)
DotByte/256_dimensions-8    95.520n ± 1%   9.183n ± 5%  -90.39% (p=0.002 n=6)
DotByte/300_dimensions-8    105.00n ± 1%   12.96n ± 1%  -87.65% (p=0.002 n=6)
DotByte/384_dimensions-8    131.80n ± 1%   12.34n ± 1%  -90.64% (p=0.002 n=6)
DotByte/512_dimensions-8    176.45n ± 1%   15.42n ± 1%  -91.26% (p=0.002 n=6)
DotByte/768_dimensions-8    255.10n ± 1%   21.78n ± 1%  -91.46% (p=0.002 n=6)
DotByte/1024_dimensions-8   336.55n ± 1%   27.99n ± 0%  -91.68% (p=0.002 n=6)
DotByte/1536_dimensions-8   498.25n ± 2%   40.88n ± 1%  -91.80% (p=0.002 n=6)
geomean                      26.11n        7.454n       -71.45%

Copy link

sonarcloud bot commented May 28, 2024

Quality Gate Passed Quality Gate passed

Issues
1 New issue
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants