Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[BUG] CAGRA multi-CTA and multi-kernel search over-allocate the hashmap they use

Abierto Apto para principiantes
#2,856 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

bug

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

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA/cuvs

Todos los issues de NVIDIA/cuvs

Issues similares

Más issues de Performance

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.