1 puntos por GN⁺ 2024-06-14 | 1 comentarios | Compartir por WhatsApp
  • En la comparación de inferencia de Mixtral 8x7B de TensorWave y MK1, la combinación MI300X+MK1 Flywheel mostró un throughput 33% mayor que H100 SXM+vLLM en un caso de uso real de chat
  • La clave de la prueba fue un modelo MoE: Mixtral 8x7B cabe en una sola MI300X con 192 GB de VRAM, mientras que la H100 con 80 GB de VRAM necesita dos tarjetas y tensor parallelism 2
  • En la inferencia por lotes offline, la combinación con MI300X quedó por delante en todos los tamaños de lote, con una diferencia de rendimiento en el rango de 1.22x a 2.94x
  • La prueba de distribución de chat online usó solicitudes con un promedio de 573 tokens de entrada y 50 tokens de salida; con un objetivo de latencia promedio de 5 segundos, 2 MI300X procesaron 33% más solicitudes por segundo que 2 H100
  • TensorWave considera que, al tener en cuenta no solo el throughput sino también la competitividad en costos y la disponibilidad de hardware, MI300X puede convertirse en una opción sólida para operaciones de inferencia a gran escala en la nube

La clave de la comparación: ¿puede MI300X superar a H100 en inferencia MoE?

  • El eje de la prueba es si el acelerador insignia de AMD, MI300X, puede superar a la arquitectura Hopper de NVIDIA en cargas de trabajo reales de IA
  • TensorWave y MK1 colaboraron durante un mes para extraer el rendimiento de inferencia de IA del hardware de AMD
  • El foco inicial estuvo en la arquitectura Mixture of Experts(MoE)
    • MoE se eligió por su eficiencia computacional y popularidad
    • Se presenta como una estructura usada en potentes LLM open source de Mistral, Meta, Databricks y X.ai
  • MI300X usando el software de inferencia MK1 logró un 33% más de throughput que la combinación de H100 SXM y vLLM en un caso de uso real de chat basado en Mixtral 8x7B
  • TensorWave reconoce que el ecosistema de software de NVIDIA es más maduro, pero evalúa que AMD ya es un competidor fuerte en el mercado de IA

Configuración del benchmark

  • Todos los benchmarks se realizaron con el modelo Mixtral 8x7B
  • Todos los frameworks de inferencia se configuraron para usar rutas de cálculo FP16
    • La activación de cálculo FP8 queda como trabajo futuro
  • Para comparar distintas configuraciones de tensor parallelism, el throughput de MI300X se extrapoló al doble
  • Sistema AMD

    • El nodo de TensorWave se probó con 8 aceleradores MI300X, 2 procesadores AMD EPYC CPU, un total de 192 núcleos y 2.3 TB de RAM DDR5
    • Las especificaciones del acelerador MI300X son las siguientes
      • 192 GB de VRAM
      • 5.3 TB/s
      • FP16 de aproximadamente 1300 TFLOPS
    • La configuración de software es la siguiente
      • ROCm 6.1.2
      • Motor de inferencia MK1 Flywheel v0.9.2
      • Fork de vLLM optimizado para AMD ROCm rocm/vllm v0.4.0
    • Como el modelo completo Mixtral 8x7B cabe en los 192 GB de VRAM de una sola MI300X, tensor parallelism se configuró en 1(tp=1)
  • Sistema NVIDIA

    • El sistema H100 se probó con 8 aceleradores H100 SXM5 con NVLink, 160 núcleos de CPU y 1.2 TB de RAM DDR5
    • Las especificaciones del acelerador H100 SXM5 son las siguientes
      • 80 GB de VRAM
      • 3.35 TB/s
      • FP16 de aproximadamente 986 TFLOPS
    • La configuración de software es la siguiente
      • CUDA 12.2
      • vLLM v4.3
        • Para ajustar Mixtral 8x7B en dos H100 con 80 GB de VRAM, tensor parallelism se configuró en 2(tp=2)

