[{"data":1,"prerenderedAt":152},["ShallowReactive",2],{"$f13zvygrz7ekrf":3},{"slug":4,"publishedAt":5,"category":6,"title":7,"summary":8,"image":9,"imageAlt":14,"readingMinutes":15,"serviceId":16,"keywords":17,"imageCaption":23,"sections":24,"sources":136},"gpu-cfd-solvers","2026-10-19","methods","Solveurs CFD sur GPU : quand le passage paie, et ce qu’il coûte","Un solveur CFD sur GPU est rentable si le cas tient en mémoire, utilise des modèles pris en charge et est assez grand. Comment le vérifier, et vérifier le résultat.",{"src":10,"thumbnail":11,"width":12,"height":13},"\u002Fassets\u002Fcfd-cases\u002Faero\u002Fimages\u002F02.webp","\u002Fbrand\u002Fstudies\u002Faero.svg",1448,1086,"Illustration DEEB-FLOW d’un modèle aérodynamique d’aile d’avion",13,"review",[18,19,20,21,22],"solveur CFD GPU","GPU ou CPU pour la CFD","solveur GPU Fluent","mémoire GPU par million de mailles","simple précision CFD","Illustration conceptuelle issue de la bibliothèque de cas DEEB-FLOW. Elle ne constitue pas un résultat de cet article.",[25,32,43,51,63,70,82,99,116,128],{"id":26,"title":27,"paragraphs":28},"two-runs","Deux calculs, une décision",[29,30,31],"Le calcul sur GPU s’est terminé avant midi. Le même cas sur le cluster CPU a attendu toute la nuit dans la file, puis a tourné presque toute la matinée suivante. Les coefficients de traînée concordent au troisième chiffre, la température de sortie diffère d’un demi-degré, et quelqu’un en réunion demande pourquoi l’équipe calcule encore quoi que ce soit sur CPU.","La question est légitime. Il y en a une plus terne qui devrait venir d’abord. Laquelle des deux réponses signeriez-vous ?","Un solveur CFD sur GPU est rentable quand trois conditions sont réunies : le cas tient dans la mémoire du GPU, il n’utilise que des modèles pris en charge par le solveur GPU, et il est assez grand pour que l’accélération compense le prix horaire plus élevé du matériel. Cet article montre comment vérifier chacune avant d’acheter ou de louer quoi que ce soit, ce que le solveur GPU fait autrement que son équivalent CPU, et l’après-midi de vérification que je consacrerais avant de lui confier une décision.",{"id":33,"title":34,"paragraphs":35},"what-runs-on-the-gpu","Qu’est-ce qui tourne vraiment sur le GPU ?",[36,37,41,42],"Deux choses très différentes sont vendues sous les mêmes trois lettres.",{"list":38},[39,40],"**Les solveurs natifs GPU** placent toute l’itération sur la carte : assemblage, résolution linéaire, gradients, tout. Le solveur GPU de Fluent fonctionne ainsi, et d’autres codes commerciaux proposent désormais aussi des solveurs natifs GPU. C’est de là que viennent les grandes accélérations.","**Le déport sur GPU** garde le solveur sur le CPU et envoie à la carte une seule partie coûteuse, le plus souvent le système linéaire de pression. Cela aide, et le reste de la boucle tourne toujours à la vitesse du CPU.","Le premier type demande un ajustement mental. Le solveur GPU de Fluent lit le même fichier de cas que le solveur CPU, mais il s’agit d’une implémentation distincte. Il ne traite que des cas 3D. Il propose un seul schéma de gradient, Least Squares Cell Based. Son schéma de pression Linear diffère de la version CPU, et Ansys indique qu’il est plus précis sur les maillages non uniformes. Il calcule en simple ou en double précision. Tout cela est documenté, et l’ensemble fait du calcul GPU une seconde mise en données numérique de votre problème, proche de la première et légèrement différente.","C’est tout l’argument de cet article, je ne le formule donc qu’une fois. Une nouvelle mise en données numérique gagne la confiance comme toutes les autres, en concordant avec une référence sur un cas que vous comprenez.",{"id":44,"title":45,"paragraphs":46},"how-much-faster","Combien plus rapide, honnêtement ?",[47,48,49,50],"Les chiffres d’accélération ressemblent aux chiffres de consommation de carburant. Ils sont réels, ils ont été mesurés, et ils ont été obtenus sur un trajet que vous ne ferez jamais.","SimuTech Group a calculé dans Fluent un cas stationnaire de transfert thermique conjugué d’environ 16 millions de mailles et a comparé une carte NVIDIA RTX 6000 à des nœuds CPU. Face à 16 cœurs, le GPU était environ 2,5 fois plus rapide que les processeurs AMD et 3,5 fois plus rapide que les processeurs Intel. Face à 96 et 128 cœurs, les CPU l’ont emporté. Une carte de milieu de gamme contre un petit calcul CPU, c’est une victoire nette ; la même carte contre un calcul CPU correctement dimensionné, c’est une défaite.","Les bancs d’essai des éditeurs, avec plusieurs GPU et des maillages de centaines de millions de mailles, annoncent des accélérations bien plus fortes. Les cas plus petits gagnent moins, car les parties du calcul qui se parallélisent mal occupent une plus grande part du temps.","Les deux types de résultats sont honnêtes, et ils répondent à des questions différentes. Devant un chiffre d’accélération, demandez quelle était la référence, quelle était la taille du maillage et quelle physique était activée. Un GPU contre 16 cœurs et huit GPU contre un millier de cœurs sont deux affirmations différentes qui partagent un même titre.",{"id":52,"title":53,"paragraphs":54},"will-it-fit","Mon cas va-t-il tenir ?",[55,56,57,58,62],"La mémoire du GPU est un mur. Un calcul CPU qui manque de mémoire ralentit ; un calcul GPU qui manque de mémoire ne démarre pas.","La documentation de Fluent donne une valeur indicative : environ 1 Go de mémoire GPU par million de mailles pour un cas turbulent sur maillage hexaédrique en simple précision. La double précision demande 50 % de plus et un maillage polyédrique de 20 à 40 % de plus. Les espèces, le rayonnement et les autres modèles ajoutent leur part, et le chiffre exact dépend du cas.","**Exemple chiffré.** Un cas turbulent sur un maillage polyédrique de 40 millions de mailles, en double précision :",{"formula":59},[60,61],"40 × 1.0 GB × 1.5 × 1.2 = 72 GB","40 × 1.0 GB × 1.5 × 1.4 = 84 GB","Sur une carte de 80 Go, cela se situe quelque part entre « tout juste » et « pas du tout », avant même d’ajouter une seule espèce. Le même maillage en simple précision demande de 48 à 56 Go et tient largement. Le choix de la précision est à la fois une décision de mémoire, de coût et de précision, et il mérite une minute de réflexion avant de devenir un réglage par défaut.",{"id":64,"title":65,"paragraphs":66},"single-precision","La simple précision suffit-elle ?",[67,68,69],"En général oui, pour les grandeurs que les ingénieurs rapportent. La simple précision offre environ sept chiffres significatifs. C’est largement suffisant pour un champ de vitesse ou une perte de charge de quelques centaines de pascals. Cela devient juste lorsque la réponse est une petite différence entre deux grands nombres : quelques pascals de perte de charge sur dix bars, un dixième de degré dans un solide à 400 K, un faible flux de chaleur net entre deux grands flux.","Les solveurs vous protègent déjà dans le cas le plus courant en travaillant en pression relative par rapport à une pression de fonctionnement. Choisissez cette pression de fonctionnement avec bon sens et l’essentiel du risque disparaît. Pour le reste, la vérification décrite plus loin vous dira, sur votre propre cas, si la précision compte.","Un autre effet apparaît en pratique. Dans la comparaison de SimuTech, le GPU calculait en simple précision et le CPU en double, et le GPU a eu besoin de plus d’itérations pour converger, avec des températures presque identiques à la fin. Comparez donc le temps réel jusqu’à une réponse convergée. Une itération plus rapide dont il faut deux fois plus d’exemplaires est un gain plus modeste qu’il n’y paraît.",{"id":71,"title":72,"paragraphs":73},"cost-per-case","Un solveur CFD sur GPU coûte-t-il moins cher par cas ?",[74,75,79,80,81],"Le calcul est simple, et on le fait rarement.",{"formula":76},[77,78],"C = r × t","C_GPU \u003C C_CPU  ⇔  S > r_GPU \u002F r_CPU","Ici C est le coût d’un cas, r le tarif horaire du matériel, t le temps réel jusqu’à une réponse convergée, et S = t_CPU \u002F t_GPU l’accélération mesurée sur votre cas.","**Exemple chiffré, avec des tarifs inventés.** Supposons qu’un nœud GPU coûte quatre fois plus cher à l’heure que les ressources CPU qu’utilise habituellement votre équipe. Le GPU doit alors être au moins quatre fois plus rapide sur votre cas, simplement pour atteindre l’équilibre. À 2,5 fois plus rapide, il coûte plus cher par cas et livre la réponse plus tôt. À 8 fois plus rapide, il coûte deux fois moins et livre plus tôt. Les deux peuvent être le bon choix. Plus rapide et moins cher sont deux questions distinctes, et un projet en retard paiera volontiers pour la première.","Trois coûts se cachent en dehors de la formule. Le temps d’attente, souvent plus long que le temps de calcul sur un cluster partagé. La façon dont votre licence logicielle compte le matériel GPU, à vérifier auprès de l’éditeur avant de bâtir un plan dessus. Et le coût ponctuel de la vérification de la mise en données GPU pour chaque famille de cas, qui fait l’objet des deux sections suivantes.",{"id":83,"title":84,"paragraphs":85},"what-differs","Que fait le solveur GPU autrement ?",[86,87,97,98],"Ansys publie à chaque version une page de limitations du solveur GPU de Fluent. La lire pour 2025 R2 et 2026 R1 est instructif. En voici une sélection, avec ce que chaque point vous fait :",{"list":88},[89,90,91,92,93,94,95,96],"**Niveau de pression dans les régions incompressibles fermées.** Dans une région fermée, incompressible et stationnaire, le solveur GPU conserve la pression moyenne volumique initiale, tandis que le solveur CPU fixe la pression à zéro dans une maille de référence. Les champs sont décalés, et Ansys précise que cela peut affecter les intégrales d’efforts sur des corps dont la surface n’est pas fermée. Un décalage constant de portance entre les deux solveurs mène d’abord ici.","**Signe du débit aux interfaces non conformes.** Les moniteurs de débit sur ces interfaces peuvent afficher le mauvais signe. Le bilan de masse paraît désastreux alors que l’écoulement va bien.","**Rapports de débit sur les surfaces.** La page des fonctions prises en charge pour 2025 R2 indique que le solveur GPU ne donne un débit massique correct que sur les zones intérieures et affiche zéro pour les autres. Une sortie à 0 kg\u002Fs est une limitation du rapport. Le conduit va bien.","**Pression dynamique sur les parois fixes.** Le moniteur affiche correctement zéro, tandis que les rapports utilisés comme paramètres de sortie affichent une valeur non nulle erronée.","**Écrêtage du rapport de viscosité turbulente.** Le rapport est écrêté à la même limite que sur CPU, sans aucun message dans la console. Le solveur CPU vous prévient quand il écrête. Le solveur GPU garde l’information pour lui.","**Initialisation.** L’initialisation hybride avec des conditions de pression en champ lointain peut ne pas converger ou produire un écoulement sortant non physique, et Ansys recommande l’initialisation standard. Démarrer un calcul instationnaire à partir d’une solution stationnaire ne fonctionne pas correctement quand l’équation d’énergie est résolue ; un contournement est documenté.","**Reprises d’un solveur à l’autre.** Une solution GPU avec un matériau compressible et l’équation d’énergie ne redémarrera pas correctement sur le solveur CPU.","**Réglages non pris en charge dans d’anciens fichiers de cas.** Les modèles que le solveur GPU ne prend pas en charge sont masqués dans l’interface ou marqués Unsupported. Définis par l’interface texte, ils sont signalés comme ignorés, convertis ou non pris en charge. Un fichier de cas CPU qui s’appuyait sur l’un d’eux tourne quand même, et seul le journal du calcul vous dit ce qu’il en est advenu.","La liste évolue aussi. La page 2025 R2 indiquait qu’un écoulement supersonique aux entrées en pression, aux entrées en vitesse et aux sorties en pression est traité comme subsonique. La page 2026 R1 ne mentionne plus ce point, et elle en ajoute d’autres, comme une limite de 20 espèces et l’incompatibilité du modèle flamelet generated manifold avec les milieux poreux et les repères mobiles.","Rien de tout cela n’est un scandale. Chaque point est écrit noir sur blanc, ce qui est plus qu’on ne peut en dire de certains comportements de solveurs CPU que j’ai rencontrés. Le problème est que la plupart d’entre nous lisent les notes de version comme les conditions générales d’un forfait mobile. Lisez la page de la version exacte que vous utilisez, à chaque changement.",{"id":100,"title":101,"paragraphs":102},"how-to-check","Comment je vérifierais un résultat GPU",[103,104,113,114,115],"Un après-midi par famille de cas, à refaire quand la version du solveur ou la physique change.",{"list":105,"ordered":112},[106,107,108,109,110,111],"**Choisissez un cas réduit de la famille.** Même physique, même type de maillage, mêmes types de conditions aux limites, assez petit pour tourner sur les deux solveurs en quelques heures.","**Calculez-le sur CPU en double précision jusqu’à une convergence serrée.** Suivez les grandeurs que vous rapporterez et vérifiez les bilans de masse et d’énergie, comme pour toute étude.","**Calculez-le sur GPU avec les réglages de production,** précision comprise. Tester la double précision puis calculer en simple précision, c’est tester la mauvaise chose.","**Lisez le journal du calcul GPU** à la recherche de tout ce qui a été ignoré, converti ou non pris en charge.","**Comparez les grandeurs d’intérêt, les bilans et un profil le long d’une ligne** dans la zone qui compte.","**Jugez l’écart par rapport à votre erreur de discrétisation.** Deux solveurs ne concordent jamais exactement, zéro est donc le mauvais étalon.",true,"C’est la dernière étape que l’on saute. La question est de savoir si les deux solveurs divergent davantage que ce que vous acceptez déjà du maillage.","**Exemple chiffré.** Supposons que votre étude de maillage ait donné un indice de convergence de grille de 3 % sur la perte de charge. Si les résultats GPU et CPU diffèrent de 0,4 %, l’écart n’est que du bruit face à l’incertitude que vous publiez déjà, et la mise en données GPU convient pour cette famille. S’ils diffèrent de 2,5 %, le choix du solveur pèse presque autant que toute votre incertitude de maillage, et il faut en connaître la raison avant de s’en servir : la précision, le schéma de pression ou un réglage ignoré. Les chiffres sont illustratifs ; c’est la logique qui compte.","Si vous n’avez jamais fait d’étude de maillage sur cette famille, la comparaison GPU ne repose sur rien ; commencez donc par là. L’exemple chiffré de l’article sur l’indépendance au maillage de ce blog prend à peu près le même après-midi.",{"id":117,"title":118,"paragraphs":119},"common-mistakes","Erreurs fréquentes, telles qu’elles apparaissent à l’écran",[120],{"list":121},[122,123,124,125,126,127],"**Un zéro à la sortie.** Le calcul GPU indique qu’aucune masse ne quitte le domaine. C’est une limitation du rapport ; vérifiez avec une surface intérieure avant de refaire le maillage.","**Un décalage constant d’effort ou de pression** entre calculs GPU et CPU d’un cas incompressible fermé. C’est une différence de niveau de pression, et elle compte pour les efforts sur des surfaces ouvertes.","**« Convergé en deux fois moins de temps »**, mesuré par itération alors que le nombre d’itérations a doublé. Mesurez le temps jusqu’à une grandeur d’intérêt convergée.","**Une référence de 16 cœurs dans le dossier d’investissement.** Si le calcul CPU que vous lancez réellement utilise 128 cœurs, comparez avec celui-là.","**Un manque de mémoire à l’initialisation** sur un maillage polyédrique dimensionné avec la règle des hexaèdres. Ajoutez les 20 à 40 %.","**Des changements de modèle silencieux** venant d’un ancien fichier de cas. Lisez le journal.",{"id":129,"title":130,"paragraphs":131},"what-i-would-do","Ce que je ferais",[132,133,134,135],"Je passerais une famille de cas sur GPU quand les cas sont grands, que la physique figure dans la liste prise en charge pour ma version et que le travail comporte de nombreux calculs : balayages de conception, écoulements d’air instationnaires, transfert thermique conjugué sur de gros assemblages, calculs à résolution d’échelles autrefois inabordables. Dans ces conditions, la vitesse change ce que l’on peut étudier, ce qui compte plus que le coût par cas.","Je resterais sur CPU pour les études ponctuelles à la physique inhabituelle, pour les cas qui exigent des modèles hors de la liste prise en charge, pour les petits maillages où des ressources CPU correctes donnent déjà la réponse en une heure, et pour tout flux de travail qui fait passer des calculs d’un solveur à l’autre.","Et je louerais avant d’acheter. Un nœud GPU pour une journée, la vérification d’un après-midi décrite plus haut sur un cas que je connais bien, et j’aurais mon propre chiffre d’accélération, mesuré sur mon propre trajet.","Si vous calculez déjà sur GPU et souhaitez un regard extérieur pour savoir si les résultats correspondent à ce que donnait votre chaîne CPU, c’est une revue de modèle, l’une des prestations les plus légères décrites dans les pages de services.",[137,140,143,146,149],{"href":138,"label":139},"https:\u002F\u002Fansyshelp.ansys.com\u002Fpublic\u002FViews\u002FSecured\u002Fcorp\u002Fv252\u002Fen\u002Fflu_ug\u002Fflu_ug_sec_gpu_solver_limitations.html","Ansys Fluent User’s Guide, Release 2025 R2: Fluent GPU Solver Limitations",{"href":141,"label":142},"https:\u002F\u002Fansyshelp.ansys.com\u002Fpublic\u002FViews\u002FSecured\u002Fcorp\u002Fv261\u002Fen\u002Fflu_ug\u002Fflu_ug_sec_gpu_solver_limitations.html","Ansys Fluent User’s Guide, Release 2026 R1: Fluent GPU Solver Limitations",{"href":144,"label":145},"https:\u002F\u002Fansyshelp.ansys.com\u002Fpublic\u002FViews\u002FSecured\u002Fcorp\u002Fv252\u002Fen\u002Fflu_ug\u002Fflu_ug_sec_gpu_solver_supported_features.html","Ansys Fluent User’s Guide, Release 2025 R2: Features Supported by the Fluent GPU Solver",{"href":147,"label":148},"https:\u002F\u002Fansyshelp.ansys.com\u002Fpublic\u002FViews\u002FSecured\u002Fcorp\u002Fv242\u002Fen\u002Fflu_ug\u002Fflu_ug_sec_gpu_solver_gpu_memory.html","Ansys Fluent User’s Guide, Release 2024 R2: GPU Memory Usage",{"href":150,"label":151},"https:\u002F\u002Fsimutechgroup.com\u002Fresources\u002Fblog\u002Fcpu-vs-gpu-which-is-better-for-cfd-simulation\u002F","SimuTech Group (updated 2026): CPU vs GPU computing, which is better for CFD simulation?",1792438042465]