Creación de Aplicaciones de Alto Rendimiento en la Era de la Computación Acelerada

por John Linfor

La IA está aumentando la computación de alto rendimiento (HPC) con enfoques novedosos para el procesamiento, la simulación y el modelado de datos. Debido a los requisitos computacionales de estas nuevas cargas de trabajo de IA, la HPC se está ampliando a un ritmo rápido.

Para permitir que las aplicaciones se escalen a plataformas de múltiples GPU y nodos, las herramientas y bibliotecas de HPC deben respaldar ese crecimiento. NVIDIA proporciona un ecosistema completo de soluciones de software HPC aceleradas para ayudar a su aplicación a satisfacer las demandas de las cargas de trabajo modernas impulsadas por IA.

SDK de HPC 24.3

Además de las correcciones de errores y las mejoras en el rendimiento en tiempo de compilación de los compiladores de HPC, HPC SDK 24.3 tiene nuevas características que admiten un mejor desarrollo en los últimos sistemas NVIDIA Grace Hopper.

Los compiladores HPC de NVIDIA proporcionan un modo de compilación de memoria unificado cuando se utilizan directivas de descarga de destino de OpenMP para la programación de GPU. Esto se suma a la compatibilidad existente con la memoria unificada de los sistemas Grace Hopper y HMM en los modelos de programación OpenACC, CUDA Fortran y Paralelismo Estándar (stdpar), que se habilitan en nvc++ y nvfortran a través de la marca de línea de comandos -gpu=unified.

En el caso de los programas CUDA Fortran, se ha agregado el atributo unificado para proporcionar información de tipo adicional que permite que las aplicaciones se optimicen aún más para sistemas de memoria unificados, como Grace Hopper.

Todas estas características y otras mejoras de rendimiento ya están disponibles en la versión 24.3 del SDK de HPC. Para obtener más información, consulte las notas de la versión 24.3 del SDK de HPC.

Bibliotecas de Rendimiento de NVIDIA para la CPU Grace

Los modelos de IA están transformando las cargas de trabajo científicas, de hiperescala y en la nube. Se están escalando rápidamente a través de estas diversas configuraciones. La CPU NVIDIA Grace aborda la creciente complejidad y tamaño de los modelos de IA al ofrecer alto rendimiento, eficiencia energética y conectividad de gran ancho de banda. Acopla estrechamente la CPU y la GPU en el data center de NVIDIA.

Para acelerar las cargas de trabajo de la CPU en tu aplicación, las Bibliotecas de Rendimiento de NVIDIA (NVPL) proporcionan reemplazos directos para las bibliotecas matemáticas estándar de la industria que muchas aplicaciones usan en la actualidad. NVPL está optimizado para la CPU Grace y le permite portar aplicaciones a la arquitectura Grace sin necesidad de realizar cambios en el código fuente.

NVPL ya está disponible en HPC SDK 24.3. Esta versión incluye

NVPL también está disponible para descarga independiente, que incluye NVPL TENSOR para acelerar el deep learning y la inferencia en CPU Grace con operaciones de contracción, reducción y elementos de Tensor.

Herramientas para Crear y Optimizar Microservicios

La demanda de soluciones escalables en la nube y aplicaciones de computación de alto rendimiento está aumentando rápidamente. A medida que las aplicaciones se amplían en los data centers y las nubes, las Herramientas para Desarrolladores de NVIDIA Nsight evolucionan para ayudar.

Se están introduciendo nuevas funciones en Nsight Systems 2024.2 para ayudarlo a crear y optimizar microservicios.

Se ha mejorado la compatibilidad con la generación de perfiles para sistemas de contenedores como Kubernetes y Docker, incluidos los servicios CSP Kubernetes de los principales proveedores, incluidos Azure, Amazon, Oracle y Google.

Los scripts de Python denominados recetas le permiten realizar análisis de uno o varios nodos a medida que las aplicaciones se ejecutan en todo el data center. A continuación, Nsight Systems visualiza las métricas clave mediante la integración de JupyterLab.

Las recetas para el análisis de redes, ya disponibles, revelan cómo se relacionan los puntos fríos de computación con la comunicación. Puede generar mapas de calor de varios nodos que identifiquen dónde optimizar el rendimiento de InfiniBand y NVLink para obtener el máximo rendimiento.

Para encontrarse con usted donde está escribiendo código, el desarrollo del servidor está habilitado por un contenedor de transmisión de GUI remoto. Nsight Systems también se integra a la perfección con Jupyter Lab, lo que le permite generar perfiles de código y ver resultados textuales directamente en Jupyter o iniciar el contenedor de transmisión de GUI para un análisis en profundidad.