Resultados de inferencia offline

  • La prueba offline genera prompts de tamaño fijo, los entrega directamente al modelo y mide el throughput máximo de cada solución de inferencia
  • El batching offline procesa varios prompts al mismo tiempo para mejorar la eficiencia del hardware
    • A medida que aumenta el tamaño de lote, también aumenta el throughput
    • Como se procesan más solicitudes al mismo tiempo, también aumenta la latencia
  • Según la práctica estándar, las solicitudes dentro de un mismo lote se restringieron para tener el mismo tamaño de entrada y el mismo tamaño de salida
  • La prueba se realizó modificando benchmark_throughput.py del repositorio de vLLM
    • Se refactorizó para incluir Flywheel como backend
    • Para eliminar mecanismos de caché, los prompts dentro del lote se generaron de forma aleatoria
  • La combinación MI300X y MK1 Flywheel mostró mejor rendimiento que la combinación H100 y vLLM en todos los tamaños de lote
    • La mejora de rendimiento estuvo en el rango de 1.22x a 2.94x

Prueba de distribución de chat online

  • El benchmark online está diseñado para simular una aplicación general de chat realista
  • La prueba se realiza creando workers independientes que envían solicitudes a un endpoint, y aumentando la cantidad de workers para incrementar el número de solicitudes concurrentes
  • Las solicitudes se generan usando una distribución estándar de chat de texto
    • El promedio de tokens de entrada es 573
    • El promedio de tokens de salida es 50
  • La herramienta de benchmark admite distribuciones de datos arbitrarias
  • Las métricas son tres
    • Throughput: cantidad de solicitudes por segundo que puede procesarse con una carga de trabajo determinada
    • Latencia promedio: tiempo promedio que tarda en generarse la respuesta completa de cada solicitud
    • TPOT(Time Per Output Token): tiempo promedio para generar cada token posterior después del primer token, lo que afecta la velocidad de generación de respuestas largas
  • Resultados sin streaming

    • El primer benchmark online prueba un caso de uso sin streaming
    • Mide el throughput y la latencia necesarios para entregar la respuesta completa
    • Con un objetivo de latencia promedio de 5 segundos, 2 MI300X(tp=1) procesan 33% más solicitudes por segundo que 2 H100(tp=2)
    • Se pueden usar menos aceleradores para atender la misma cantidad de usuarios con el mismo nivel de calidad de servicio
  • Resultados con streaming

    • El segundo benchmark online activa streaming y mide el throughput y el TPOT mientras se transmiten los tokens
    • MI300X muestra mayor throughput que H100 en todos los valores de TPOT
    • Incluso con volúmenes de tráfico más altos, MI300X puede generar texto más rápido

Conclusión y propuesta de despliegue

  • En los resultados del benchmark, AMD MI300X muestra mejor rendimiento que NVIDIA H100 en tareas de inferencia offline y online de arquitecturas MoE como Mixtral 8x7B
  • MI300X también obtiene buenos resultados en escenarios reales que requieren no solo alto throughput sino también tiempos de respuesta rápidos
  • TensorWave sugiere que, considerando rendimiento, competitividad en costos y disponibilidad de hardware, MI300X usado junto con el software MK1 es adecuado para escalar la inferencia de IA en empresas
  • TensorWave ofrece MI300X junto con el software de inferencia MK1 e indica que los usuarios pueden probarlo directamente

