[BUG] CAGRA multi-CTA and multi-kernel search over-allocate the hashmap they use
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 70/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- performance, search
Línea de trabajo
Empieza en calc_hashmap_params en cpp/src/neighbors/detail/cagra/search_plan.cuh, donde se calcula el tamaño del hashmap en bytes. Compáralo con el plan de single-CTA en search_single_cta.cuh (alrededor de las líneas 209-210), que convierte bytes en un número de elementos antes de redimensionar, y luego revisa las llamadas de redimensionado correspondientes en search_multi_cta.cuh (alrededor de la línea 188) y search_multi_kernel.cuh (alrededor de la línea 371). Está terminado cuando ambas rutas pasan números de elementos y se confirma que la asignación se reduce. El reproductor aún no se ha ejecutado, así que confirma el tamaño antes de editar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
search_plan_impl::calc_hashmap_params stores the size of the global hashmap in bytes (search_plan.cuh#L375):
hashmap_size = sizeof(INDEX_T) * max_queries * hashmap::get_size(hash_bitlen);
hashmap is a lightweight_uvector<INDEX_T> (#L157), whose resize takes an element count and allocates new_size * sizeof(T) bytes from the workspace resource (#L62-L68). The single-CTA plan converts the size to an element count before resizing (search_single_cta.cuh#L209-L210). The multi-CTA and multi-kernel plans pass the byte count as if it were element count:
So both allocate 4x the table for uint32_t indices.
3/4 of each allocation is never touched.
Expected behavior
All functions should use the right units
- Lenguaje dominante
- Cuda
- Estrellas
- 869
- Forks
- 243
- Merge medio
- 3 d 17 h
- PR fusionados (30 d)
- 88
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/cuvs
-
[BUG] cuVS Bench Faiss CAGRA b_ratio reads the wrong JSON keyPosiblemente ocupada @arcusbuilds la tomó hace 15 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
-
doc
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
Upgrade faiss to v1.15.1Abiertofaiss improvement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días
-
[DOC] Lucene: clarify codec behavior and Java test commandsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días
Todos los issues de NVIDIA/cuvs
Issues similares
-
help wanted testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
antonyrag/ragleap-core#786 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
db enhancement good first issue trivial
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
sk7n4k3d/delonghi-ha#45 ·