-
Importancia de MLC-LLM
- MLC-LLM permite compilar y desplegar LLM en GPUs AMD usando ROCm.
- La AMD Radeon™ RX 7900 XTX ofrece alrededor del 80% del rendimiento de la NVIDIA® GeForce RTX™ 4090 y del 94% de la NVIDIA® GeForce RTX™ 3090 Ti.
- Gracias al soporte de Vulkan, también es posible desplegar LLM en dispositivos AMD APU como SteamDeck.
-
Antecedentes
- Tras la expansión de los LLM de código abierto surgieron muchas soluciones de inferencia de LLM.
- La mayoría de las soluciones de inferencia de alto rendimiento se basan en CUDA y están optimizadas para GPUs NVIDIA.
- Dada la alta demanda de disponibilidad de cómputo, resulta útil admitir una gama más amplia de aceleradores de hardware.
- AMD es un candidato potencial.
-
Hardware y software en discusión
- La AMD RX 7900 XTX tiene especificaciones comparables a la NVIDIA RTX 4090 y la RTX 3090 Ti.
- Todos los modelos disponen de 24 GB de memoria, por lo que pueden alojar modelos del mismo tamaño.
- En rendimiento FP16, la RTX 4090 supera a la 7900 XTX por 2 veces y la RTX 3090 Ti por 1.3 veces.
- La RX 7900 XTX es un 40% más barata que la RTX 4090.
- La principal razón del retraso histórico de AMD fue la falta de soporte de software, no el hardware.
-
Compilación de machine learning para ROCm
- La compilación de machine learning (MLC) es una tecnología nueva que automatiza la optimización de tareas de aprendizaje automático.
- MLC-LLM está basado en Apache TVM Unity y ofrece una implementación de propósito general con alto rendimiento para diferentes backends.
- Mediante un flujo de trabajo basado en Python, compila modelos de lenguaje y optimiza el diseño y la programación de los kernels de GPU.
-
MLC para GPUs y APUs de AMD
- Hay varios modos de soporte de AMD GPU: ROCm, OpenCL, Vulkan y WebGPU.
- La pila ROCm, impulsada por AMD recientemente, incluye muchos componentes similares a la pila CUDA.
- Vulkan es el estándar gráfico más reciente y ofrece el soporte más amplio en dispositivos GPU.
- MLC admite generación automática de código, lo que permite cubrir diferentes métodos sin tener que reescribir cada kernel de GPU.
-
Benchmark con el paquete Python de MLC
- Se realizaron benchmarks de los modelos Llama 2 7B y 13B con cuantización de 4 bits.
- En inferencia de lote único se alcanzó una velocidad del 80% de la NVIDIA 4090 junto con el lanzamiento de ROCm 5.6.
-
Ejecución en SteamDeck con Vulkan
- Es posible ejecutarlo con Vulkan en SteamDeck, equipado con APU de AMD.
- Con ROCm, la VRAM de GPU queda limitada a 4 GB por BIOS, pero el controlador Mesa Vulkan puede usar memoria unificada y ampliarla hasta 16 GB.
-
Discusión y trabajo futuro
- La disponibilidad de hardware se ha vuelto un problema clave en la era de la IA generativa.
- La compilación de ML permite implementación de propósito general con alto rendimiento en todo el backend de hardware.
- La investigación en GPUs de consumo puede generalizarse también a GPUs en la nube.
- Se anima a la comunidad a construir soluciones basadas en el flujo de implementación de propósito general de MLC.
-
Conclusión final
- La ingeniería de sistemas de machine learning sigue siendo un problema continuo.
- NVIDIA aún lidera este campo impulsando la innovación, y se espera que esto cambie con nuevos avances de hardware y software.
- Gracias al flujo de desarrollo de compilación de ML basado en Python, fue posible obtener soporte optimizado para ROCm en cuestión de pocas horas.
-
Enlaces y agradecimientos
- Para una guía más detallada del despliegue de MLC LLM, consulta la página del proyecto.
- El código fuente de MLC LLM está disponible en el repositorio oficial de GitHub.
- Se agradece a la comunidad de Apache TVM y a los desarrolladores del compilador TVM Unity.
1 comentarios
Opinión en Hacker News
El rendimiento de la GPU de consumo de AMD (RX7900XTX) es distinto al de la GPU de centro de datos de AMD (MI300X), debido a las diferencias entre las arquitecturas RDNA y CDNA. Se espera que AMD lance la arquitectura UDNA hacia 2026. En CentML están integrando soporte para AMD CDNA y HIP en el compilador de deep learning Hidet.
Varias startups están intentando romper el monopolio de Nvidia aprovechando GPUs de AMD. Entre ellas están Felafax, Lamini, tensorwave y SlashML. Algunas sostienen que la barrera de CUDA es de unos 18 meses.
El equipo que trabajaba en TVM y MLC se unió a NVIDIA desde OctoAI.
Al probar Phi-4 Q6 en 7950x y 7900XT, resultó ser muy rápido incluso solo con CPU, lo que confirma la viabilidad de AMD para uso doméstico.
No entiendo por qué la comunidad de ML no se sale de CUDA. CUDA es cerrada y no multiplataforma. Con el avance de la IA/LLM, la transición a plataformas cruzadas debería haber sido más rápida.
Un 3090 de segunda mano cuesta entre $600 y $900, y rinde mejor que la 7900 y es más versátil gracias a CUDA.
Es importante potenciar la eficiencia. Además de la eficiencia de costo, se necesita eficiencia energética y de cómputo. Estoy ejecutando inferencia en CPU comunes usando llama.cpp.
Modular afirma haber logrado una utilización de GPU del 93% en GPUs de AMD y que lanzará una vista previa oficial a comienzos del próximo año. Se muestra optimista tras recibir comentarios positivos sobre el rendimiento de GPU de Nvidia.