Instantiate SIMD Ops, not distance implementations
Les mainteneurs répondent en général sous 5 jours
Personne n'a encore pris cette issue.
- #199 par @copilot-swe-agent — fermée sans fusion
Évaluation
Cette issue n'a pas encore été évaluée.
Description
For ISA dispatching, we instantiate the distance implementations (L2Impl, IPImpl, CosineSimilarityImpl). Since there are template parameters N, Ea, Eb, AVX_AVAILABILITY, corresponding to dimensionality, element type A, element type B, and AVX availability flag, respectively, many combinations of explicit template values are required. Crucially, also one for N, the fixed-/dynamic-dimensionality support.
It is not the best place to create the AVX-specific instantiations, because only the actual compute ops benefit from ISA-optimization.
The current implementations creates a lot of code
- at the end of the distance headers (
cosine.h,euclidean.h,inner_product.h) to define the symbols asextern; and - to produce the instantiations
multi-arch/avx2.cppandmulti-arch/avx512.cpp;
all of which makes heavy use of preprocessor macros and is therefore hard to understand and debug.
Completion of #183 should allow to lower the explicit instantiations to the various compute ops (IPFloatOp, IPVNNIOp, L2FloatOp, etc.), for which we already use fixed values of N, eliminating combinatorial complexity in the instantiations.
The task is to understand if is after completion of #183 such a simplification is possible, and, if so, implement it.
AS A maintainer of SVS
I WANT TO lower the instantiation of architecture-specific functions to the actual compute operations
SO THAT I can reduce maintenance and future development cost, as well as have a more optimal solution in general.
- Langage dominant
- C++
- Étoiles
- 241
- Forks
- 48
- Merge moyen
- 4 j 21 h
- PR mergées (30 j)
- 11
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de intel/ScalableVectorSearch
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
intel/ScalableVectorSearch#356 ·
Les mainteneurs répondent en général sous 5 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
intel/ScalableVectorSearch#469 ·
Les mainteneurs répondent en général sous 5 jours
-
Add CI test for C API on ARMOuverteenhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 32/100
intel/ScalableVectorSearch#460 ·
Les mainteneurs répondent en général sous 5 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
intel/ScalableVectorSearch#438 ·
Les mainteneurs répondent en général sous 5 jours
-
CI: tier the test matrix into PR / main / nightly to cut Actions minutesPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 32/100
intel/ScalableVectorSearch#432 · 1 commentaire ·
Les mainteneurs répondent en général sous 5 jours
Toutes les issues de intel/ScalableVectorSearch
Issues similaires
-
runtime: lf_f128_mod is documented as fmodq (truncating) but implements floor-based modulo; unusedOuverteinternal correctness low priority rt_lib
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 87/100
-
PriorityNotificationQueue::wakeUpAll() loses the wake-up for a thread that is not waiting yetPeut-être pris @matejk l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
pocoproject/poco#5674 ·
Les mainteneurs répondent en général sous 2 jours
-
bug docs GUI
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
sonic-pi-net/sonic-pi#3609 ·
-
Unreachable code warningOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
SanderMertens/flecs#2395 ·
Les mainteneurs répondent en général sous 1 jour