La arquitectura NVIDIA Hopper acelerará la programación dinámica, una técnica de resolución de problemas, con las nuevas instrucciones DPX.

DPX, un conjunto de instrucciones integrado en las GPU H100 de NVIDIA, ayudará a los desarrolladores a escribir código para conseguir una mayor velocidad en los algoritmos de programación dinámica en múltiples sectores, impulsando los flujos de trabajo para el diagnóstico de enfermedades, la simulación cuántica, el análisis de gráficos y la optimización de rutas.

Fuente: NVIDIA


Entendiento la arquitectura NVIDIA Hopper: ¿Qué es la programación dinámica?

Desarrollada en la década de 1950, la programación dinámica es una técnica utilizada para resolver problemas complejos a través de la recursión y la memoización.

  • La recursión consiste en dividir un problema en sub-problemas más sencillos, lo que ahorra tiempo y esfuerzo computacional.
  • En la memoización, se almacenan las respuestas a estos sub-problemas, que se reutilizan varias veces al resolver el problema principal. Se trata de una técnica de optimización que acelera los tiempos de cálculo y aumenta la eficiencia; esto se debe a que los sub-problemas no tienen que volver a calcularse cuando se necesiten más adelante en el problema principal.

Las instrucciones DPX aceleran los algoritmos de programación dinámica hasta 7 veces en una GPU con arquitectura Hopper (NVIDIA H100), en comparación con las GPU basadas en la arquitectura Ampere. En un nodo con cuatro GPU H100, esa aceleración puede incrementarse aún más.


Casos de uso: sanidad, robótica, computación cuántica y data science

La programación dinámica se utiliza habitualmente en muchos algoritmos de optimización, procesamiento de datos y ómicas.


Ómicas

La ómica abarca una serie de campos biológicos que incluyen la genómica (centrada en el ADN), la proteómica (centrada en las proteínas) y la transcriptómica (centrada en el ARN). Todos estos campos, fundamentales para la investigación de enfermedades y el descubrimiento de fármacos, se basan en análisis algorítmicos que pueden acelerarse con instrucciones DPX.

Por ejemplo, los algoritmos de programación dinámica Smith-Waterman y Needleman-Wunsch se utilizan para la alineación de secuencias de ADN, la clasificación de proteínas y el plegamiento de proteínas. Ambos utilizan un método de puntuación para medir el grado de alineación de las secuencias genéticas de diferentes muestras.

Smith-Waterman produce resultados muy precisos, pero requiere más recursos informáticos y tiempo que otros métodos de alineación. Así, utilizando las instrucciones DPX en un nodo con cuatro GPU NVIDIA H100, los científicos pueden acelerar este proceso 35 veces para conseguir un procesamiento en tiempo real, en el que el trabajo de llamada de bases y alineación se realiza al mismo ritmo que la secuenciación del ADN.

Esta aceleración ayudará a democratizar el análisis genómico en los hospitales de todo el mundo, lo que permitirá proporcionar a los pacientes una medicina personalizada.


Optimización de rutas

Encontrar la ruta óptima para múltiples piezas en movimiento es esencial para los robots autónomos que se desplazan por un almacén dinámico, o incluso para un emisor que transfiere datos a múltiples receptores en una red informática.

Para abordar este problema de optimización, los desarrolladores recurren a Floyd-Warshall, un algoritmo de programación dinámica que se utiliza para encontrar las distancias más cortas entre todos los puntos de destinos en un mapa o gráfico. En un servidor con cuatro GPUs NVIDIA H100, la aceleración de Floyd-Warshall se multiplica por 40 en comparación con un servidor tradicional de dos núcelos con sólo CPU.

De este modo, combinado con el software de logística NVIDIA cuOpt AI, el aumento de la velocidad en la optimización de rutas podría utilizarse para aplicaciones en tiempo real en fábricas, vehículos autónomos o algoritmos de mapeo y enrutamiento en gráficos abstractos.

Fuente: NVIDIA


Simulación cuántica

Un campo muy prometedor es el de la computación cuántica.

La programación dinámica se utiliza en algoritmos de optimización de tensores para la simulación cuántica. Las instrucciones DPX podrían ayudar a los desarrolladores a acelerar el proceso de identificación de la orden de contracción tensorial adecuada.


Optimización de consultas SQL

Otra posible aplicación es la ciencia de los datos o data science.

Los científicos de datos que trabajan con el lenguaje de programación SQL suelen tener que realizar varias operaciones de «unión» en un conjunto de tablas. La programación dinámica ayuda a encontrar un orden óptimo para estas uniones, lo que ahorra tiempo de ejecución y, por tanto, acelera las consultas SQL.


NVIDIA presentó la nueva arquitectura Hopper en la conferencia GTC22. Consulta todas las novedades.


Fuente: NVIDIA.