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

[DOC] Benchmark matrix across RAFT ANN algorithms #1727

Open
cjnolet opened this issue Aug 8, 2023 · 4 comments
Open

[DOC] Benchmark matrix across RAFT ANN algorithms #1727

cjnolet opened this issue Aug 8, 2023 · 4 comments
Assignees
Labels

Comments

@cjnolet
Copy link
Member

cjnolet commented Aug 8, 2023

We've been asked by several folks for a matrix of benchmarks across different algorithms across different scales of datasets. We should just go ahead and do one which we publish on RAFT's documentation (preferably using RAFT's bench-ann Python scripts to make them consistently reproducible).

I would propose the following matrix:

Batch Size: 1, 100, 10k
Scales: 100k, 10M, 100M
K: 1, 10, 1k
Hardware: T4, V100, A100, H100 (potentially L4, A10)
Algorithms: Brute-force (for smaller scale), IVF-PQ, IVF-Flat, CAGRA

Datasets:

  1. For the various data scales, I would propose using MS-turing-1B, which includes a 10M subsampled version in big-ann-benchmarks '23 (https://big-ann-benchmarks.com/neurips23.html) and we can use 100M subset from the whole thing in our bench-ann suite from big-ann-benchmarks '21 (https://big-ann-benchmarks.com/neurips21.html).
  2. We are going to want to find a 100M scale dataset with higher dimensions (~512 would be best).
@achirkin
Copy link
Contributor

achirkin commented Aug 9, 2023

I would also propose couple more variables to the mix to more easily spot the problems like #1726:

  • top-k value k: 1, 10, 20, 50, 100, 200, 500, 1000
  • If we end up using a few different datasets, make sure we have at least one of each data type we support (int8/uint8/float for now)

@achirkin
Copy link
Contributor

achirkin commented Aug 9, 2023

Also I think this is a good case to advertise my gbench PR #1661, which should make writing the configs much easier and speed-up the benchmarks by orders of magnitude.

@MarkMoTrin
Copy link

Would be good to add the L40S as well

@cjnolet
Copy link
Member Author

cjnolet commented Aug 9, 2023

@achirkin, if we can prioritize getting the gbench changes so the outputs function like the existing benchmarks (the benchmarks dump to files), then I'm definitely on board w/ getting those merged in. I'd like to avoid breaking the Python scripts in the meantime now that we're pointing users to them.

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

No branches or pull requests

3 participants