J'ai déjà développé une solution de travail de la méthode des éléments finis pour résoudre les problèmes de transfert de chaleur en utilisant GPU et OpenCL en utilisant la méthode Conjugate Gradient. Le principal inconvénient de cette méthode est une forte demande de mémoire. De plus, dans le cas de cartes graphiques, la mémoire est souvent très limitée. Je vois deux options:
- Créer des sous-domaines et échanger des parties du maillage avec la mémoire hôte
- Utiliser des méthodes multifrontales
Je dois prendre en compte l'architecture spécifique. L'échange pourrait être très coûteux. La méthode CG est populaire dans le contexte de l'informatique GPGPU mais je ne trouve aucune comparaison entre CG et les méthodes multifrontales (dans le cas de GPGPU). La méthode multifrontale peut-elle être plus rapide que la CG? C'est une question générale, en fait, cela dépend toujours de la mise en œuvre.
la source
Réponses:
Je suis le chef de projet sur LibGeoDecomp , alors j'ai pensé que je pourrais faire un carillon.
Oui, vous pouvez implémenter un FEM avec LibGeoDecomp. Nous travaillons actuellement sur un conteneur de données amélioré pour exactement ce cas d'utilisation. Mais pour être juste: l'achèvement de ce travail est encore dans des mois et les performances ne seront pas optimales jusque-là. N'hésitez pas à me contacter par e-mail si vous souhaitez toujours essayer LibGeoDecomp.
Une autre option serait Fenics , qui a des solveurs bien optimisés pour les problèmes irréguliers. Mais AFAIK, vous ne pouvez pas écrire votre propre solveur dans ce cas.
la source
Je ne sais pas si cela vous aide. Ici, vous trouverez un lien vers libgeodecomp , un outil qui utilise des techniques de décomposition de domaine personnalisables (à partir du site). Il peut être utilisé avec des GPU pour autant que je sache. Si cela vous aide, votez pour moi ;-)
la source