1 comentarios

 
GN⁺ 2024-06-14
Opiniones de Hacker News
  • Dado que TensorWave es un proveedor de nube especializado en cargas de trabajo de IA y usa AMD Instinct MI300X, este informe hay que tomarlo con cierto escepticismo.

    • Hace una comparación típica al estilo AMD: compara 8x AMD MI300X (192 GB, 750 W) con 8x H100 SXM5 (80 GB, 700 W).
      Una comparación más justa tendría que ser con 8x H100 NVL (188 GB, <800 W).
      El precio también dice mucho. Si el rendimiento de AMD estuviera al nivel de Nvidia, no habría razón para vender las tarjetas a 1/4 del precio.
    • Algo positivo es que especificaron exactamente cómo ejecutaron el benchmark. Si se tiene el hardware, es fácil reproducirlo para refutarlo o confirmarlo.
    • No estoy seguro de que esta entrada de blog hubiera sido mejor si hubieran usado chips de Nvidia.
  • No entiendo por qué en 2024 todavía se hacen benchmarks con 128 tokens de entrada. No representan la mayoría de las cargas de trabajo, y el rendimiento de prellenado (prefill) es muy importante.

    • Me da curiosidad cuál consideran que es una longitud de entrada adecuada.
      Según si las consultas reales son más cortas o más largas, también cambia por qué 128 sería inadecuado.
      Si tomamos una palabra como un token, en mi caso la mayoría de mis consultas son más cortas que 128 palabras.
  • Quiero ver esto con optimismo. Este sector necesita competencia de manera absoluta, y ahora la capitalización de mercado de $NVDA es anormalmente grande. Es unos 0,6 billones de dólares mayor que toda la Bolsa de Fráncfort.

    • Más bien el valor de la Bolsa de Fráncfort es demasiado pequeño. Los desarrolladores europeos se siguen preguntando por qué, haciendo el mismo trabajo, ganan menos que en EE. UU.; esa es justamente la razón.
    • La Bolsa de Fráncfort o el DAX en general no significan tanto. En Alemania hay muchas empresas Mittelstand fuertes y de propiedad familiar, y no cotizan en bolsa.
      También hay enormes empresas privadas propiedad de alemanes ricos, como los gigantes de descuento Lidl y Aldi, o el proveedor de autopartes Bosch.
    • Ahora estamos en medio de una burbuja de los LLM.
      Es muy probable que el problema de Nvidia se acomode de forma natural en los próximos meses o años.
  • Como científico de IA, entreno muchos modelos, y personalmente creo que AMD está infravalorada frente a Nvidia.
    Sus chips no son tan rápidos como los productos más recientes de Nvidia, y hay obstáculos que superar para hacerlos funcionar.
    Pero en la mayoría de las cargas de trabajo de la mayoría de las industrias, dejando de lado si la IA en sí es una buena forma de usar capital, AMD es mucho más rentable y puede lograr resultados casi iguales.

  • El mercado y los precios de venta reflejan el valor percibido de las soluciones de Nvidia y AMD. Es el resultado de incluir herramientas, software, costo total de propiedad y facilidad de administración.
    También me pregunto cuántas empresas comprarían aceleradores tan caros para ejecutar en paralelo 8 modelos de 7B parámetros.
    También se dice que se puede entrenar un modelo de 14B en un solo acelerador, pero me gustaría ver cargas de trabajo de “entrenamiento e inferencia usando todo el acelerador”, como qué rendimiento de inferencia se obtiene en una carga 4x14B después de entrenar un modelo de 14B.
    AMD y la mayoría de las empresas que hasta ahora han hecho afirmaciones sobre rendimiento de inferencia, especialmente Intel y Apple, han elegido solo los benchmarks que pueden ganar e ignorado el resto donde Nvidia va adelante. Como señalaron varios comentarios sobre este artículo, aquí también usan un modelo de comparación de una generación intermedia.

    • MI300X gana en algunas cargas de trabajo de inferencia, y H100 gana en entrenamiento y en algunas otras cargas de inferencia. Por ejemplo, H100 es fuerte en inferencia FP8 usando TensorRT-LLM, y ROCm todavía es joven, pero está creciendo rápido.
      En LLM dentro de un solo sistema, es decir, una configuración de 8 aceleradores, MI300X es muy competitivo frente a H100 en costo total de propiedad para inferencia.
      Según Microsoft, AMD Instinct MI300X ofrece la mejor relación precio-rendimiento en GPT-4, y AMD va rumbo a su objetivo de mejorar 100 veces el rendimiento por watt para 2027.
      https://wccftech.com/amd-instinct-mi300x-best-price-performa...
    • El mercado y los precios de venta también incluyen la estrategia de ventas. Para entrar en un sector dominado por un actor fuerte que usa estrategias de venta hasta cierto punto “inteligentes”, un producto de menor madurez, en especial con software menos maduro, necesita una estrategia acorde de precios y asignación de volumen.
      https://www.techspot.com/news/102056-nvidia-allegedly-punish...
    • La producción de MI300X está aumentando. En la presentación de resultados más reciente, Lisa Su dijo que durante la primera mitad de 2024 hubo restricciones de producción, pero que en la segunda mitad la producción aumentaría y que todavía hay volumen disponible para vender. Probablemente se deba a mejoras en el suministro de CoWoS y HBM3/HBM3E.
      Los pedidos grandes de este tipo de aceleradores se hacen con varios meses de anticipación.
      Mientras tanto, los MI300X de Microsoft ya están todos reservados.
      https://techcommunity.microsoft.com/t5/azure-high-performanc...
      “Estas VM y el software que las impulsa fueron creados a propósito para cargas de trabajo reales de producción de Azure AI Services. También ya optimizamos GPT-4 Turbo, el modelo de lenguaje natural más potente del mundo, para estas VM. Las VM ND MI300X v5 ofrecen rendimiento de costo líder en modelos populares de OpenAI y de código abierto.”
  • Me queda la duda de si la configuración de paralelismo de tensores afecta el rendimiento. Mi suposición ingenua es que sí, pero no estoy seguro.
    Según el artículo, la configuración de AMD puede cargar todo Mixtral 8x7B en los 192 GB de VRAM de una sola MI300X, por lo que el paralelismo de tensores es tp=1; la configuración de NVIDIA tiene que cargarlo en dos H100 de 80 GB de VRAM, por lo que necesita tp=2.

    • Personalmente, no creo que esa comparación sea justa. Una buena comparación debería optimizarse para cada configuración de dispositivo.
      Es decir, usar un modelo que entre dentro del límite de VRAM y, si mejora el rendimiento, aplicar cuantización de 8 bits, de modo que no se expongan innecesariamente las desventajas de ambos dispositivos.
  • AMD parece tener mejor hardware, pero todavía no tiene la capacidad de producción para competir con Nvidia. Será interesante ver cómo se reducen los márgenes si realmente aparece competencia.
    Todos creen que la causa del dominio de Nvidia es CUDA, pero no es así. Casi el 40% de los ingresos de este año proviene de hiperescalares que usan sus propios stacks personalizados para interactuar con las GPU.
    Es cuestión de tiempo que los competidores se pongan al día y ofrezcan GPU más baratas.

    • Eso de “sus propios stacks personalizados para interactuar con las GPU” es casi totalmente inventado.
      Parece que estás confundiendo la plataforma CUDA con el lenguaje parecido a C/C++ que la gente escribe en archivos .cu.
      Es cierto que algunos no escriben directamente archivos .cu, pero no hay nadie que se salte el resto del stack de CUDA, como nvcc, PTX, SASS, el runtime o los drivers.
      Yo también trabajo en una de esas “hiperescaladoras”. Si no me crees, mira cuántos kernels CUDA tiene PyTorch: https://github.com/pytorch/pytorch/tree/main/aten/src/ATen/n...
      Lo que hace dominante a Nvidia es 100% CUDA.
    • Me gustaría que expliques un poco más qué sería un stack sin CUDA, o que compartas alguna fuente.
    • La capacidad de producción, al final, es un tema de negociación con TSMC o con unos pocos competidores.
      Creo que TSMC ya empezó a producir en algunas fábricas de EE. UU. o la UE.
      Nvidia usa TSMC y AMD también usa TSMC.
  • Es un buen comienzo para AMD. También me interesa Groq, otra opción de inferencia que no es Nvidia, y la uso de vez en cuando.
    Nvidia depende de TSMC para la fabricación. También es bueno que Samsung esté construyendo infraestructura de fabricación competitiva, para que Taiwán no sea un punto único de falla.

  • Sin métricas estadísticas adecuadas, especialmente si se usa el promedio en lugar del percentil 95, que es muy utilizado, y sin rendimiento por watt, es una comparación inútil.

    • Y también hace falta rendimiento por precio. Eso es lo clave al final.
    • Me parece que el promedio es una métrica que describe mejor el throughput.
      Igual sería bueno tener también el percentil 95.
  • Habría sido bueno tener también benchmarks INT8/FP8. En ambas tarjetas se habría podido cargar el modelo con unos 60 GB de VRAM, sin tener que usar tp=2 en la H100.