DeepSeek V3 detalles del artículo: Cómo eludir el monopolio de CUDA

Los dos modelos de DeepSeek lanzados recientemente, DeepSeek-V3 y DeepSeek-R1, alcanzan un rendimiento comparable al de modelos similares de OpenAI a un coste mucho menor.

Según informan los medios de comunicación extranjeros, en sólo dos meses entrenaron un modelo lingüístico MoE con 671.000 millones de parámetros en un clúster de 2.048 GPU H800, que es 10 veces más eficiente que la IA superior.

Este avance no se consiguió utilizando CUDA, sino a través de un gran número de optimizaciones de precisión y el uso de la programación PTX (ejecución paralela de hilos) de NVIDIA, similar a la de ensambladores.

DeepSeek se ha visto obligada a tomar un camino diferente al de OpenAI y otras empresas que confían en la potencia de cálculo por fuerza bruta con limitaciones de hardware. Ha recurrido a una serie de innovaciones tecnológicas para reducir los requisitos de potencia del modelo y lograr al mismo tiempo mejoras de rendimiento.

Algunos comentarios entusiastas de los internautas:

"En este mundo, si hay algún grupo de personas lo suficientemente loco como para decir cosas como '¡CUDA es demasiado lento!

Los genios de la informática ajustan PTX para maximizar el rendimiento de la GPU

NVIDIA PTX (Parallel Thread Execution) es una arquitectura de conjunto de instrucciones intermedio diseñada específicamente para sus GPU, que se sitúa entre los lenguajes de programación de alto nivel para GPU (como CUDA C/C++) u otros lenguajes frontales y el código máquina de bajo nivel (ensamblador de flujo o SASS).

PTX es una arquitectura de conjunto de instrucciones de bajo nivel que presenta la GPU como un dispositivo de cálculo paralelo de datos, lo que permite realizar optimizaciones detalladas como la asignación de registros y el ajuste del nivel de subprocesos/hilos que no son posibles con lenguajes como CUDA C/C++.

Cuando PTX se convierte a SASS, se optimiza para una generación específica de GPU NVIDIA.

Al entrenar el modelo V3, DeepSeek reconfiguró la GPU NVIDIA H800:

De los 132 núcleos del procesador de flujo, 20 se asignaron a la comunicación entre servidores, principalmente para la compresión y descompresión de datos, con el fin de superar el límite de conexión del procesador y mejorar la velocidad de procesamiento de las transacciones.

Para maximizar el rendimiento, DeepSeek también ha implementado algoritmos avanzados de pipelining mediante ajustes adicionales de nivel de hilo/hilo.

Estas optimizaciones van mucho más allá del nivel de desarrollo CUDA convencional, pero son extremadamente difíciles de mantener. Sin embargo, este nivel de optimización es precisamente lo que demuestra plenamente la extraordinaria capacidad técnica del equipo de DeepSeek.

El documento V3 menciona específicamente detalles sobre PTX

Esto se debe a que, bajo la doble presión de la escasez mundial de GPU y las restricciones estadounidenses, empresas como DeepSeek tuvieron que buscar soluciones innovadoras.

Afortunadamente, han logrado avances significativos en este campo.

Un desarrollador cree que "la programación de bajo nivel en la GPU es la dirección correcta. Cuanta más optimización, menor es el coste, o el presupuesto de rendimiento que puede utilizarse para otros avances sin gasto adicional."

Este avance ha tenido un impacto significativo en el mercado y algunos inversores creen que el nuevo modelo reducirá la demanda de hardware de alto rendimiento, lo que puede afectar al rendimiento de las ventas de empresas como NVIDIA.

Sin embargo, los veteranos del sector, entre ellos el ex CEO de Intel Pat Gelsinger, creen que las aplicaciones de IA pueden aprovechar al máximo toda la potencia informática disponible.

Gelsinger ve en este avance de DeepSeek una nueva forma de incorporar capacidades de IA en dispositivos de bajo coste para el mercado de masas.

PTX y CUDA

Entonces, ¿significa la llegada de DeepSeek que el desarrollo de LLM de vanguardia ya no requiere clusters de GPU a gran escala?

