Instantiate SIMD Ops, not distance implementations
I maintainer di solito rispondono entro 5 giorni
Nessuno ha ancora preso questa issue.
- #199 di @copilot-swe-agent — chiusa senza merge
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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.
- Lingua principale
- C++
- Stelle
- 241
- Fork
- 48
- Merge medio
- 4g 21h
- PR unite (30g)
- 11
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di intel/ScalableVectorSearch
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
intel/ScalableVectorSearch#356 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
intel/ScalableVectorSearch#469 ·
I maintainer di solito rispondono entro 5 giorni
-
Add CI test for C API on ARMApertaenhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 32/100
intel/ScalableVectorSearch#460 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
intel/ScalableVectorSearch#438 ·
I maintainer di solito rispondono entro 5 giorni
-
CI: tier the test matrix into PR / main / nightly to cut Actions minutesForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 32/100
intel/ScalableVectorSearch#432 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di intel/ScalableVectorSearch
Issue simili
-
runtime: lf_f128_mod is documented as fmodq (truncating) but implements floor-based modulo; unusedApertainternal correctness low priority rt_lib
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 87/100
-
PriorityNotificationQueue::wakeUpAll() loses the wake-up for a thread that is not waiting yetForse già presa @matejk l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
pocoproject/poco#5674 ·
I maintainer di solito rispondono entro 2 giorni
-
bug docs GUI
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
sonic-pi-net/sonic-pi#3609 ·
-
Unreachable code warningApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SanderMertens/flecs#2395 ·
I maintainer di solito rispondono entro 1 giorno