2016-06-22 2 views
-2

Pour mes recherches, j'ai besoin d'un benchmark CPU pour faire quelques expériences sur mon ordinateur portable Ubuntu (Ubuntu 15.10, Mémoire 7.7 GiB, Intel Core i7-4500U CPU @ 1.80HGz x 4 , 64bit). Dans un monde idéal, je voudrais avoir un benchmark satisfaisant ce qui suit:Linux: benchmark CPU nécessitant plus de temps et différents niveaux d'utilisation CPU

  1. La CPU devrait être un benchmark officiel plutôt que créé par mes soins à des fins de transparence.
  2. Le temps nécessaire pour exécuter le test de performance sur mon ordinateur portable devrait être au moins 5 minutes (le plus sera le mieux).
  3. Le test de performance devrait aboutir à différents niveaux de CPU tout au long de l'exécution. Par exemple, je ne veux pas d'un benchmark qui maintient en permanence le niveau d'utilisation du CPU à environ 100% - donc je veux un benchmark qui fera varier l'utilisation du CPU au fil du temps.

Surtout les points 2 et 3 sont vraiment importants pour mes recherches. Cependant, je n'ai pas trouvé de repères appropriés jusqu'à présent. Les benchmarks que j'ai trouvés jusqu'à présent incluent: sysbench, CPU Fibonacci, CPU Blowfish, CPU Cryptofish, CPU N-Queens. Cependant, tous ont juste besoin de quelques secondes pour terminer et le niveau d'utilisation sur mon ordinateur portable est à 100% constamment.

Question: Est-ce que quelqu'un sait un repère approprié pour moi? Je suis également heureux d'entendre d'autres commentaires/questions que vous avez. Je vous remercie!

Répondre

0

Pour choisir un point de référence, vous devez savoir exactement ce que vous essayez de mesurer. Votre question ne comprend pas cela, donc il n'y a pas grand monde qui puisse vous le dire sans faire une supposition.


Si vous essayez de mesurer à quel point la vitesse d'horloge Turbo fonctionne pour faire une CPU puissance limitée comme votre course d'ordinateur portable plus rapide pour les charges de travail bursty (par exemple pour comparer Haswell contre les nouvelles et une meilleure gestion de l'énergie de Skylake), vous pourrait juste exécuter quelque chose de trivial qui est 1 seconde sur, 2 secondes de repos, et compte combien d'itérations de boucle il gère.

Le cycle de service et la longueur du cycle doivent être des paramètres de référence, de sorte que vous pouvez créer des graphiques. par exemple. Avec des cycles de marche/arrêt très rapides, Skylake's faster-reacting Turbo augmentera plus vite et descendra plus rapidement à la puissance minimale (laissant plus de marge dans la banque pour la prochaine rafale). Le conférencier de cette conférence (l'architecte principal de la gestion de l'énergie sur les processeurs Intel) dit que les benchmarks Javascript sont suffisamment éclatants pour que la gestion de l'alimentation de Skylake puisse donner une accélération mesurable, contrairement à la plupart des autres benchmarks. tout le temps. Alors peut-être jeter un oeil sur les repères Javascript, si vous voulez utiliser des repères bien connus sur étagère.


Si vos propres modèles, mettez une chaîne de dépendance réalisée en boucle dans la boucle, de préférence avec quelque chose qui est pas trop variable de latence entre microarchitecture. Une longue chaîne d'entiers supplémentaires fonctionnerait, et Fibonacci est un bon moyen d'empêcher le compilateur de l'optimiser. Choisissez un nombre d'itérations fixe qui fonctionne bien pour les vitesses actuelles du processeur, ou vérifiez l'horloge toutes les itérations de 10M.

Vous pouvez également définir une minuterie qui se déclenchera après un certain temps et définir un indicateur que vous vérifiez dans la boucle. (par exemple, à partir d'un gestionnaire de signal). Plus précisément, alarm(2) peut être un bon choix. Enregistrez combien d'itérations vous avez faites dans cette rafale de travail.

+0

"Pour choisir un benchmark, vous devez savoir exactement ce que vous essayez de mesurer Votre question ne comprend pas cela, donc personne ne peut vous le dire sans avoir à deviner. J'ai spécifié exactement ce que je voulais avoir, n'est-ce pas? Je veux mesurer l'utilisation du CPU avec un benchmark satisfaisant les points 1,2 et 3. Rien d'autre? – BJPrim

+0

@BJPrim: Ces exigences ne sont pas suffisantes pour affiner les réponses possibles beaucoup. Que voulez-vous pouvoir conclure en examinant deux scores de référence pour deux machines distinctes? Voulez-vous être en mesure de dire que "la machine A est un peu plus rapide à la multiplication matricielle FP"? Ou "plus rapide à la compilation"? Les processeurs sont des bêtes complexes, et il est facile pour A d'être plus rapide que B pour une tâche, mais l'inverse pour une autre tâche. –

+0

** L'idée est généralement de choisir un benchmark représentatif d'une charge de travail réelle **, ou un microbenchmark qui n'est pas représentatif d'une charge de travail réelle, et qui teste simplement quelque chose en particulier. Des conseils sur le genre de chose que vous voulez tester, c'est que vos spécifications font défaut. Êtes-vous à la recherche d'un benchmark CPU, ou est-ce que l'activité disque devrait être ce qui fait que le CPU n'est pas à 100%? J'ai mis à jour ma réponse avec une suggestion à ce que les repères Javascript soient légèrement éclatés. –