Skip to content

Custom implementation of HNSW index and benchmarks against original implementation.

License

Notifications You must be signed in to change notification settings

Matej-Chmel/approximate-knn

Repository files navigation

Aproximace KNN problému

Příloha bakalářské práce na téma "Aproximace KNN problému".

Obsahem přílohy je nová implementace indexu HNSW ve složce src/index/chm, projekt srovnání s původní implementací hnswlib a dokumentace.

Návod jak spustit ukázku obsahuje soubor Uživatelská dokumentace.pdf. Podrobný návod ke všem programům v této příloze obsahuje soubor Podrobná uživatelská dokumentace.pdf. Uživatelské dokumentace můžete také zobrazit v Markdown formátu ze složky src/userDocs.

Programátorskou dokumentaci generovanou programem Doxygen naleznete v souboru docs/html/index.html.

Software třetích stran

Tato příloha obsahuje kód následujících nepůvodních knihoven.

  • ann-benchmarks, Licence
    • Tato knihovna je využívána ke srovnání implementací indexu HNSW.
    • Kód knihovny byl upraven.
  • hnswlib, Licence
    • Převzata definice typů PORTABLE_ALIGN v souboru DistanceFunction.hpp.
    • Převzaty metriky vzdáleností v souborech euclideanDistance.hpp a innerProduct.hpp. Seznam změn:
      • Vlastní podmínky kompilace.
      • Volba využitého SIMD rozšíření zohledňuje preference uživatele.
      • Počet složek vektorů, které lze paralelně zpracovat, metrika nepočítá.
      • Každé funkci je přiřazen objekt, který ji zastupuje a ukládá název funkce.
  • nlohmann/json, Licence
    • Tato knihovna je využívána ke čtení konfiguračních souborů typu JSON.

About

Custom implementation of HNSW index and benchmarks against original implementation.

Topics

Resources

License

Stars

Watchers

Forks

Languages