-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
24 lines (18 loc) · 1.11 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Basically, a clone of a `boost::dynamic_bitset` library with views and SIMD (AVX2/AVX512/NEON/SVE).
This library was written specifically for the Milvus project (https://github.com/milvus-io/milvus) and is a part of it (https://github.com/milvus-io/milvus/tree/master/internal/core/src/bitset) since version 2.4.
Although, this library may be used as a general-purpose one. The version in this repo contains additional attributes like `[[likely]]` and may be used as a header-only library.
Tested on:
* Intel Xeon 4th Gen
* Intel i7-1250U laptop
* AWS Graviton3 (SVE width 256)
* docker-qemu which emulates ARM (SVE width 512)
Clang seems to produce faster code for SIMD than GCC.
===========================================================================
Ideas for the code are borrowed from the following sources:
* Zach Wegner's https://github.com/zwegner/zp7
* Agner Fog's https://github.com/vectorclass/version2
* sse2neon, https://github.com/DLTcollab/sse2neon
Some possible future things to read / use:
* https://godbolt.org/z/CYipz7
* https://github.com/ridiculousfish/libdivide
* https://github.com/lemire/fastmod