Commit 429104e
[0.8] Meiravg_feature_bfloat16 (#464)
* upgrade codcov instance to c7i
(cherry picked from commit b5cc93b)
* [MOD-6763] bfloat16 - distance calculation functions (#445)
(cherry picked from commit 850d6a8)
* update arch_opt macros in bf16 BM
(cherry picked from commit 253dcd3)
* fix macro check
(cherry picked from commit 26b047d)
* Remove arch_opt enum and use cpu features flags instead (#459)
(cherry picked from commit f98793a)
* FP16 distance functions (#453)
(cherry picked from commit 9420e77)
* [MOD-6764] Introduce bfloat16 datatype (#454)
* Introduce bfloat16 datatype
add Datatype to `VecSimIndexAbstract` template args.
add template to SetDistFunc and have specialized implemntation for each <dataType, distType> combintation
now the dist function pointer argument is not neseccesary, we can simple return the function.
move using dist_func_t to spaces_aux.h (should be in a file included by both L2_spaces.h/IP.spaces.h and spaces.h)
* move getdistance imp to spaces.cpp
* move normalize function from vec_utils to spaces:
spaces.h: get normalize function.
spaces.cpp: specialized templates according to the datatype for the normalization functions
spaces/normalize/normalize_naive.h: templated naive implementations of normalization functions
VecSimIndexAbstract must have both DataType and DistType
add VecSimType_BFLOAT16
update vec_utile accordingly
bfloat16.h: add bfloat16_to_float32 for little and big
TieredFactory::NewIndex calls TieredHNSWFactory::TieredFactory::NewIndex instead of implmentation duplication
add bfloat to index factory for NewIndex and EstimateInitialSize
* add no_opt functions tests for bfloat16
also add normalization function test for bf16
* fixed nohrmalized value
* add bf16 benchmarks:
add serialized hnsw bf16 files
hnswfactory: add ctor from file for bf16
add fitMemory and run it at the begining of each benchmark to tighten memory.
* update bm_files script
* add flow tests to bf16
bruteforce:
L2
batch iterator
range query
multivalue
hnsw:
serialization
L2
batch iterator
range
multi
tiered:
create
search and insert
* add bfloat16 module to toml
* upgrade scipy nupy
* also use python 3.10
* upgrade PR python to 3.10
* update serializer
* bm: fix casts
unit tests: add test_bf16
* more unit tests
* tiered tests
* add index_type assertion ti hnsw serialization test
add desgnated classes for bf and flat in bf16 unit test
* unit test final
* repalce cast to dynamic casts
* add get neighors test to tiered
add normalize test for bfloat16 in testcommon
* use bit_cast
* upgrade codecov machine
* Revert "upgrade codecov machine"
This reverts commit 7619b05.
* Revert "use bit_cast"
This reverts commit 59b8fab.
* fix alignment intialization by changing the order
* make bfloat16_to_float32 templated accroding to system's endianess
* eliminate default in GetDistFunc
add test for invalid metric
* add test fot fit memory
* split fit memory tests
(cherry picked from commit e018d91)
* run merge queue flow
(cherry picked from commit 4670c59)
* add override to fit memory
(cherry picked from commit f994c79)
* upload valgrind artifacts on failure
(cherry picked from commit 7ece68d)
* _mm256_loadu_epi16 is supported as of gcc1, use _mm256_lddqu_si256 instead
(cherry picked from commit c521d82)
* fix fit memory test (#461)
* fix fit memory test
* remove xenial checks
* remove irrelevant comment
* free index in seralization test
(cherry picked from commit a0b70c8)
* Remove avx512_BW_VL (#460)
* remove bw_vl arch (not needed, avx512 is enough)
* remove xenial from merge queue flow
* fix fit memory test (#461)
* fix fit memory test
* remove xenial checks
* remove irrelevant comment
* free index in seralization test
* install gcc10 bionic
* install newer vg ubuntu18
* exit valgrind directory
(cherry picked from commit d2e1d4f)
* [MOD-6775] introduce fp16 type! (#462)
* remove bw_vl arch (not needed, avx512 is enough)
* remove xenial from merge queue flow
* introduce fp16 type!
change bfloat and fp16 to struct typedef to avoid ambiguty between them
* added flow tests
* fp16 benchmarks
* fix hnsw flow test
* add float616 to serializing script
add fp16 files to bm files
decrease testSizeEstimation dim size to make it run fasetr in debug
* set log call back to null in benchmarks
* remove struct typedef
add default ctor
* add comma seriaizer file
* disable temp flow
* disabe for real
* remove constexpr from bfloat default ctor
declaring a default ctor as constexpr is allowed as of c++20, and this feature in particular is supported as of gcc10
I don't see any benefit using this feature...
* test focal
* disable temp flow
(cherry picked from commit 704282b)
---------
Co-authored-by: meiravgri <meirav.grimberg@redis.com>
Co-authored-by: meiravgri <109056284+meiravgri@users.noreply.github.com>
Co-authored-by: alonre24 <alonreshef24@gmail.com>1 parent a3498b7 commit 429104e
File tree
112 files changed
+6482
-593
lines changed- .github/workflows
- .install
- src
- VecSim
- algorithms
- brute_force
- hnsw
- index_factories
- spaces
- IP
- L2
- functions
- normalize
- types
- utils
- python_bindings
- tests
- benchmark
- bm_initialization
- data
- hnsw_indices
- run_files
- spaces_benchmarks
- flow
- unit
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
112 files changed
+6482
-593
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | | - | |
25 | | - | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | 31 | | |
37 | 32 | | |
38 | 33 | | |
| |||
87 | 82 | | |
88 | 83 | | |
89 | 84 | | |
90 | | - | |
91 | 85 | | |
92 | 86 | | |
93 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | 29 | | |
35 | 30 | | |
36 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
14 | 23 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
| 196 | + | |
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
| |||
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
281 | | - | |
| 281 | + | |
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
| |||
0 commit comments