Simple Science

Ciência de ponta explicada de forma simples

# Física# Computação distribuída, paralela e em cluster# Engenharia, finanças e ciências computacionais# Desempenho# Física Computacional

GROMACS Adota SYCL para Melhorar o Desempenho da GPU

O GROMACS integra SYCL pra melhorar o desempenho em GPUs AMD nas simulações de dinâmica molecular.

― 9 min ler


Sucesso na Integração doSucesso na Integração doGROMACS com SYCLmolecular com SYCL em GPUs AMD.Melhorando o desempenho de dinâmica
Índice

GROMACS é um pacote de software bem conhecido usado para simulações de Dinâmica Molecular, que ajudam os cientistas a estudar o comportamento das moléculas ao longo do tempo. O foco é na performance, portabilidade e facilidade de uso em diferentes plataformas de hardware. Há mais de dez anos, GROMACS tem usado aceleradores de GPU para melhorar seu Desempenho.

Conforme o hardware para Computação de Alto Desempenho (HPC) evoluiu, a variedade de plataformas de aceleradores também aumentou. Isso gerou a necessidade de um modelo de programação que funcione bem entre diferentes fornecedores. GROMACS enfrentou o desafio de escolher o modelo de programação certo que ofereça boa performance e portabilidade. Para atender a essas necessidades, GROMACS adotou o SYCL, um modelo de programação moderno, para direcionar GPUs de fabricantes principais como AMD e Intel.

SYCL é um padrão multiplataforma para programar aceleradores de hardware usando C++. Ele permite que os desenvolvedores escrevam código que roda em diferentes tipos de GPUs com ajustes mínimos. Essa capacidade é crucial, já que a demanda por recursos computacionais poderosos cresce, especialmente com a chegada da computação em exascale.

Desde o lançamento do GROMACS em 2022, o backend SYCL se tornou o principal método para direcionar GPUs da AMD. Essa preparação é fundamental para as próximas plataformas de supercomputação. Embora usar SYCL tenha várias vantagens, garantir alta performance em dinâmica molecular pode ser especialmente complicado.

Simulações de dinâmica molecular, especialmente as que envolvem biomoléculas, geralmente requerem muitos cálculos em um curto espaço de tempo. O desempenho dessas simulações pode sofrer com latência, o que dificulta alcançar uma escala eficiente em muitos recursos computacionais. Neste estudo, o desempenho do GROMACS em plataformas de GPU AMD usando SYCL é examinado, com resultados demonstrados em máquinas Cray EX235a equipadas com aceleradores MI250X.

Contexto sobre GROMACS

A dinâmica molecular (MD) é um método de simulação amplamente usado em várias áreas, como química e biofísica. O GROMACS é um motor de software líder que suporta simulações de MD, projetado para ser rápido, flexível e portátil em diferentes ambientes computacionais, desde laptops pessoais até poderosos supercomputadores.

A versão mais recente, GROMACS 2024.0, contém cerca de 470.000 linhas de código e é desenvolvido de forma aberta no GitLab. O processo de desenvolvimento garante a qualidade e a portabilidade do software através de revisões de código e testes automatizados.

Simulações biomoleculares geralmente visam maximizar o número de passos de simulação para um tamanho de sistema específico. Elas frequentemente envolvem muitas partículas, o que limita a quantidade de processamento paralelo que pode ser utilizada. Cada passo de simulação também é muito curto, aumentando a demanda por recursos computacionais.

Devido à complexidade dessas simulações, conseguir um bom desempenho é crítico. O GROMACS utiliza vários métodos para otimizar seu desempenho, incluindo paralelismo em múltiplos níveis. Isso envolve dividir tarefas em unidades menores e gerenciáveis e usar diferentes técnicas de processamento para executá-las de forma eficiente em várias estruturas de hardware.

À medida que o hardware se desenvolve, o GROMACS continuou a otimizar seus algoritmos para maximizar o uso dos recursos disponíveis. Essa flexibilidade permite que o GROMACS utilize configurações de múltiplos nós e múltiplas GPUs de forma eficaz.

A Necessidade de um Modelo de Programação

Com o aumento da complexidade das simulações científicas, as exigências sobre softwares como o GROMACS aumentaram. À medida que mais aceleradores entram no mercado, o desafio está em suportar uma ampla gama de dispositivos sem sacrificar o desempenho. O GROMACS precisava de um modelo de programação que pudesse proporcionar fácil acesso a diferentes tipos de GPUs enquanto mantivesse um desempenho forte.

Esforços anteriores no GROMACS se concentraram em desenvolver soluções portáteis, como o backend OpenCL. Embora útil, o modelo OpenCL se tornou menos favorável à medida que o número de GPUs suportadas aumentou. Com a mudança de mercado com a AMD e Intel reingressando no setor de HPC, uma solução mais robusta era necessária.

O GROMACS se voltou para o SYCL como uma solução potencial. O SYCL é baseado em padrões estabelecidos, oferecendo melhores perspectivas para compatibilidade e suporte a longo prazo em diferentes plataformas. Ele fornece uma maneira mais simples de programar aceleradores de hardware, tornando-se adequado para o GROMACS enquanto se prepara para desafios futuros.

O modelo de programação SYCL oferece benefícios-chave, como portabilidade e facilidade de integração com hardware existente. Com diferentes implementações de SYCL disponíveis, o GROMACS pode direcionar uma variedade de GPUs enquanto mantém níveis de desempenho próximos às APIs nativas.

Implementando SYCL no GROMACS

O trabalho inicial para integrar o SYCL no GROMACS começou em 2020. O foco principal era permitir que o GROMACS rodasse em GPUs Intel, e a compatibilidade com GPUs AMD também foi considerada desde o início. A mudança do backend OpenCL para SYCL visava reduzir a duplicação de código e os esforços de manutenção, permitindo mais recursos consistentes em todo o hardware suportado.

O backend SYCL para o GROMACS foi projetado para funcionar efetivamente com os principais cálculos de força e outras tarefas importantes, como integração, restrições e comunicação. Isso permite que o GROMACS aproveite ao máximo o poder de processamento das GPUs modernas, mantendo o design flexível.

Na versão de 2023, o GROMACS melhorou significativamente sua implementação do SYCL ao introduzir comunicação direta de GPU através do MPI consciente da GPU. Esse desenvolvimento é crucial para uma escalabilidade eficiente, especialmente enquanto o GROMACS expande suas capacidades para acomodar sistemas maiores.

Testes e Análise de Desempenho

As avaliações de desempenho foram realizadas utilizando vários sistemas de benchmark em supercomputadores Cray EX235a avançados com GPUs AMD MI250X. O objetivo era determinar como o GROMACS se saiu usando o backend SYCL em comparação a implementações anteriores e a modelos de programação alternativos como o HIP.

Duas principais localidades foram usadas para os testes: LUMI e Dardel. Ambos os sistemas tinham configurações de hardware avançadas para avaliar o desempenho do GROMACS ao escalar do uso de uma única GPU para configurações de múltiplos nós.

Os testes começaram com o desempenho de uma única GPU para estabelecer uma linha de base. Isso incluiu benchmarks de diferentes tamanhos de sistema para ver como bem o GROMACS utilizou o hardware. Os resultados mostraram que, embora o desempenho do GROMACS fosse geralmente próximo das versões otimizadas, algumas diferenças permaneceram, principalmente devido a diferentes características de desempenho dos kernels.

À medida que os testes se expandiram para configurações de múltiplas GPUs, a escalabilidade de desempenho foi avaliada. Nesses cenários, a eficiência da gestão de tarefas e comunicação se tornou crítica. Os resultados indicaram que fatores como atrasos no lançamento de kernels e descarregamento de grafos de tarefas impactaram fortemente o desempenho em configurações maiores.

Conquistas com SYCL

O uso do SYCL dentro do GROMACS mostrou resultados promissores, com dados de suporte indicando que o SYCL pode servir como um modelo de programação confiável para GPUs AMD. O GROMACS alcançou níveis de desempenho alto comparáveis às abordagens nativas e até superou em certos cenários.

O GROMACS conseguiu um desempenho robusto de escalabilidade em múltiplos nós, embora desafios permanecessem com tarefas específicas, como o cálculo de forças de longo alcance. Otimizações para FFTs foram identificadas como áreas vitais para focar em futuras melhorias.

Enquanto o GROMACS continua a refinar sua implementação do SYCL, ele visa aproveitar as lições aprendidas para melhorar seu desempenho em diversas configurações de hardware. Os esforços contínuos devem levar a melhorias significativas, tornando o GROMACS uma ferramenta mais eficiente para realizar simulações complexas de dinâmica molecular.

Direções Futuras

Apesar de muitos avanços, o GROMACS ainda enfrenta desafios em escalabilidade e desempenho, especialmente no que diz respeito à otimização de kernels e ao manuseio eficiente de interações de longo alcance durante as simulações. Abordar esses desafios requer planejamento cuidadoso e colaboração contínua com fornecedores de hardware para criar soluções otimizadas.

O desenvolvimento futuro irá focar em melhorar o desempenho das funções de kernel críticas e aumentar a escalabilidade das bibliotecas FFT distribuídas. Isso é essencial para garantir que o GROMACS continue competitivo e capaz de lidar com simulações cada vez mais complexas.

Ao continuar a aprimorar o uso do SYCL, o GROMACS visa fornecer uma plataforma mais estável e orientada para desempenho para a dinâmica molecular. A colaboração com várias equipes de pesquisa e profissionais da indústria ajudará a impulsionar os avanços necessários.

Conclusão

Para finalizar, a transição do GROMACS para o uso do SYCL em plataformas baseadas em GPU da AMD tem se mostrado uma abordagem bem-sucedida para alcançar desempenho e portabilidade. Os avanços feitos até agora refletem um forte compromisso em se adaptar ao cenário em evolução do hardware computacional e às crescentes demandas da pesquisa científica.

As lições aprendidas com a implementação do SYCL e os resultados de desempenho obtidos não só beneficiarão o GROMACS, mas também poderão informar outras aplicações de pesquisa que buscam fazer transições semelhantes. À medida que o cenário da computação de alto desempenho continua a evoluir, o GROMACS permanece dedicado a expandir os limites do que é possível em simulações de dinâmica molecular, garantindo que os pesquisadores tenham acesso a ferramentas poderosas para suas necessidades científicas.

Fonte original

Título: GROMACS on AMD GPU-Based HPC Platforms: Using SYCL for Performance and Portability

Resumo: 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 atualização: 2024-05-02 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2405.01420

Fonte PDF: https://arxiv.org/pdf/2405.01420

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Artigos semelhantes