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

Merged
merged 6 commits into from
Jun 4, 2024
Merged

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 Jun 4, 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

Copy link
Member

@asdine asdine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job!

@asdine asdine merged commit 9b11cf1 into main Jun 4, 2024
41 of 42 checks passed
@asdine asdine deleted the dot_byte_simd_arm64 branch June 4, 2024 14:58
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