• [^] # Re: Copier "par bloc" ?

    Posté par . En réponse au message Performances de memcpy ???. Évalué à 4.

    J'allais dire ce que tu décris dans ton deuxième paragraphe : tu n'as (généralement) pas le contrôle sur la manière dont le processeur gère le cache. Tu ne peux donc rien dire quant à la quantité de données qui sera en L1. Et même si c'était le cas, que veux tu faire de spécifique par rapport à ça dans ton algorithme ? Faire des pauses tous les n octets ? (je prend cette histoire débile de pause pour essayer de te faire réfléchir à ce que tu veux vraiment mettre dans ce code pour gérer la copie "par bloc" ; car moi, je ne comprend pas du tout ce que ça change dans ton algo de savoir la taille du L1).

    Bon après, sur des archis un peu plus évoluées que le x86, vu que tu as un paquet de registres pour faire la copie, tu peux effectivement essayer de t'arranger pour utiliser autant de registres qu'une ligne de cache par exemple. Tu peux aussi essayer de voir que de toutes façons ton pipeline sera plein assez vite vu que tu ne peux faire que deux load/store par cycle, ou un truc du genre, et essayer de régler ces paramètres en fonction.

    Ce qui est marrant avec le lien que tu donnes, c'est que les indications de gestion de cache (accessibles uniquement pour l'Altivec) des PowerPC G4 ont disparu dans le G5 car elles ne servaient à priori pas à grand chose niveau perf. Bizarre que Intel s'y mette.