2010-12-13 41 views

Répondre

2

Si vous essayez d'optimiser les performances, l'analyse comparative est exactement ce que vous devez faire. Pour un exemple, voir ATLAS.

Si vous n'essayez pas d'optimiser les performances, pourquoi vous souciez-vous de la taille de la ligne de cache, et vous souciez-vous également du nombre de lignes et de l'associativité? Quelles sont les architectures de CPU à gérer?

+0

Je suis certainement d'accord sur l'analyse comparative! Ce que je voulais dire en disant que je ne veux pas expérimenter avec le partage de ligne de cache faux est que l'expérimentation n'est pas la façon dont je veux trouver la taille de ligne de cache dans le produit, mais préférerais un appel syscall ou même inline. – okun

0

Vous pouvez jeter un oeil à la bibliothèque hwloc (licence BSD) qui donne ce type d'information pour différents systèmes et architectures. Vous pouvez utiliser l'outil de ligne de commande lstopo ou l'API fournie (voir documentation).

2

Pour Solaris (sur les deux architectures SPARC et x86) vous pouvez utiliser cette commande:

$ prtpicl -v -c cpu | grep -i cache-line-size 
    :l1-dcache-line-size 0x40 
    :l1-icache-line-size 0x40 
    :l2-cache-line-size 0x40