Fix AVX2 distance function and build with AVX2 if available on host machine #524
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
A few changes:
Based on:
Below are several sets of benchmarks that are run. You can also see more here: #499
The summary:
CI Benchmarks
C++ CI tests before (left) vs after (right). Note we go from 16 minutes to 10 minutes.
Python CI tests before (left) vs after (right). Note that while the cloud tests are not faster, the non-cloud tests are. i.e.
test/test_distance_metrics.py::test_vamana_l2_distance
goes from 41.01s to 23.19s. Andtest/test_ingestion.py::test_ivf_flat_ingestion_f32
goes from 28.90s to 21.48s.Manual Benchmarks
Before:
![ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146350-510423fb-1577-46c0-b212-d364ae58f97b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjM1MC01MTA0MjNmYi0xNTc3LTQ2YzAtYjIxMi1kMzY0YWU1OGY5N2IucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OGI2MTA0N2ZjYzJiYWVlMjk1OTJmMjI2MTlmMGFjNzQxODFhMDYzMmRjZjMzYzAxMmY1YTdjMDYwMDM1MDRhZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.5DMjbBtANIKF6l0fTyHmBgWynUWmGnu7QoOcK4MzgyY)
After:
![ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146613-82d7ec98-badf-4f0a-97b5-1b5b2e4af6fb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjYxMy04MmQ3ZWM5OC1iYWRmLTRmMGEtOTdiNS0xYjViMmU0YWY2ZmIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWNlNTYxNTgwNGM3MjcxODMxYmM5YzgyMmRkMzUzZTljYTNhZTdlMjk3MGU2YzcwNzcwMTNjMjE0Y2UzMjE5YyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.BrM8kNNBUU88yfIjVuTGoOAZcFVmmGjkSS1w7KWwPso)
Before:
![query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146374-26196978-8a64-40ca-b1a7-c62712975f49.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjM3NC0yNjE5Njk3OC04YTY0LTQwY2EtYjFhNy1jNjI3MTI5NzVmNDkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzI2NjFlZWUzZTM2NjFiZjE2N2IyMmQ3MjM0Mzk2Y2RkZmY3MmRlYTkzYTBjOTcwNTQ0OWFiOGU3NGFjNTI2ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.gY_HMOadiFr1vev4401cOZeRVmJowMjSrQliKaU1tkA)
After:
![query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146560-5ddd88c7-0d61-4d43-ab2f-2817cd55d996.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjU2MC01ZGRkODhjNy0wZDYxLTRkNDMtYWIyZi0yODE3Y2Q1NWQ5OTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjliNzY4ZDI3YjMwNjQ4YTk5ZDBmMmQ3Y2YyY2M2YjQxMTc0OTUzZTgzNGRhNDI4Y2JiMGU5YmFlOTIyNjA1ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.kfiZcJtCzp78urmoGekfuGP87vN92GpgQHoSZkwl_9I)
Manual Benchmarks: VAMANA
Before:
![VAMANA_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146166-b74e3d83-8dda-433e-97a4-d4aa9e777df6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjE2Ni1iNzRlM2Q4My04ZGRhLTQzM2UtOTdhNC1kNGFhOWU3NzdkZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Yjk2NzI0MzFjY2Y1ZTdlMWUwMjg2NTUzMDcxMTBlMTI2ZTFiMzE4MmZlNDE4ZDBmZjgzYzI3NzE4MDM5NjcwMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.0_weKVwRQvntC_XIlA0Bj4TQvUpLhjjF97ciSzn3u9o)
After:
![VAMANA_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146661-ec77ac97-319a-4d3a-9c76-1c2afb86af26.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjY2MS1lYzc3YWM5Ny0zMTlhLTRkM2EtOWM3Ni0xYzJhZmI4NmFmMjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGQ4N2QxZTg2MmY1NzhkMjlmMjIwMDNiZWU2MmQxZGM3NjRmZGVjYzJjZTcwN2Y5ZjFjZThlYjM3YjQwYmIyNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.eDzhHwNVqRmiWXXk4w0xeFPVP8SikNVYiNz5R7jKa28)
Before :
![VAMANA_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146196-be50f9e9-0cef-4ba3-be36-bc602130e09c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjE5Ni1iZTUwZjllOS0wY2VmLTRiYTMtYmUzNi1iYzYwMjEzMGUwOWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTA0ZWIxYWNkMzM3YjJjNDJkMjczMWMzMjE5MGQxYTkzMTliYzM3MTE0MmE2YTQwZmQ0YjZkZDk1NGZiYmJjMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.BpbOWCucTo-pndIbyFBNJGOFuDvrIi-ArMrJ-Aq4AUs)
After:
![VAMANA_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146715-b79c07ac-6a8c-450c-915b-d194ebc44626.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjcxNS1iNzljMDdhYy02YThjLTQ1MGMtOTE1Yi1kMTk0ZWJjNDQ2MjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2M5NDU5MWQ1YzM3YThkNDVlNGYwZDg1MDExNDZmY2E5ZWJhYzI2YmQ4MWNlMjJkNGEwMDY1ZDc4ZDFhYWJiMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.rj5Lb19TrMiqZJklpvZgXeFw7OSqCRvv8oloimM_poI)
Manual Benchmarks: IVF_FLAT
Before:
![IVF_FLAT_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146231-50152bfb-cc76-48f7-99b5-e3860b5ec260.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjIzMS01MDE1MmJmYi1jYzc2LTQ4ZjctOTliNS1lMzg2MGI1ZWMyNjAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjVjMjFlNDdhOGVlYmI4Y2Y0NzM3YmNmYzM3NzExYzc3MjFmY2Y3ZGFmNzk4YWM3N2VhNGIxYjdjZmJjY2Q3OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.6r2gjwi2cymOxqefW3nxGRCy1slXUbujMhC-Nh5o7DM)
After:
![IVF_FLAT_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146822-e7689ba5-2848-401f-91aa-9f8b10190c89.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjgyMi1lNzY4OWJhNS0yODQ4LTQwMWYtOTFhYS05ZjhiMTAxOTBjODkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2I4MjNlYTFkYmUxZTdhMWI4NGUwZDY5NTdjMGQ2OWQ1ZjJmYmM0YTBlZDdkN2JkODg2Mjg3NWI4MGEzMTNiMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.2cmYL6R_0GTyNANCwMgjRNHXCRB0dTh24HsJrrzIUgY)
Before:
![IVF_FLAT_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146255-6dec4e55-9a5d-48e8-bdf1-1674119f08be.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjI1NS02ZGVjNGU1NS05YTVkLTQ4ZTgtYmRmMS0xNjc0MTE5ZjA4YmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGZlOGU4YmE0MTA1YWEwMzE2ZDc4NDNmNDQ3NWViMjk0ZDE2N2RhZGY3ZDM2ZTE3MTk4YTY4NTBmNThjODU5OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.VnkZeUnLb_qJtihcpK2vUZxNtLIwIqpYiy1E5Zn6OtE)
After:
![IVF_FLAT_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146854-92d8bfcb-9a16-4e7c-8e7a-5b080da5381c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0Njg1NC05MmQ4YmZjYi05YTE2LTRlN2MtOGU3YS01YjA4MGRhNTM4MWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzgxM2UwNjc3Mjc0NDM0YmE0NzQ5NjhkMGIzZmRlNmU1MTkwY2IxN2I0ZWZmZGNlOTJiOGIxOTQ1OWFmYTZmYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.zQPvmV0GnagHyQsMpKbV3nyRZKp-o4xbMwd7to08XWg)
Manual Benchmarks: IVF_PQ
Before:
![IVF_PQ_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146277-f942eec9-8317-4e9d-9d22-d2e12b537c85.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjI3Ny1mOTQyZWVjOS04MzE3LTRlOWQtOWQyMi1kMmUxMmI1MzdjODUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmRjYTRkMDdmMzM5ZTNhZGE2NTlmOWE4OTBiNTBkZjU5MDM3NDgyOWFiYTcxMmZhZDM0YTg5YTBjNTE3NDY5ZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.udAtTiWgtcvKICkI1x1MFVF_45eKDr58ipw0vGdOWfw)
After:
![IVF_PQ_ingestion_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146898-b8ba2b20-ca10-466b-996e-eed385f1c6ce.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0Njg5OC1iOGJhMmIyMC1jYTEwLTQ2NmItOTk2ZS1lZWQzODVmMWM2Y2UucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTIwZjljYjgwYjU1M2VmZWZjYWM1ODlkNzUxODI0NmYwYWU1N2MwMTk0ZjI5YzdkY2QzZTU1OGEyMjY0YTRmYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.FtpGMYJjaN4Dq6ON5wU-GmagLZcfS4wCV_aeBQPYx-o)
Before :
![IVF_PQ_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146297-7fa5e18f-d9f0-4d91-997c-9b1b9bcaee01.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0NjI5Ny03ZmE1ZTE4Zi1kOWYwLTRkOTEtOTk3Yy05YjFiOWJjYWVlMDEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTI4YjEyZjExYjZmMjQ5Yzg0N2U2MmE4MDJhM2U1NzJjN2ZlNThjYWRhOGZkMmQyMDZhZDgwMTIyMzg2OWZjYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._eG4CawdIOhgnk9b6Bs-lr83ZvroNzoMZ_ApsgBtvDc)
After:
![IVF_PQ_query_time_vs_accuracy](https://private-user-images.githubusercontent.com/1396242/377146953-6d44c77a-50ca-4186-8d7c-521785b61a18.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2Nzc4NDcsIm5iZiI6MTczOTY3NzU0NywicGF0aCI6Ii8xMzk2MjQyLzM3NzE0Njk1My02ZDQ0Yzc3YS01MGNhLTQxODYtOGQ3Yy01MjE3ODViNjFhMTgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMDM0NTQ3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmE4NTY2M2ZhMzFiNmJhNTMxMDRkMTk5NTJjMzY0YTUyZmQ2OTFmOWNlODBiZjgwNjM0MjJjMjM2NGMyODc5MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.WHo9E9gN6v5iouuqMdUmp7rbr9aJJwtLQJOO-gu0VNU)