Pré-extraction de données dans le cache pour x86-64

Dans mon application, à un moment, j'ai besoin d'effectuer des calculs sur un grand bloc contigu de mémoire de données (100s de mo). Ce que je pensais était de garder le pré-chargement de la partie du bloc mon programme va toucher à l'avenir, de sorte que lorsque je effectuer des calculs sur cette partie, les données sont déjà dans le cache.

Quelqu'un peut me donner un exemple simple de comment réaliser cela avec gcc? J'ai lu _mm_prefetch quelque part, mais ne savent pas comment l'utiliser correctement. Note aussi que j'ai un système multicœur, mais chaque âme sera de travailler sur une région différente de la mémoire en parallèle.

source d'informationauteur pythonic | 2012-04-25