Orquesta elástica de núcleos: cómo la inferencia de LLM comparte el procesador con el sistema operativo y no desafina ✛

Original: "Elastic Gang: Per-Token Membership Change for a Hard-Barriered LLM Inference Gang Co-Scheduled with OS Processes"
· Daeyeon Son
arXiv:2607.04668 · 2026-07-06 · CC BY-SA 4.0 · 5 min
El protocolo ACK-latch permite a un grupo de núcleos que ejecutan inferencia de LLM tomar prestados y devolver núcleos entre tokens sin bloqueos ni distorsión de resultados.

Contexto

Siete núcleos se detuvieron ante una barrera invisible. El octavo se retrasó en un proceso ajeno y toda la inferencia de LLM se bloqueó. Así es como se manifiesta el principal problema de la convivencia entre tareas de aprendizaje automático y procesos ordinarios en un mismo procesador. La banda de inferencia exige que todos los núcleos toquen al unísono; de lo contrario, silencio. Pero el sistema operativo no puede simplemente congelar un núcleo en medio de un token: la barrera nunca esperará al rezagado, y la incorporación no autorizada de un nuevo participante distorsionaría imperceptiblemente el resultado. La asignación estática de núcleos de "inferencia" resuelve el problema solo a medias: entre generaciones esos núcleos permanecen inactivos, mientras que los procesos generales se asfixian en los restantes. El problema es especialmente grave en dispositivos edge sin GPU, donde el procesador es el único motor de cálculo y cada vatio cuenta. Se necesita un mecanismo que permita a los núcleos fluir entre poblaciones sin violar la corrección, como músicos que entran y salen de la orquesta entre compases, sin alterar el ritmo.

Métodos

El protocolo ACK-latch se implementó en el núcleo de Anima OS, un sistema operativo en Rust, ejecutado en un AMD Ryzen 9 9800X3D (arquitectura Zen 5). El motor de inferencia carga modelos cuantizados SmolLM2-135M y Qwen2.5-7B y realiza la inferencia descomponiendo cada token en oleadas de operaciones matriz-vector, separadas por barreras (aproximadamente 226 por token). Antes de comenzar la generación se activa un flag de actividad y se incrementa el número de época; cada núcleo susceptible de ser prestado confirma (ack) la época actual, tras guardar el estado de su proceso, como un músico que deja su instrumento en pausa y asiente al director. La composición de participantes para el siguiente token se fija en una única palabra atómica: una máscara de bits formada por la intersección de los núcleos solicitados por la banda y aquellos cuyo ack coincide con la época en el momento de la fijación. Esta palabra se publica antes del inicio del token y todos los puntos de espera en barrera la leen. Un núcleo que no alcanza a confirmar simplemente no se incluye en el token actual; nadie lo espera y su trabajo lo roban los vecinos de la banda. Al terminar la época (al finalizar la generación o al comenzar una nueva) todas las confirmaciones antiguas se invalidan, de modo que los núcleos rezagados o los que abandonaron el grupo ya no pueden influir en los siguientes tokens. La migración de los procesos desplazados la realiza el planificador: el proceso arrendatario se traslada a otro núcleo y continúa su ejecución, y cuando el núcleo regresa, las colas se reanudan instantáneamente.

Resultados

La banda elástica se probó con dos modelos: el ligero SmolLM2-135M (0.75 ms por token, que somete el protocolo a una prueba agresiva) y el pesado Qwen2.5-7B (79 ms por token, limitado por el ancho de banda de memoria). Con una carga de inferencia del 25 % (una cuarta parte del tiempo los núcleos están ocupados generando), el rendimiento total para procesos ordinarios fue de 574 cuantos de servicio por segundo, es decir, 1.75 veces más que con el reparto estático (327). Al 50 % de carga, la banda elástica ofreció una mejora de 1.52×; al 75 %, de 1.28×, sin reducir en ningún caso la velocidad de inferencia. Con carga del 100 % los valores se igualaron, tal como predecía la teoría. Lo más importante: la salida de los modelos permaneció idéntica bit a bit en todos los escenarios, incluida la prueba de estrés con préstamo real de núcleos sin modificar el ancho objetivo de la banda: el hash de los logits finales 0x9a2917eca1a62bd1 no cambió, lo que demuestra la seguridad del protocolo. La latencia de devolución del núcleo tras la generación fue de 0.22 µs (mediana), prácticamente instantánea. La captura de un núcleo ocupado, según una política deliberadamente conservadora, dura un cuanto del planificador (aproximadamente 16 ms): el proceso arrendatario no se interrumpe en mitad de su cuanto y el núcleo se une a la banda solo al expirar este.

Implicaciones

Este trabajo derriba la creencia establecida de que los cómputos con barreras estrictas son incompatibles con la redistribución dinámica de núcleos. El protocolo ACK-latch convierte el grupo de inferencia en un objeto de planificación de pleno derecho, capaz de compartir recursos con el resto del sistema sin pérdida de corrección. Esto abre el camino hacia sistemas operativos donde la inferencia no es una tarea aislada, sino un servicio ordinario del núcleo que se adapta elásticamente a la carga actual.

Desarrollo futuro

El mecanismo podría trasladarse al espacio de usuario en sistemas Linux utilizando el planificador SCHED_DEADLINE, y adaptarse a arquitecturas heterogéneas (big.LITTLE) y topologías con multihilo simultáneo (SMT). Se contempla la integración con políticas de ahorro energético para dosificar con precisión los núcleos prestados.

