5.2.1 : Contiguïté des données



Les accès mémoire se font par blocs de données (64 octets pour les accès RAM des processeurs Intel actuels). Pour qu'ils soient efficaces, il faut que l'intégralité de chaque bloc obtenu soit utilisée. Cela implique l'utilisation de données contiguës.

nothing

Figure 5 : En haut : L'utilisation de données contiguës améliore les performances d'accès aux données. En bas : Si les données ne sont pas contiguës, les accès aux données seront plus lents.



La contiguïté des données s'obtient par l'utilisation de tableaux, matrices ou tenseurs (voir figure 5). Cela implique que toutes les données d'un même type (entier, flottant,~etc.) et d'une même signification (signal, position,~etc.) soient adjacentes en mémoire. Cette configuration améliore autant les performances du programme que sa lisibilité. De plus, l'utilisation de telles représentations permettra aux développeurs d'utiliser plus facilement des GPUs s'ils le souhaitent.

En revanche, l'utilisation de représentations non contiguës, telles que des listes, dégradera les performances. En effet, les unités de calculs devront attendre plus longtemps le rapatriement des données dans les registres du CPU.