Par expérience, il y a des cas où faire les optimisations à la main (via les intrinsics ou directement en asm) est, à l'heure actuelle, toujours supérieure aux compilateurs.
#MyLife
Durant ma thèse (2017), j'ai développé un code de simulation multifluide de décharges plasmas. Et l'un des solveurs utilisés pour résoudre calculer le potentiel électrique devait calculer alternativement les indices pairs puis les indices impairs. Ecrit correctement et avec les bons optimisations, le compilateur produisait un code sympathique. Mais une analyse de l'assembleur a révelé qu'il y avait possibilité de faire mieux.
Avec l'aide des intrinsics (et d'un peu d'assembleur pour forcer GCC), j'ai pu gagner un gain d'un facteur ~ 4 en monocoeurs. (Evidemment, la grille de calcul était séparé sur les différents coeurs).
#MyLife
Bref, il existe encore des cas concrets où l'humain surpasse le compilateur.
# Parfois l'homme est meilleur que la machine
Posté par KuroLightning . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 2. Dernière modification le 04 octobre 2021 à 11:57.
Par expérience, il y a des cas où faire les optimisations à la main (via les intrinsics ou directement en asm) est, à l'heure actuelle, toujours supérieure aux compilateurs.
#MyLife
Durant ma thèse (2017), j'ai développé un code de simulation multifluide de décharges plasmas. Et l'un des solveurs utilisés pour résoudre calculer le potentiel électrique devait calculer alternativement les indices pairs puis les indices impairs. Ecrit correctement et avec les bons optimisations, le compilateur produisait un code sympathique. Mais une analyse de l'assembleur a révelé qu'il y avait possibilité de faire mieux.
Avec l'aide des intrinsics (et d'un peu d'assembleur pour forcer GCC), j'ai pu gagner un gain d'un facteur ~ 4 en monocoeurs. (Evidemment, la grille de calcul était séparé sur les différents coeurs).
#MyLife
Bref, il existe encore des cas concrets où l'humain surpasse le compilateur.