GROMACS adopta SYCL para mejorar el rendimiento de GPU
GROMACS integra SYCL para mejorar el rendimiento en GPUs AMD en simulaciones de dinámica molecular.
― 9 minilectura
Tabla de contenidos
GROMACS es un software muy popular que se usa para simulaciones de Dinámica Molecular, lo que ayuda a los científicos a estudiar el comportamiento de las moléculas a lo largo del tiempo. Se centra en el rendimiento, la portabilidad y la facilidad de uso en diferentes plataformas de hardware. Durante más de diez años, GROMACS ha utilizado de manera efectiva aceleradores GPU para mejorar su rendimiento.
A medida que el hardware para Computación de Alto Rendimiento (HPC) ha evolucionado, la variedad de plataformas de aceleradores también ha aumentado. Esto ha generado la necesidad de un modelo de programación que funcione bien en varios proveedores. GROMACS se enfrentó al desafío de elegir el modelo de programación adecuado que ofrezca un buen rendimiento y portabilidad. Para cumplir con estos requisitos, GROMACS adoptó SYCL, un modelo de programación moderno, para dirigirse a GPUs de fabricantes importantes como AMD e Intel.
SYCL es un estándar multiplataforma para programar aceleradores de hardware usando C++. Permite a los desarrolladores escribir código que se ejecute en diferentes tipos de GPUs con mínimos ajustes. Esta capacidad es crucial a medida que crece la demanda de recursos informáticos poderosos, especialmente con la aparición de la computación a exascala.
Desde el lanzamiento de GROMACS en 2022, el backend SYCL se ha convertido en el método principal para dirigirse a GPUs de AMD. Esta preparación es clave para las próximas plataformas de supercomputación. Aunque usar SYCL tiene muchas ventajas, garantizar un alto rendimiento en dinámica molecular puede ser especialmente complicado.
Las simulaciones de dinámica molecular, particularmente las que involucran biomoléculas, a menudo requieren muchos cálculos en un corto período de tiempo. El rendimiento de estas simulaciones puede verse afectado por la latencia, lo que dificulta lograr un escalado eficiente en muchos recursos informáticos. En este estudio, se examina el rendimiento de GROMACS en plataformas GPU de AMD usando SYCL, con resultados demostrados en máquinas Cray EX235a equipadas con aceleradores MI250X.
Antecedentes sobre GROMACS
La dinámica molecular (MD) es un método de simulación muy utilizado en varios campos como la química y la biofísica. GROMACS es un motor de software líder que soporta simulaciones de MD, diseñado para ser rápido, flexible y portátil en diferentes entornos informáticos, desde laptops personales hasta poderosos supercomputadores.
El último lanzamiento, GROMACS 2024.0, contiene alrededor de 470,000 líneas de código y se desarrolla de manera abierta en GitLab. El proceso de desarrollo asegura la calidad y portabilidad del software a través de revisiones de código y pruebas automatizadas.
Las simulaciones biomoleculares típicamente buscan maximizar la cantidad de pasos de simulación para un tamaño específico de sistema. A menudo implican muchas partículas, lo que limita la cantidad de procesamiento paralelo que se puede utilizar. Cada paso de simulación también es muy corto, aumentando las demandas sobre los recursos computacionales.
Debido a la complejidad de estas simulaciones, lograr un buen rendimiento es crucial. GROMACS utiliza varios métodos para optimizar su rendimiento, incluyendo el paralelismo de múltiples niveles. Esto implica descomponer las tareas en unidades más pequeñas y manejables y usar diferentes técnicas de procesamiento para ejecutarlas de manera eficiente en varias estructuras de hardware.
A medida que el hardware se desarrolla, GROMACS ha optimizado continuamente sus algoritmos para maximizar el uso de los recursos disponibles. Esta flexibilidad permite a GROMACS utilizar efectivamente configuraciones de múltiples nodos y múltiples GPUs.
La necesidad de un modelo de programación
Con la creciente complejidad de las simulaciones científicas, las demandas sobre software como GROMACS han aumentado. A medida que más aceleradores entran en el mercado, el desafío radica en soportar una amplia gama de dispositivos sin sacrificar rendimiento. GROMACS necesitaba un modelo de programación que pudiera proporcionar fácil acceso a diferentes tipos de GPUs mientras mantenía un rendimiento sólido.
Los esfuerzos pasados en GROMACS se centraron en desarrollar soluciones portátiles, como el backend OpenCL. Aunque útil, el modelo OpenCL se volvió menos favorable a medida que aumentaba el número de GPUs soportadas. A medida que el mercado cambiaba con AMD e Intel reingresando al sector HPC, se necesitaba una solución más robusta.
GROMACS se volvió hacia SYCL como una solución potencial. SYCL se basa en estándares establecidos, ofreciendo mejores perspectivas para la compatibilidad y el soporte a largo plazo a través de diferentes plataformas. Proporciona una forma más sencilla de programar aceleradores de hardware, haciéndolo adecuado para GROMACS mientras se prepara para futuros desafíos.
El modelo de programación SYCL ofrece beneficios clave, como portabilidad y facilidad de integración con el hardware existente. Con diferentes implementaciones de SYCL disponibles, GROMACS puede dirigirse a una variedad de GPUs manteniendo niveles de rendimiento cercanos a las API nativas.
Implementando SYCL en GROMACS
El trabajo inicial para integrar SYCL en GROMACS comenzó en 2020. El enfoque principal era permitir que GROMACS se ejecutara en GPUs de Intel, y la compatibilidad con GPUs de AMD también se consideró desde el principio. El cambio del backend OpenCL a SYCL tenía como objetivo reducir la duplicación de código y los esfuerzos de mantenimiento mientras se permitía características más consistentes en todo el hardware soportado.
El backend SYCL para GROMACS fue diseñado para trabajar eficazmente con cálculos de fuerzas principales y otras tareas importantes, como integración, restricciones y comunicación. Esto permite a GROMACS aprovechar al máximo la potencia de procesamiento de las GPUs modernas mientras mantiene el diseño flexible.
En el lanzamiento de 2023, GROMACS mejoró significativamente su implementación de SYCL al introducir comunicación directa entre GPUs a través de MPI consciente de GPUs. Este desarrollo es crucial para un escalado eficiente, especialmente a medida que GROMACS amplía sus capacidades para acomodar sistemas más grandes.
Pruebas y análisis de rendimiento
Las evaluaciones de rendimiento se realizaron utilizando varios sistemas de referencia en supercomputadoras avanzadas Cray EX235a con GPUs AMD MI250X. El objetivo era determinar cómo se desempeñó GROMACS usando el backend SYCL en comparación con implementaciones anteriores y otros modelos de programación como HIP.
Se utilizaron dos entornos clave para las pruebas: LUMI y Dardel. Ambos sistemas contaban con configuraciones de hardware avanzadas para evaluar el rendimiento de GROMACS a medida que escalaba desde el uso de una sola GPU hasta configuraciones de múltiples nodos.
Las evaluaciones comenzaron con el rendimiento de una sola GPU para establecer una línea base. Esto incluyó la comparación de diferentes tamaños de sistema para ver qué tan bien GROMACS utilizaba el hardware. Los resultados destacaron que, aunque el rendimiento de GROMACS estaba generalmente cerca de versiones optimizadas, algunas diferencias permanecieron, principalmente debido a varias características de rendimiento de los kernels.
A medida que las pruebas se expandieron a configuraciones de múltiples GPUs, se evaluó el escalado del rendimiento. En estos escenarios, la eficiencia de la gestión de tareas y la comunicación se volvió crítica. Los resultados indicaron que factores como los retrasos en el lanzamiento de kernels y el vaciado del gráfico de tareas impactaron fuertemente en el rendimiento en configuraciones más grandes.
Logros con SYCL
El uso de SYCL dentro de GROMACS ha mostrado resultados prometedores, con datos de apoyo que indican que SYCL puede servir como un modelo de programación confiable para GPUs de AMD. GROMACS alcanzó niveles de rendimiento altos comparables a enfoques nativos e incluso los superó en ciertos escenarios.
GROMACS logró un rendimiento de escalado robusto a través de múltiples nodos, aunque quedaron desafíos con tareas específicas como el cálculo de fuerzas a larga distancia. Se identificaron optimizaciones para FFTs como áreas vitales en las que enfocarse para futuras mejoras.
A medida que GROMACS continúa refinando su implementación de SYCL, busca aprovechar las lecciones aprendidas para mejorar su rendimiento en varias configuraciones de hardware. Se espera que los esfuerzos continuos lleven a mejoras significativas, haciendo de GROMACS una herramienta más eficiente para realizar simulaciones complejas de dinámica molecular.
Direcciones futuras
A pesar de muchos avances, GROMACS todavía enfrenta desafíos en escalado y rendimiento, particularmente en cuanto a optimizaciones de kernels y el manejo eficiente de interacciones a larga distancia durante las simulaciones. Abordar estos desafíos requiere una planificación cuidadosa y colaboración continua con proveedores de hardware para crear soluciones optimizadas.
El desarrollo futuro se centrará en mejorar el rendimiento de funciones de kernel críticas y en aumentar la escalabilidad de las bibliotecas FFT distribuidas. Esto es esencial para asegurar que GROMACS siga siendo competitivo y capaz de manejar simulaciones cada vez más complejas.
Al continuar mejorando el uso de SYCL, GROMACS tiene como objetivo proporcionar una plataforma más estable y orientada al rendimiento para la dinámica molecular. La colaboración con varios equipos de investigación y profesionales de la industria ayudará a impulsar los avances necesarios hacia adelante.
Conclusión
Para cerrar, la transición de GROMACS a usar SYCL en plataformas basadas en GPUs de AMD ha demostrado ser un enfoque exitoso para lograr rendimiento y portabilidad. Los avances realizados hasta ahora reflejan un fuerte compromiso con la adaptación al cambiante panorama del hardware computacional y las crecientes demandas de la investigación científica.
Las lecciones aprendidas de la implementación de SYCL y los resultados de rendimiento obtenidos no solo beneficiarán a GROMACS, sino que también podrían informar a otras aplicaciones de investigación que busquen hacer transiciones similares. A medida que el panorama de la computación de alto rendimiento continúa evolucionando, GROMACS se mantiene dedicado a ampliar los límites de lo que es posible en simulaciones de dinámica molecular, asegurando que los investigadores tengan acceso a herramientas poderosas para sus necesidades científicas.
Título: GROMACS on AMD GPU-Based HPC Platforms: Using SYCL for Performance and Portability
Resumen: GROMACS is a widely-used molecular dynamics software package with a focus on performance, portability, and maintainability across a broad range of platforms. Thanks to its early algorithmic redesign and flexible heterogeneous parallelization, GROMACS has successfully harnessed GPU accelerators for more than a decade. With the diversification of accelerator platforms in HPC and no obvious choice for a multi-vendor programming model, the GROMACS project found itself at a crossroads. The performance and portability requirements, and a strong preference for a standards-based solution, motivated our choice to use SYCL on both new HPC GPU platforms: AMD and Intel. Since the GROMACS 2022 release, the SYCL backend has been the primary means to target AMD GPUs in preparation for exascale HPC architectures like LUMI and Frontier. SYCL is a cross-platform, royalty-free, C++17-based standard for programming hardware accelerators. It allows using the same code to target GPUs from all three major vendors with minimal specialization. While SYCL implementations build on native toolchains, performance of such an approach is not immediately evident. Biomolecular simulations have challenging performance characteristics: latency sensitivity, the need for strong scaling, and typical iteration times as short as hundreds of microseconds. Hence, obtaining good performance across the range of problem sizes and scaling regimes is particularly challenging. Here, we share the results of our work on readying GROMACS for AMD GPU platforms using SYCL, and demonstrate performance on Cray EX235a machines with MI250X accelerators. Our findings illustrate that portability is possible without major performance compromises. We provide a detailed analysis of node-level kernel and runtime performance with the aim of sharing best practices with the HPC community on using SYCL as a performance-portable GPU framework.
Autores: Andrey Alekseenko, Szilárd Páll, Erik Lindahl
Última actualización: 2024-05-02 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2405.01420
Fuente PDF: https://arxiv.org/pdf/2405.01420
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.
Enlaces de referencia
- https://tex.stackexchange.com/a/694779
- https://orcid.org/0000-0003-4906-7241
- https://orcid.org/0000-0003-0603-5514
- https://orcid.org/0000-0002-2734-2794
- https://github.com/intel/llvm/
- https://docs.lumi-supercomputer.eu/hardware/lumig/
- https://github.com/ROCm/Gromacs/commits/9f01a09a4356/
- https://gitlab.com/gromacs/gromacs/-/merge_requests/3542
- https://doi.org/10.5281/zenodo.11087335