Paper describes heap-based Top-k kernel, but codebase seems to use a different Top-k implementation
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Documentación
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Área
- machine-learning, performance
Línea de trabajo
Lea la sección 4.1 del paper y siga la API expuesta a través de python/fmha_sm100/api.py::sparse_topk_select, python/fmha_sm100/csrc/sparse_topk_select.cu y python/fmha_sm100/csrc/include/sparse_topk_select.cuh. Compare el kernel basado en heap descrito con la implementación al estilo TensorRT-LLM y documente si el kernel del paper está presente, qué implementación se pretende utilizar y cuál produjo las cifras del benchmark.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi, thanks for open-sourcing MSA.
In Section 4.1 of the paper, the Top-k kernel is described as a heap-based implementation:
Each of the warp’s 32 lanes streams a 1/32 stride of the input row and maintains a k-element min-heap in shared memory. The heap root is cached in a register, and insertions are performed with deferred writes. Finally, a k-round shuffle merge combines the 32 local TopK results.
However, in the current codebase I could not find this heap-based Top-k implementation.
The exposed API:
from fmha_sm100 import sparse_topk_select
appears to call:
python/fmha_sm100/api.py::sparse_topk_select
python/fmha_sm100/csrc/sparse_topk_select.cu
python/fmha_sm100/csrc/include/sparse_topk_select.cuh
The implementation in sparse_topk_select.cuh seems to be based on TensorRT-LLM indexerTopK, using histogram/threshold selection plus insertion sort, rather than the per-lane min-heap + shuffle-merge algorithm described in the paper.
Could you clarify:
- Is the heap-based Top-k kernel from the paper included in this repository?
- If yes, where is the implementation located?
- If no, is the current sparse_topk_select implementation intended to replace the paper-described heap-based kernel?
- Are the benchmark numbers in the paper based on the heap-based kernel or the currently released sparse_topk_select kernel?
Thanks!
- Lenguaje dominante
- Python
- Estrellas
- 429
- Forks
- 65
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 MiniMax-AI/MSA
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
MiniMax-AI/MSA#8 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
MiniMax-AI/MSA#13 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
MiniMax-AI/MSA#3 · 1 reacción ·
Todos los issues de MiniMax-AI/MSA
Issues similares
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
btclib-org/btclib-node#1955 ·
Los mantenedores suelen responder en 1 día
-
documentation v0.9.2
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
khuisman/mcp-gee-sweet#1033 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ossf/cve-bin-tool#5966 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 2 días
-
write_iceberg ignores the table's write.parquet.compression-codec propertyPosiblemente ocupada @YuangGao la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Eventual-Inc/Daft#7606 ·
Los mantenedores suelen responder en 1 día