TileFuse: A Fused Mixed-Precision Kernel Library for Efficient Quantized LLM Inference on AMD NPUs
Este artículo presenta TileFuse, una biblioteca de kernels de precisión mixta cercana al metal para las NPU AMD XDNA2 que fusiona el desempaquetado, la descuantización y las operaciones matriciales para permitir un soporte nativo y eficiente para la inferencia de LLM cuantizados de estilo AWQ, logrando ganancias significativas de rendimiento y eficiencia energética sobre las líneas base existentes en dispositivos de borde para clientes.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que tienes un camión de reparto nuevo y superrápido (el NPU) estacionado en tu garaje, pero el único mapa de carreteras que tienes (el software) te indica cómo conducir una bicicleta vieja y lenta. No puedes usar la velocidad del camión porque el mapa no sabe navegar por sus carriles.
Este es el problema al ejecutar chatbots de IA modernos (LLM) en los nuevos chips de computadoras portátiles hoy en día. Estos chips tienen potentes "motores de IA" (NPU) diseñados para ahorrar batería y funcionar rápido, pero el software usualmente obliga a la IA a cambiar su forma para adaptarse al motor, en lugar de permitir que el motor se adapte a la IA.
TileFuse es un nuevo conjunto de herramientas que soluciona esto. Es como construir una autopista personalizada de alta velocidad específicamente para el camión, permitiéndole transportar cargas pesadas de datos comprimidos sin tener que detenerse a reempaquetarlos.
Aquí es cómo el artículo explica esta solución utilizando analogías simples:
1. El Problema: El cuello de botella del "reempaquetado"
Normalmente, para ejecutar una IA en estos nuevos chips, tienes que tomar los pesos "comprimidos" de la IA (que son como libros empacados apretadamente en una maleta pequeña) y desempaquetarlos en un formato voluminoso (como sacar los libros y extenderlos sobre una mesa) solo para que el chip pueda leerlos.
- La forma antigua: El chip lee la maleta, desempaqueta los libros, los vuelve a meter en una maleta diferente y luego comienza a leer. Esto desperdicia tiempo y energía.
- La forma de TileFuse: El chip lee la maleta, la abre y lee los libros mientras todavía se están desempaquetando. Lo hace todo en un solo movimiento fluido.
2. La Solución: Kernels "Fusionados"
Los autores crearon una librería llamada TileFuse. Piensa en un "kernel" como un manual de instrucciones específico para el chip.
- Fusión: En lugar de tener tres trabajadores separados (uno para desempaquetar, uno para convertir y uno para calcular), TileFuse los combina en un supertrabajador. Este trabajador toma los datos comprimidos, los convierte sobre la marcha y realiza las matemáticas, todo en un solo paso.
- El Resultado: Esto es como un chef que no solo pica las verduras; pica, sazona y cocina en un solo movimiento continuo. El artículo afirma que esto hace que la parte de "desempaquetado" sea hasta 2.8 veces más rápida para ciertas tareas en comparación con los métodos antiguos.
3. El Diseño "Intercalado": Organizando el almacén
Los modelos de IA grandes tienen listas masivas de números (pesos). El sistema de memoria del chip tiene un límite de qué tan lejos puede alcanzar para agarrar la siguiente pieza de datos. Si los datos están almacenados de una forma desordenada y dispersa, el chip tiene que hacer viajes largos y lentos para obtener la siguiente pieza.
- La analogía: Imagina un almacén donde las cajas están apiladas al azar. Un montacargas tiene que conducir 50 pies para obtener la siguiente caja.
- El arreglo de TileFuse: Ellos reorganizan el almacén (llamado "Pre-tiling Intercalado") para que las cajas que el montacargas necesita a continuación estén justo al lado de las otras. Esto permite que el chip tome enormes bloques de datos en un solo barrido fluido, soportando modelos de IA mucho más grandes (hasta 32,000 elementos de ancho) que antes no cabían.
4. El Problema del "GEMV": El embotellamiento
Los chatbots de IA trabajan en dos fases:
- Prefilling (Pre-llenado): Leer un prompt largo de una sola vez (como leer un libro entero). Esto es rápido y fácil para el camión.
- Generación de Tokens: Escribir una palabra a la vez (como escribir una oración). Esto es lento y complicado.
- El problema: Cuando se escribe una palabra a la vez, el "camión" del chip a menudo se queda inactivo porque está diseñado para cargar grandes volúmenes, no pequeños. Es como usar un camión de carga para entregar una sola carta; el motor está encendido, pero el camión está vacío.
- El arreglo: TileFuse rediseñó el flujo de tráfico para esta fase. En lugar de enviar datos a solo un carril de la autopista, distribuye el trabajo a través de los 32 carriles del chip simultáneamente. Esto mantiene todo el motor ocupado, incluso cuando la "carga" es pequeña.
5. Resultados del Mundo Real
El equipo probó esto en laptops AMD reales (Ryzen AI) y lo comparó con el uso de su tarjeta gráfica estándar (iGPU).
- Velocidad: Para la lectura de prompts largos (prefilling), el NPU con TileFuse fue hasta 2 veces más rápido que la tarjeta gráfica.
- Batería: Debido a que el NPU es más eficiente, utilizó 64% menos de energía para realizar el mismo trabajo.
- El inconveniente: Para la escritura de una palabra a la vez (generación de tokens), el NPU fue a veces más lento que la tarjeta gráfica. Esto se debe a que el "tiempo de configuración" para configurar el NPU es demasiado largo para tareas tan pequeñas y rápidas.
- La solución híbrida: El artículo sugiere un enfoque de "lo mejor de ambos mundos": Usar el NPU para el trabajo pesado (lectura de prompts largos) y la tarjeta gráfica para las tareas rápidas (escritura de palabras). Esta combinación ofrece la mejor velocidad y duración de batería.
Resumen
TileFuse es un puente. Toma los formatos de IA comprimidos populares que los desarrolladores ya usan (como AWQ) y los hace funcionar de forma nativa en los nuevos chips de IA de AMD sin necesidad de cambiar los modelos de IA mismos. Al fusionar los pasos de desempaquetado y de cálculo, organizar los datos perfectamente y utilizar todo el poder de los carriles del chip, hace que ejecutar IA en laptops sea significativamente más rápido y eficiente energéticamente.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.