|
Q & R - Benchmark Mémoire
Ce document fournit les réponses aux questions fréquemment posées
concernant Sandra. Veuillez lire le Fichier d'Aide également!
Q: Qu'est ce-que le STREAM (FLUX) (? R: STREAM est un benchmark de largeur de bande mémoire courant qui
a été utilisé depuis les ordinateurs personnels jusqu'aux
super calculateurs. Il mesure les largeurs de bande supportées de flux
non continu ou en pointe. Par conséquent, les résultats devraient
être inférieurs à ceux des autres benchmarks. Sandra est
basé sur ce benchmark.
Q: En quoi Benchmark Mémoire de Sandra est-il différent du
STREAM?
R: STREAM 2.0 utilise des données statiques (environ 12M) - Sandra
utilise des données dynamiques (autour de 40-60% de mémoire physique
système RAM). Cela veut dire qu'avec un ordinateur à la mémoire
rapide Sandra pourrait rapporter des résultats inférieurs à
STREAM. Il n'est pas possible que Sandra utilise la RAM statique - du fait que
Sandra est plus qu'un benchmark, ce qui fait qu'il ne pourrait se passer d'utiliser
de la mémoire.
Une différence majeure est que l'algorithme de Sandra est multi-processus
sur un système SMP. Le travail se fait en séparant les rangées
et en laissant chaque processus opérer avec son propre bit. Sandra crée
un processus pour chaque CPU du système et assigne chaque processus à
un CPU individuel.
Une autre différence est l'utilisation agressive de l'ordonnancement
(schedduling)/chevauchement(overlapping) des instructions dans le but de maximiser
le débit de la mémoire même sur les processeurs "plus lents".
Les boucles devraient toujours dépendre de la mémoire plutôt
que du CPU pour tous les processeurs récents.
L'autre différence majeure est l'utilisation de l'alignement. Sandra
change dynamiquement l'alignement des flux jusqu'à trouver la meilleure
combinaison, puis il le teste de façon répétée pour
estimer le meilleur débit du système. Vous pouvez modifier l'alignement
dans STREAM et recompiler - mais en général il est réglé
sur 0 (c'est à dire aucun).
Q: Sandra est-il compatible avec STREAM?
R: Non. Voyez ci-dessus pour les différences principales. Les résultats
devraient refléter une différence comparable entre divers ordinateurs
mais ne sont pas comparables par eux-même.
Q: Pourquoi l'indice change t-il entre les phase de test?
R: assurez vous d'avoir suffisamment de RAM (16MB ou plus) et que seul Sandra
est lancé. Si vous voyez le disque dur s'allumer c'est que votre ordinateur
est en activité d'échange mémoire (swapping). Des résultats
adéquates ne peuvent être obtenus que si l'ordinateur n'est pas
en activité d'échange mémoire.
Q: Quelle est l'utilité du nouveau bloc pre-fetch/buffering des
benchmarksSSE(2)/EMMX?
R: en un mot, le nouveau test utilise les instructions de pré-recherche
pour amener les données dans le CPU et les stocker directement dans la
mémoire sans passer par les caches. Dans le but de maximiser le flux,
des tampons sont utilisés pour pré-rechercher les données
dans les caches de sorte qu'elles soient déjà prêtes en
cas de besoin, réduisant les basculements entre les différents
flux de données.
Pour en savoir plus, reportez vous aux documents suivants:
- Intel Pentium III - SGI
Whitepaper sur les nouvelles instructions mémoire SSE .
- Intel Pentium 4 - voir le Manuel d'Optimisation du Code du Pentium 4 .
- AMD Athlon/Duron - Document
d'Optimisation Athlon/Duron . La rubrique concernée du guide se
trouve dans le Chapitre 5, p. 66 Optimizing Main Memory Performance for
Large Arrays et l'exemple de code au Chapitre 10, p.180.
Q: Pourquoi est ce-que je vois des listes de scores de référence
différentes avec Sandra pour différents systèmes?
R: il existe habituellement 4 listes de références différentes
en fonction des tests pratiqués (Options, possibilités du CPU):
- Tests Uni-Processeur historique (ALU/FPU)
- Tests Multi-Processeurs (SMP) historiques (ALU/FPU)
- Tests Uni-Processeur avancés (buffering/code-prefetch EMMX/SSE/SSE2)
- Tests Multi-Processeur (SMP) avancés (buffering/code-prefetch EMMX/SSE/SSE2)
Si cela vous paraît confus, ça a été créé
pour comparer des systèmes utilisant les mêmes types de tests et
non pour comparer des pommes et des oranges autant que possible. Ce qui vous
donne l'assurance de tests et de résultats objectifs.
Q: Comment suis-je supposé savoir quel (sorte de) test s'est déroulé?
R: examinez la barre de résultats, elle devrait tout vous révéler
concernant le test, aussi bien que les résultats en MB/s:
- Type d'unité(s) utilisée(s). Comme ALU ou FPU.
- Type de données utilisées. Comme arithmétique ou à
virgule flottante.
- Les techniques utilisées. Comme le bloc pre-fetch, buffering, etc.
- Les instruction utilisées. Comme MMX, EMMX, SSE, SSE2, etc.
- Le score en MB/s.
Q: Pourquoi certains systèmes montrent un rendement de bande passante
proche de 95% et d'autres inférieur à 80%?
R: si le code de tous les CPU est fortement optimisé, le rendement
dépend de la performance du chipset et de la configuration de la mémoire.
Seuls les paramètres les plus agressifs peuvent afficher un rendement
> 80%, ce qui fait que tout ce qui est au dessus constitue un bonus.
Q: Qu'elle est la mémoire la plus efficace: SDRAM, DDR, RDRAM, etc?
R: dans la plupart des cas, la performance de largeur de bande mémoire
dépend de l'architecture du chipset et de la cadence de la mémoire,
entraînant des variations de performance.
Q: Pourquoi j'obtiens des indices plus bas avec les nouveaux benchmarks
buffering & SSE(2)/EMMX en mode SMP?
R: si les benchmarks ALU/FPU étaient également dépendants
de la mémoire, les caches de CPU étaient implicitement utilisés
par le système; le nouveau benchmarks contourne complètement les
caches pour atteindre un flux plus important. Cependant, il en résulte
plus de collisions/congestions si le bus de CPU est impliqué. Il en résulte
un indice plus bas.
Voila pourquoi les caches L2, L3 sont si importants dans un système
SMP. C'est à vous de décider si vous voulez mesurer la performance
pure, maximum ou la performance SMP. Si vous voulez mesurer un système
ancien, désactivez la fonction SMP dans les options du benchmark.
Q: Pourquoi j'obtiens des scores plus élevés avec HyperThreading/SMT
activé?
R: SMT n'aide PAS aux transferts de mémoire. La bande passante disponible
pour chaque CPU est la même, ce qui fait que l'utilisation de toutes les
unités centrales devraient augmenter les temps d'inactivité entraînant
des scores plus bas. Nous cherchons à utiliser SMT en prérecherche
pour les futures versions du benchmark.
Q: J'obtiens des scores plus bas avec mon système HyperThreaded/SMT
qu'avec un CPU non-SMT !
R: veuillez passer à Sandra 8.59 ou supérieur pour le support
SMT. Les versions antérieures ont des problèmes d'alignement des
données.
Q: Si le benchmark est multi-processus, pourquoi je n'obtiens pas de meilleurs
indices avec un système SMP?
R: le benchmark n'a pas de problème. Vous pouvez le vérifier
en examinant la charge, le nombre de processus et l'utilisation de la mémoire
dans le Gestionnaire de Tâches de Windows NT/2000/XP.
Le problème est le bus qui connecte les CPU. S'il est partagé
et non point-par-point (comme le (A)GTL+ d'Intel utilisé dans le PPro/PII/PIII/4)
les CPU partagent la même largeur de bande et vous ne verrez donc pas
plus de bénéfice à cause d'une énorme quantité
de données transférées par le benchmark. Puisque le benchmark
est limité en mémoire (pour que tout soit correct), un ou plusieurs
CPU ne fera aucune différence puisque le bus mémoire est un vrai
goulot.
Q: Avec mon système SMP tous les benchmarks mémoire (ALU,
FPU, MMX, SSE2 etc.) renvoient le même score! Qu'est-ce que cela signifie?
A: Voyez plus haut. Cela indique que le benchmark est en activité,
c'est-à-dire que la limite du flux de mémoire est atteint - et
peu importe ce que vous utilisez, ça ne fait aucune différence.
Q: J'obtiens des scores anormalement élevés sous Windows
2000 avec mon système Athlon. Que se passe t-il?
R: passez à SP2 ou supérieur. Ceci résoudra un problème
de fréquence de puce qui affecte certaines cartes mères et CPU
rapides.
Q: Mon système devrait avoir une largeur de bande de X MB/s (comme
800MB/s pour la SDRAM PC100 ). Pourquoi Sandra en affiche moins de la moitié?
R: le chiffre indiqué par le fabricant représente le meilleur
cas de flux de lecture. Sandra lit & écrit dans la mémoire, utilisant
différentes zones en mode SMP. Ce qui applique un stresse important au
système mémoire (incluant les contrôleurs de cache) entraînant
un indice plus bas, mais plus réaliste. La plupart des programmes lisent,
calculent et réécrivent les données plutôt que de
simplement les lire. Passez à Sandra 2002 ou supérieur qui utilise
les nouvelles instructions et techniques pour obtenir une meilleure efficacité.
Q: Pourquoi n'y a t-il pas une version 3DNow! (Améliorée)?
R: STREAM utilise des valeurs doubles (64-bit) qui ne sont pas supportées
par ailleurs. Il n'y a pas lieu d'utiliser de virgule flottante (32-bit) simplement
pour créer une telle version, cela serait sans intérêt.
Il y a, cependant, une version EMMX.
Q: Pourquoi l'indice mémoire de Sandra (2002 ou supérieur)
est-il si élevé en comparaison des autres benchmarks?
R: c'est du à 'utilisation des dernières instructions et techniques
(voir plus haut) pour obtenir l'efficacité aussi grande que possible.
Cela montre de quoi le système est capable.
Q: Mon Intel 840 (2 canaux RDRAM PC800 ) n'obtient jamais un indice de
3.2GB/s! Pourquoi?
R: le 840 est très limité en FSB (1x 133MHz, 64-bit -> 1GB/s);
en outre, l'un et l'autre des processeurs passent par le FSB. Avec un CPU PIII
Coppermine , simple processus, Sandra 2002 atteint 90% de bande passante efficace
ce qui est correct. Un 820 avec un seul canal de RDRAM (1.6GB/s) obtient des
scores très similaires du fait qu'il est également limité
par le FSB. Vous pouvez considérer que le 2ème canal du 840 est
superflu.
Q: Mon Apollo266 VIA (1 canal DDR PC2100) n'obtient jamais un indice de
2.1GB/s. Pourquoi?
R: exactement comme le 840, le chipset étant limité par le
FSB, et en outre, l'un et l'autre des processeurs (en mode SMB) passent par
le FSB.
Q: Mon Intel 845 (1 canal SDRAM PC133) obtient une "alerte de performance
mémoire basse". Où est l'erreur?
R: la largeur de bande maximum d'un simple PC133 SDRAM @ 1GB/s est environ
32% de la largeur de bande du FSB pour un Pentium 4. Le processeur est avide
de largeur de bande ce qui entraîne une basse de performance. Athlon &
Pentium 4 nécessitent de la mémoire DDR ou RDRAM pour une bonne
performance.
Q: Mon système obtient un score bas avec les périphériques
reliés à l'USB/1394(FireWire) mais élevé sans eux!
Pourquoi?
R: notez que ce sont des dispositifs isochrones , ce qui fait que
certains peuvent s'accaparer de la largeur de bande du système même
quand ils ne sont pas utilisés. Vérifiez combien de largeur de
bande est prise par chacun d'eux dans le Gestionnaire de Tâche; Si c'est
trop, vérifiez le périphérique ou contactez le fabricant.
Q: Pourquoi la version Win64 de Sandra ne teste pas au delà de 1TB
de mémoire?
R: la version courante Win64 de Sandra ne peut manipuler plus de 1TB de
mémoire. Les futures versions en supporteront plus, quoique qu'elles
ne supportent pas tout l'espace d'adresse 64-bit.
Q: Pourquoi la version Win32 de Sandra ne teste pas au delà de 2GB
de mémoire?
R: la version courante Win32 de Sandra ne peut manipuler plus de 2GB de
mémoire. Les futures versions en supporteront plus, quoique qu'elles
ne supportent pas tout l'espace d'adresse 32-bit.
Q: Pourquoi la version WinCE 3.0 de Sandra ne teste pas au delà
de 16MB de mémoire?
R: la version courante WinCE 3.0 de Sandra ne peut manipuler plus de 16MB
de mémoire. La version WinCE .Net peut manipuler jusqu'à 2GB de
mémoire.
Q: Pourquoi le benchmark n'inclut-il pas mon CPU super-duper XXXXGHz?
R: si nous achetons et testons tous les modèles de CPU du marché,
nous ne pouvons nous offrir tous les derniers modèles de CPU haut de
gamme. Même si nous le faisions, nous ne pourrions pas mettre le benchmark
à niveau à chaque fois qu'un modèle est créé
- il faudrait que nous y passions toutes les semaines.
|