Modèle de toit

Un exemple de modèle roofline avec des plafonds dans le cœur, où les deux plafonds ajoutés représentent l`absence de parallélisme au niveau de l`instruction et le parallélisme au niveau de la tâche. Le modèle roofline est un modèle de performance visuelle intuitif utilisé pour fournir des estimations de performances d`un noyau de calcul ou d`une application donné fonctionnant sur des architectures multicœur, de plusieurs cœurs ou de processeurs d`accélérateurs, en montrant des limitations matérielles inhérentes, et avantages potentiels et la priorité des optimisations. En combinant la localité, la bande passante et différents paradigmes de parallélisation en un seul chiffre de performance, le modèle peut être une alternative efficace pour évaluer la qualité des performances obtenues au lieu d`utiliser des estimations de pourcentage de crête simples, car il fournit des informations sur la mise en œuvre et les limitations de performance inhérentes. Le modèle de ligne de toit le plus basique peut être visualisé en traçant les performances en virgule flottante en fonction de la performance de la machine Peak [vague] [clarification nécessaire], de la bande passante maximale de la machine et de l`intensité arithmétique. La courbe résultante est effectivement une performance liée sous laquelle le noyau ou les performances de l`application existe, et comprend deux plafonds de performance spécifiques à la plate-forme [clarification nécessaire]: un plafond dérivé de la bande passante mémoire et un dérivé de la performances maximales du processeur (voir figure à droite). Le tracé de roofline peut être élargi sur trois aspects différents: la communication, l`ajout des plafonds de bande passante; calcul, en ajoutant les plafonds dits «in-Core»; et localité, en ajoutant les murs de la localité. Le roofline naïf fournit juste une limite supérieure (le maximum théorique) à la performance. Bien qu`il puisse encore donner des informations utiles sur les performances réalisables, il ne fournit pas une image complète de ce qui est réellement le limiter. Si, par exemple, le noyau ou l`application considéré fonctionne bien en dessous de la ligne de toit, il pourrait être utile de capturer d`autres plafonds de performance, autres que la simple bande passante de crête et les performances, pour mieux guider le programmeur sur lequel l`optimisation à implémenter, ou même d`évaluer l`adéquation de l`architecture utilisée par rapport au noyau ou à l`application analysés.

[3] les plafonds ajoutés imposent alors une limite sur la performance atteignable qui est en dessous de la ligne de toit réelle, et indiquent que le noyau ou l`application ne peut pas briser à travers n`importe qui de ces celining sans d`abord effectuer l`optimisation associée. 3 [4] exemple d`un modèle roofline avec des plafonds de bande passante supplémentaires. Dans ce modèle, les deux plafonds supplémentaires représentent l`absence de prérécupération logicielle et l`organisation NUMA de la mémoire. En outre, le modèle a été étendu pour mieux adapter les architectures spécifiques et les caractéristiques connexes, telles que les FPGAs. [11] si l`hypothèse idéale que l`intensité arithmétique est uniquement une fonction du noyau est supprimée, et la topologie de cache-et donc manque de cache-est pris en compte, l`intensité arithmétique devient clairement dépendante d`une combinaison de noyau et Architecture. Cela peut entraîner une dégradation des performances en fonction de l`équilibre entre l`intensité arithmétique résultante et le point de crête.