Impacto

Influirá en el diseño de sistemas operativos para dispositivos embebidos y de edge, donde la inferencia en CPU se está convirtiendo en la carga principal, así como en la infraestructura para agentes LLM, mejorando la utilización de los procesadores sin perjudicar la capacidad de respuesta.

Próximos pasos

Investigar el comportamiento del protocolo en procesadores con distinto número de núcleos físicos, así como estudiar la posibilidad de interrumpir un núcleo ocupado para acelerar la captura (actualmente prohibido por la política).

Problemas abiertos clave

Así, la banda elástica, como una orquesta sin director, se sincroniza mediante una única palabra-partitura y solo permite cambios de integrantes entre tokens-compases. Esto supone un paso hacia la solución del problema fundamental de la coexistencia pacífica de cómputos síncronos y asíncronos en un mismo sistema, y hacia la comprensión de los invariantes mínimos para la migración segura de miembros de un grupo con barreras.

La mirada de la máquina del conocimiento

Esta sección está dirigida al autor del trabajo y a sus colegas. Los trabajos vecinos los encontró la búsqueda por significado en nuestro archivo, no por coincidencia de palabras. No evaluamos: mostramos el campo alrededor.

Qué hace el trabajo

En este trabajo se propone el protocolo ACK-latch para la distribución elástica de núcleos entre la inferencia de LLM y los procesos normales en Anima OS. El protocolo permite que los núcleos entren y salgan dinámicamente de la banda de inferencia entre tokens sin romper la sincronización de barrera, lo que se confirma con experimentos en los modelos SmolLM2-135M y Qwen2.5-7B. Se muestra un aumento del rendimiento para los procesos en segundo plano de hasta 1.75× en comparación con la partición estática de núcleos.

Dónde está su fuerza

El punto fuerte es la fijación atómica de la composición de la banda mediante una máscara de bits y épocas, lo que garantiza la corrección durante la redistribución dinámica de núcleos sin esperar a los rezagados. Esto permite aprovechar eficazmente los núcleos inactivos durante las pausas de inferencia y mantener la capacidad de respuesta del sistema.

Hacia dónde puede avanzar

Vale la pena probar

  • Probar ACK-latch para varias bandas de inferencia simultáneas con diferentes prioridades, para ver cómo la intersección de máscaras afecta el rendimiento.
  • Intentar un control adaptativo del tamaño de la banda basado en la predicción de carga, utilizando el historial de confirmaciones ack para predecir la disponibilidad de núcleos.
  • Investigar el impacto de la migración de procesos en la localidad de caché y proponer estrategias para seleccionar núcleos donantes que minimicen las pérdidas por migración.

Por qué puede importar

La distribución elástica de recursos para la inferencia de LLM en dispositivos periféricos sin GPU podría aumentar significativamente la capacidad de respuesta general y la eficiencia energética, lo cual es importante para la adopción generalizada de asistentes neuronales locales. El protocolo propuesto abre el camino a sistemas operativos más flexibles que puedan equilibrar dinámicamente entre la inferencia y las tareas en segundo plano sin comprometer la corrección.

Resumen original

tal como lo escribieron los autores, en inglés arXiv:2607.04668

On-device LLM decoding is a hard-barriered CPU-SIMD computation that wants every core for milliseconds per token, while the rest of the OS wants those same cores continuously. A barriered gang cannot simply be dropped into a preemptive scheduler: an unannounced departure deadlocks a barrier, and an unannounced arrival silently corrupts logits. I present the elastic gang of Anima OS, a bare-metal x86-64 Rust kernel in which the inference gang is a first-class schedulable entity whose core membership may change between any two tokens. The core mechanism is an ACK-latched epoch protocol that never waits on a named core: a seqlock-style generation-tagged latch composed with RCU/epoch-style membership consent, so each token's participant set is the intersection of the cores the gang requested and the cores that acked the current epoch. An un-acked core is outside this token and joins at most one token later. Displaced general processes migrate and keep running; cores return to them the moment a generation ends. On a real AMD Zen 5 machine (8C/16T), inference output is bit-exact under verified per-token membership change on both a 135M and a 7B model, the property that makes elasticity safe in a kernel whose safety gate reads logits. Against fair static core partitions, elastic membership Pareto-dominates: at intermediate inference duty cycles it delivers 1.75x (25%), 1.52x (50%), and 1.28x (75%) the general throughput of a static 8-core split at equal or better inference throughput, recovers all eight stranded cores when inference is idle, and converges to the split at saturation. Returning a lent core costs 0.22 us (p50); acquiring a busy, tenant-occupied core costs one scheduling quantum (~16 ms): a running tenant is never preempted mid-slice. Decode throughput saturates at gang width 8, so ceding cores past the knee is nearly free: elasticity auto-sizes the gang online.

Incluso con 301 migraciones de procesos en una ventana de 10 segundos, la inferencia permaneció exacta bit a bit y la dispersión de las mediciones de rendimiento no superó el 0.9 %.

Cifras clave

  • incremento del rendimiento total (inferencia al 25 %): 1.75×
  • latencia de devolución del núcleo (p50): 0.22 µs
  • número máximo de núcleos para aceleración: 8
  • velocidad de inferencia del modelo 7B: 12.7 tokens/s
Conceptos
máquina de Turing grandes modelos de lenguaje