Repolode
Project-HAMi

Project-HAMi/HAMi

Middleware de Kubernetes que comparte GPU y otros aceleradores de IA entre pods según la memoria y la capacidad de cómputo, con planificación adaptada a cada dispositivo.

Estrellas
4,896
Forks
872
Issues abiertos
33
Último commit
hace 9 horas

¿Qué es?

HAMi (Heterogeneous AI Computing Virtualization Middleware, antes k8s-vGPU-scheduler) permite a los equipos de plataforma compartir GPU costosas y otros aceleradores de IA entre cargas de trabajo de Kubernetes. Los pods solicitan una fracción de un dispositivo según la memoria o la cantidad de núcleos, mediante los límites de recursos estándar de Kubernetes, por lo que las aplicaciones no necesitan cambios en el código.

Está compuesto por un webhook mutante, un scheduler extender, plugins de dispositivo y componentes de virtualización dentro de los contenedores. La planificación admite políticas binpack, spread, con reconocimiento de topología, mutex y NUMA; además, las instancias NVIDIA MIG se pueden crear y liberar dinámicamente. Entre los backends compatibles están NVIDIA, AMD, Huawei Ascend, Cambricon, Hygon, Iluvatar, Kunlunxin, MetaX, Moore Threads y otros.

La instalación se realiza mediante Helm, con réplicas opcionales del scheduler para alta disponibilidad, métricas de Prometheus y una WebUI complementaria. Es un proyecto CNCF Incubating.

Funciones clave

  • 01Comparte GPU según los límites de memoria y núcleos mediante las solicitudes de recursos estándar de Kubernetes.
  • 02Planifica pods con políticas binpack, spread, con reconocimiento de topología, mutex y NUMA.
  • 03Admite NVIDIA MIG con gestión dinámica de instancias.
  • 04Es compatible con aceleradores de varios fabricantes, incluidos Ascend, Cambricon, Hygon y MetaX.
  • 05Expone métricas de Prometheus y ofrece una WebUI y dashboards de Grafana.

Casos de uso

  • Aumentar el uso de las GPU en clústeres de IA compartidos de Kubernetes.
  • Ejecutar cargas de trabajo multiusuario de notebooks, entrenamiento e inferencia en un mismo grupo de aceleradores.
  • Crear plataformas privadas de IA en la nube con control de cuotas para la asignación de dispositivos.
  • Operar clústeres de aceleradores de distintos fabricantes con un único flujo de planificación.

Inicio rápido

  1. 1

    Etiqueta los nodos GPU para que HAMi pueda administrarlos

    kubectl label nodes <node-name> gpu=on
  2. 2

    Añade el repositorio de Helm de HAMi

    helm repo add hami-charts https://project-hami.github.io/HAMi/
  3. 3

    Instala HAMi con Helm en kube-system

    helm install hami hami-charts/hami -n kube-system
  4. 4

    Comprueba que hami-device-plugin y hami-scheduler estén en estado Running

    kubectl get pods -n kube-system

Antes de usarlo

  • Necesitas un clúster de Kubernetes con Helm. Para usar la opción de NVIDIA, también necesitas los controladores de NVIDIA y el toolkit de contenedores.
  • Para que resulte útil, los nodos del clúster deben tener hardware acelerador.

Temas

Preguntas frecuentes

¿Qué es HAMi?
Middleware de Kubernetes que comparte GPU y otros aceleradores de IA entre pods según la memoria y la capacidad de cómputo, con planificación adaptada a cada dispositivo. HAMi (Heterogeneous AI Computing Virtualization Middleware, antes k8s-vGPU-scheduler) permite a los equipos de plataforma compartir GPU costosas y otros aceleradores de IA entre cargas de trabajo de Kubernetes. Los pods solicitan una fracción de un dispositivo según la memoria o la cantidad de núcleos, mediante los límites de recursos estándar de Kubernetes, por lo que las aplicaciones no necesitan cambios en el código.
¿HAMi es gratuito? ¿Qué licencia tiene?
HAMi es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿HAMi sigue mantenido?
Mantenimiento activo. El último commit de HAMi fue el 21 oct 2026.
¿Para qué puedo usar HAMi?
Aumentar el uso de las GPU en clústeres de IA compartidos de Kubernetes. Ejecutar cargas de trabajo multiusuario de notebooks, entrenamiento e inferencia en un mismo grupo de aceleradores. Crear plataformas privadas de IA en la nube con control de cuotas para la asignación de dispositivos. Operar clústeres de aceleradores de distintos fabricantes con un único flujo de planificación.
¿Cómo se instala HAMi?
Etiqueta los nodos GPU para que HAMi pueda administrarlos: kubectl label nodes <node-name> gpu=on Añade el repositorio de Helm de HAMi: helm repo add hami-charts https://project-hami.github.io/HAMi/ Instala HAMi con Helm en kube-system: helm install hami hami-charts/hami -n kube-system Comprueba que hami-device-plugin y hami-scheduler estén en estado Running: kubectl get pods -n kube-system
¿Dónde consigo HAMi?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Project-HAMi/HAMi

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados