Simple Science

La science de pointe expliquée simplement

# Informatique# Langages de programmation

Comparer CUDA et SYCL pour des tâches de bioinformatique

Une analyse de CUDA et SYCL dans les recherches de bases de données de protéines.

― 6 min lire


CUDA vs SYCL enCUDA vs SYCL enbioinformatiquerecherches de protéines.Une étude sur les performances dans les
Table des matières

Ces dernières années, l'utilisation de différents types de matériel informatique est devenue de plus en plus courante dans la recherche scientifique. Cette tendance, connue sous le nom de calcul hétérogène, permet aux chercheurs de profiter de divers processeurs, y compris des unités de traitement graphique (GPU) d'entreprises comme NVIDIA, Intel et AMD. Un des gros défis auxquels les chercheurs font face, c'est de savoir comment écrire des logiciels qui fonctionnent bien sur ces différents types de matériel sans avoir à les réécrire pour chacun. Cet article se penche sur deux langages de programmation, CUDA et SYCL, pour voir comment ils se comportent dans une tâche spécifique de Bioinformatique, la recherche dans les bases de données de protéines.

Comprendre CUDA et SYCL

CUDA est un langage de programmation développé par NVIDIA, principalement pour programmer ses propres GPU. Il est devenu très populaire parce qu'il permet aux développeurs d'écrire du code qui fonctionne rapidement sur le matériel NVIDIA. Cependant, comme CUDA est exclusif aux appareils NVIDIA, il ne peut pas être utilisé sur des GPU AMD ou Intel.

D'un autre côté, SYCL est une norme de programmation plus récente créée par le Khronos Group. Contrairement à CUDA, SYCL est fait pour fonctionner sur divers types de processeurs, pas seulement ceux fabriqués par une seule entreprise. Les développeurs peuvent écrire du code SYCL une fois, et il a le potentiel de fonctionner sur différents matériels sans nécessiter de changements importants. Cela rend SYCL une option plus flexible pour les programmeurs qui veulent que leur code fonctionne sur de nombreux systèmes différents.

Pourquoi cette étude est importante

Le choix entre CUDA et SYCL peut avoir un gros impact sur la facilité avec laquelle les chercheurs peuvent utiliser la dernière puissance de calcul disponible. Beaucoup d'applications en bioinformatique, comme la recherche dans de grandes bases de données de protéines, peuvent bénéficier de la rapidité des GPU. En comparant CUDA et SYCL pour cette tâche spécifique, les chercheurs peuvent obtenir des infos sur les performances et la facilité d'utilisation sur différents matériels.

La tâche de recherche dans la base de données de protéines

En bioinformatique, les chercheurs ont souvent besoin de comparer des séquences de protéines pour trouver des similitudes et des différences. Une méthode courante pour cela s'appelle l'algorithme Smith-Waterman. Cette méthode est efficace mais aussi assez complexe car elle doit comparer de nombreux alignements possibles entre les séquences.

Le but principal de cette étude est d'évaluer à quel point CUDA et SYCL peuvent bien exécuter cette tâche d'alignement sur différents types de GPU. Les chercheurs veulent voir si un langage est meilleur que l'autre et s'ils peuvent atteindre des niveaux de performance similaires sur divers matériels.

Configuration expérimentale

Pour tester les performances de CUDA et SYCL, les chercheurs ont utilisé un ensemble de dix GPU différents, incluant un mélange de modèles NVIDIA, AMD et Intel. Ils ont exécuté la même application de recherche dans la base de données de protéines en utilisant les deux langages de programmation et ont collecté des données sur la rapidité avec laquelle chacun pouvait effectuer les tâches.

Performance sur un seul GPU

Les résultats ont montré que sur les GPU NVIDIA, CUDA et SYCL ont donné des performances similaires. En fait, il n'y avait pas de différence significative de vitesse entre les deux pour la plupart des modèles testés. Par exemple, un modèle de GPU a montré un léger avantage pour SYCL, tandis qu'un autre a favorisé CUDA, mais les différences étaient minimes dans l'ensemble.

Pour les GPU AMD et Intel, SYCL a montré qu'il pouvait fonctionner efficacement, ce que CUDA ne peut pas faire puisqu'il est exclusivement pour les appareils NVIDIA. Cela met en évidence les avantages de portabilité de SYCL, car il a réussi à atteindre de bonnes performances sur une gamme plus large de matériels.

Performance multi-GPU

Pour aller au-delà des tests sur un seul GPU, les chercheurs ont également effectué des tests en utilisant plusieurs GPU en même temps. Dans cette configuration multi-GPU, ils ont constaté que SYCL n'a pas introduit de délais supplémentaires par rapport à CUDA. Pour la plupart des configurations, SYCL a bien fonctionné, voire mieux que CUDA.

Un point intéressant est que lors de l'utilisation de l'application SW avec différents GPU, l'efficacité chutait parfois par rapport à l'utilisation d'un seul GPU. Cela peut arriver à cause de la façon dont la charge de travail est répartie entre les GPU, qui peut ne pas toujours être équilibrée de manière efficace, entraînant une sous-utilisation de certains GPU.

Implications des résultats

Les résultats de cette étude suggèrent que CUDA et SYCL peuvent offrir de bonnes performances pour les recherches dans les bases de données de protéines, surtout sur le matériel NVIDIA. Cependant, SYCL se distingue en termes de portabilité, montrant qu'il peut fonctionner efficacement sur diverses marques de GPU. C'est super important alors que de plus en plus de chercheurs cherchent à utiliser du matériel non-NVIDIA dans leur travail.

La capacité d'écrire du code qui peut fonctionner sur différentes plateformes sans changements importants devient de plus en plus cruciale à mesure que le paysage du calcul évolue. Avec de nombreux chercheurs travaillant avec du matériel divers, la portabilité de SYCL pourrait en faire une option plus attrayante à l'avenir.

Travaux futurs

Bien que les résultats de cette étude soient prometteurs, les chercheurs reconnaissent que SYCL est encore un modèle de programmation en développement. Ils prévoient d'améliorer encore l'implémentation de SYCL en optimisant le code et en le testant avec différents types de matériel.

Les chercheurs veulent également explorer d'autres modèles de programmation qui visent une compatibilité multi-plateformes similaire pour fournir une comparaison plus large. Ce travail en cours est essentiel, car il aidera à s'assurer que les chercheurs ont les outils nécessaires pour tirer le meilleur parti des ressources de calcul disponibles de manière efficace.

Conclusion

La comparaison entre CUDA et SYCL pour les recherches dans les bases de données de protéines souligne l'évolution des langages de programmation dans le domaine de la bioinformatique. Bien que les deux langages offrent de bonnes performances sur les GPU NVIDIA, l'adaptabilité de SYCL sur plusieurs marques de matériel offre des avantages significatifs. Alors que les chercheurs continuent à rechercher une plus grande efficacité et performance dans leurs calculs, SYCL pourrait émerger comme un acteur clé dans la facilitation de cet objectif, notamment dans des environnements de calcul hétérogènes où les options matérielles diverses sont courantes.

Source originale

Titre: Comparing Performance and Portability between CUDA and SYCL for Protein Database Search on NVIDIA, AMD, and Intel GPUs

Résumé: The heterogeneous computing paradigm has led to the need for portable and efficient programming solutions that can leverage the capabilities of various hardware devices, such as NVIDIA, Intel, and AMD GPUs. This study evaluates the portability and performance of the SYCL and CUDA languages for one fundamental bioinformatics application (Smith-Waterman protein database search) across different GPU architectures, considering single and multi-GPU configurations from different vendors. The experimental work showed that, while both CUDA and SYCL versions achieve similar performance on NVIDIA devices, the latter demonstrated remarkable code portability to other GPU architectures, such as AMD and Intel. Furthermore, the architectural efficiency rates achieved on these devices were superior in 3 of the 4 cases tested. This brief study highlights the potential of SYCL as a viable solution for achieving both performance and portability in the heterogeneous computing ecosystem.

Auteurs: Manuel Costanzo, Enzo Rucci, Carlos García Sánchez, Marcelo Naiouf, Manuel Prieto-Matías

Dernière mise à jour: 2023-11-10 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2309.09609

Source PDF: https://arxiv.org/pdf/2309.09609

Licence: https://creativecommons.org/licenses/by-nc-sa/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires