unum-cloud / usearch

Fast Open-Source Search & Clustering engine × for Vectors & 🔜 Strings × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍
https://unum-cloud.github.io/usearch/
Apache License 2.0
2.23k stars 137 forks source link

Feature: Replace dependency "fp16". It is outdated. #519

Open Spixmaster opened 2 days ago

Spixmaster commented 2 days ago

Describe what you are looking for

Can the dependency fp16 be replaced? It not well maintained and does not even have a tag. This makes it horrible to package. See https://aur.archlinux.org/packages/usearch.

Can you contribute to the implementation?

Is your feature request specific to a certain interface?

It applies to everything

Contact Details

No response

Is there an existing issue for this?

Code of Conduct

ashvardanian commented 2 days ago

It is an optional dependency, that can be disabled, but I am not sure what new functionality can be expected from an f16/f32 conversion package, @Spixmaster?

Spixmaster commented 2 days ago

It may be my fault but for me it is not optional but mandatory. When trying to compile with this library included, the header for fp16 is needed.

I compiled with -D USEARCH_USE_FP16LIB=OFF. This did not work. I am wondering what that option should even do because no library (.a or .so) is built. As far as I understand, this is a header-only library.

Spixmaster commented 1 day ago

I took a further look at the source code. The functionality is given by SimSIMD. Why even bother with FP16? The commit of FP16 that is used here as a submodule is over three years old and the maintainter of FP16 does not merge pull requests and does not even tag a version.

I want to properly package this library for Arch Linux and FP16 is a pain to work with and not even needed.

Spixmaster commented 1 day ago

See https://github.com/unum-cloud/usearch/pull/526.