Skip to content(if available)orjump to list(if available)

Hann: A Fast Approximate Nearest Neighbor Search Library for Go

thomasahle

imurray

That nice benchmark shows that multiple implementations of HNSW perform differently (my experience also). It would be helpful therefore if HANN benchmarked its implementation against the others, and tried to get the details the same as the best version.

nikolayasdf123

> Fast distance computation using SIMD (AVX) instructions

cool to see this. however, really missing benchmarks to compare to Redis, Vertex, Elastic, FAISS

nikolayasdf123

> requires C (or C++) compile

so this is just FFI into C? hm...

dolmen

I see only two C files in the repo: https://github.com/habedi/hann/blob/main/core/simd_distance.... https://github.com/habedi/hann/blob/main/core/simd_ops.c

So fixing to make it compile just with the Go toolchain (probably by rewriting in assembly) seems doable. Using avo to produce assembly: https://github.com/mmcloughlin/avo

oldgregg

Great lib... now is there a Go-native way to generate vectors from text?

neonsunset

Another project that can be written in pure C# is written in Go instead which is struggling to solve the problem :(

(and by struggling I mean can’t do it at all and requires either FFI or Goasm)