rust-cv/hnsw

Dependency on packed_simd

bwindsor22 opened this issue · 9 comments

Hnsw depends on packed_simd, which is no longer in development.

On my mac, this is hnsw is showing the same issues seen with pack_simd in other libraries:
rust-lang/cargo#9139

It would be great to move to https://github.com/rust-lang/stdsimd maybe

packed_simd v0.3.3
└── hnsw v0.3.1

If it supports the same capabilities, I can look into it. I have some time today to take a look.

It seems that stdsimd isn't published on crates.io, nor is it yet part of the standard library yet. I will continue looking into alternatives to packed_simd.

It seems that the only maintained alternative that I can use right now is faster: https://crates.io/crates/faster

I am going to see if I can use this and get similar performance.

Edit: Nevermind, I can't even build packed_simd anymore, so I am going to just try it.

It seems that faster also uses packed_simd. I am not really sure what to do here. I will look for more obscure alternatives. There might just not be a sufficient solution.

I have been looking at simdeez: https://crates.io/crates/simdeez. It doesn't seem to work in a way that is what we need. I am not sure if there is any alternative in the Rust ecosystem to packed_simd at this time. Even the simba crate (https://docs.rs/simba/0.4.0/simba/) uses packed_simd. The fact that it is not building is definitely a huge issue.

Okay, looking at those other crates, it seems that this is what I need to use: https://crates.io/crates/packed_simd_2/0.3.4

Published version 0.11.0 of space: https://crates.io/crates/space/0.11.0.

Okay, @bwindsor22, please check if the newly released version of HNSW v0.7.0 still has build issues. https://crates.io/crates/hnsw/0.7.0

If its all good, we can close this issue.

I am going to close this issue, as this should likely be resolved. I also recommend using HGG (https://github.com/rust-cv/hgg) at this point as an alternative to HNSW.