Descargue Nsight Systems 2024.2 hoy mismo. Comience con herramientas y tutoriales.

Bibliotecas Matemáticas Aceleradas por GPU CUDA

Las bibliotecas matemáticas aceleradas por GPU CUDA permiten el máximo rendimiento en las aplicaciones de HPC. Disponible ahora, cuDSS (versión preliminar) es una biblioteca de solucionadores dispersos directos acelerados por GPU para resolver sistemas lineales de matrices dispersas, comunes en la conducción autónoma y las simulaciones de procesos. Para obtener más información, consulte Spotlight: Honeywell Accelerates Industrial Process Simulation with NVIDIA cuDSS.

Las subrutinas básicas de álgebra lineal (BLAS) son fundamentales para las aplicaciones de IA y HPC. cuBLAS proporciona BLAS acelerados por GPU para ejecutarlos con el máximo rendimiento. Disponible en CUDA Toolkit 12.4, cuBLAS agrega soporte experimental GEMM (multiplicación de matriz general) agrupado por lotes para cálculos de precisión simple y doble. El modo de lote agrupado le permite resolver simultáneamente GEMM con las siguientes diferencias:

  • Dimensiones (m, n, k)
  • Dimensiones principales (lda, ldb, ldc)
  • Transposiciones (transa, transb)
  • Factores de escala (alfa, beta)

La fusión de operaciones numéricas dentro de un kernel CUDA reduce la sobrecarga de acceso a la memoria y la sobrecarga de inicio del kernel, lo que mejora el rendimiento de las aplicaciones aceleradas por GPU. Ambas bibliotecas ya están disponibles para su descarga independiente:

  • cuBLASDx le permite explotar la fusión de operaciones numéricas para BLAS.
  • cuFFTDx proporciona esta misma funcionalidad para las Fast Fourier Transforms (FFT), que se utilizan con frecuencia en aplicaciones de deep learning y visión artificial.

Además, cuTENSOR 2.0 ya está disponible, revisando la biblioteca de cuTENSOR para mejorar la velocidad y la flexibilidad. cuTENSOR proporciona rutinas optimizadas para cálculos tensoriales (elemento, reducción y contracción) que aceleran el entrenamiento y la inferencia para redes neuronales.

La versión 2.0 actualiza la biblioteca tanto en rendimiento como en funcionalidad, incluida la compatibilidad con la compilación del kernel justo a tiempo. Para obtener más información, consulte cuTENSOR 2.0: A Comprehensive Guide for Accelerating Tensor Computations.

Bibliotecas Matemáticas Multi-GPU Multi-Node

La computación distribuida proporciona infraestructura para las demandas computacionales de la IA. Las tareas de procesamiento de datos a gran escala se distribuyen y paralelizan en varios nodos y GPU para acelerar el tiempo de entrenamiento e inferencia. A medida que las aplicaciones de HPC se amplían, las bibliotecas matemáticas fundamentales también deben ser compatibles con el nuevo panorama de computación de múltiples nodos y múltiples GPU.

Las bibliotecas matemáticas de CUDA proporcionan algoritmos matemáticos clave para estas aplicaciones de cálculo intensivo. Ya disponibles, las extensiones de API de host permiten que las bibliotecas matemáticas resuelvan problemas de exaescala.

cuBLASMp (preview) es una biblioteca multiproceso de alto rendimiento para álgebra lineal distribuida, básica y densa. Está disponible en el SDK de HPC y para su descarga independiente. La biblioteca aprovecha la aceleración del Nucleo Tensor, a la vez que se comunica de manera eficiente entre las GPU y sincroniza sus procesos.

NVIDIA también proporciona cuSOLVERMp para resolver problemas de sistemas lineales densos y distribuidos y de valores propios, así como cuFFTMp para resolver FFT en plataformas multi-GPU y multinodo.

Comience a utilizar las bibliotecas matemáticas de CUDA hoy mismo.

Conclusión

Para permitir que las aplicaciones se escalen en plataformas multinodo y con múltiples GPU, NVIDIA ofrece un ecosistema de herramientas, bibliotecas y compiladores para acelerar la computación a escala. La computación acelerada es el motor de las aplicaciones de computación de alto rendimiento impulsadas por IA. Profundice en los temas de computación acelerada en el foro para desarrolladores de Computación Acelerada.