¿Serán las enormes inversiones en recursos informáticos de Google, OpenAI¿A la larga, Meta y xAI se echan a perder? El consenso general entre los desarrolladores de IA es que no.

Sin embargo, no cabe duda de que aún queda un enorme potencial por explotar en términos de procesamiento de datos y optimización de algoritmos, y seguramente surgirán métodos de optimización más innovadores en el futuro.

Con el modelo V3 de DeepSeek de código abierto, los detalles se revelan pormenorizadamente en su informe técnico.

El informe documenta las profundas optimizaciones subyacentes realizadas por DeepSeek. En pocas palabras, el grado de optimización se resume en que "han reconstruido todo el sistema desde cero".

Como ya se ha mencionado, al entrenar el V3 con la GPU H800, DeepSeek personalizó las unidades de cálculo básicas de la GPU (núcleos multiprocesador de streaming o SM) para satisfacer necesidades específicas.

Del total de 132 SM, asignaron específicamente 20 para gestionar tareas de comunicación entre servidores en lugar de tareas informáticas.

Esta personalización se realiza en el nivel PTX (ejecución paralela de hilos), que es el conjunto de instrucciones de bajo nivel de la GPU NVIDIA.

PTX se ejecuta a un nivel cercano al del lenguaje ensamblador y permite optimizaciones muy precisas, como la asignación de registros y el ajuste a nivel de subprocesos y paquetes de subprocesos. Sin embargo, este control preciso es complejo y difícil de mantener.

Por este motivo, los desarrolladores suelen preferir utilizar lenguajes de programación de alto nivel como CUDA, que proporcionan suficientes optimizaciones de rendimiento para la mayoría de las tareas de programación paralela y eliminan la necesidad de optimizaciones de bajo nivel.

Sin embargo, cuando se trata de maximizar la eficiencia de los recursos de la GPU y alcanzar requisitos de optimización específicos, los desarrolladores tienen que recurrir a PTX.

Sin embargo, siguen existiendo obstáculos técnicos

A este respecto, el internauta Ian Cutress afirmó: "El uso de PTX por parte de Deepseek no elimina las barreras técnicas de CUDA".

CUDA es un lenguaje de alto nivel. Facilita el desarrollo de librerías e interfaces con las GPU NVIDIA y permite un rápido desarrollo iterativo.

CUDA puede optimizar el rendimiento ajustando el código subyacente (es decir, PTX), y las librerías básicas ya están completas. Actualmente, la mayor parte del software de producción se basa en CUDA.

PTX es más similar a un lenguaje ensamblador directamente comprensible para la GPU. Funciona a bajo nivel y permite la optimización a micronivel.

Si se opta por programar en PTX, significa que no se puede utilizar ninguna de las bibliotecas CUDA incorporadas antes mencionadas. Se trata de una tarea muy tediosa que requiere profundos conocimientos en cuestiones de hardware y tiempo de ejecución.

Sin embargo, si los desarrolladores entienden perfectamente lo que están haciendo, pueden conseguir un mejor rendimiento y optimización en tiempo de ejecución.

Actualmente, la corriente principal del ecosistema NVIDIA sigue siendo el uso de CUDA.

Los desarrolladores que quieren obtener un 10-20% extra de rendimiento o eficiencia energética de su carga computacional, como las empresas que despliegan modelos en la nube y venden servicios de tokens, sí han optimizado desde el nivel CUDA hasta el nivel PTX. Están dispuestos a invertir tiempo porque a la larga merece la pena.

Hay que tener en cuenta que PTX suele estar optimizado para un modelo de hardware específico y es difícil de portar entre diferentes hardware a menos que se escriba especialmente la lógica de adaptación.

Además, el ajuste manual del núcleo de cálculo requiere mucha perseverancia, valentía y una habilidad especial para mantener la calma, porque el programa puede tener un error de acceso a memoria cada 5.000 ciclos.

Por supuesto, para aquellos escenarios en los que PTX es realmente necesario, y para aquellos desarrolladores a los que se les paga lo suficiente como para ocuparse de estos temas, expresamos nuestra total comprensión y respeto.

Para el resto de desarrolladores, es aconsejable seguir utilizando CUDA u otras variantes avanzadas basadas en CUDA (o MLIR).

Entradas Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *