2014-01-17 22 views
5

Auf einem Intel oder AMD x86-64 System mit Linux, wo/wie kann ich herausfinden, wie viele Hardware-Leistungsindikatoren meine CPU hat?Finden Sie heraus, wie viele Hardware-Leistungsindikatoren eine CPU hat

Ich möchte das Linux-Tool perf verwenden, um Hardware-Leistungsindikatordaten während der Ausführung einiger Anwendungen zu sammeln. Die Perf wiki's tutorial besagt, dass, wenn ich (-e Flag zu perf stat oder perf record) mehr Hardware-Ereignisse angeben, als es Leistungsindikatoren in meiner CPU gibt, dann diese Ereignisse während der Ausführung über die Zähler gemultiplext werden, so dass sie alle verfolgt werden können während eines einzelnen Befehls perf, aber möglicherweise die Genauigkeit zu reduzieren, weil nicht alle Zähler die ganze Zeit aktiv sind. (Beachten Sie, dass ich mich hier mit Hardwareereignissen befasse, z. B. mit Cache- und TLB-Verhalten - ich weiß, dass eine große/unbegrenzte Anzahl von Kernel-Software-Tracepunkten ohne Ungenauigkeit verfolgt werden kann).

Wenn ich mein Prozessormodell finde, gibt es eine Intel/AMD-Website, auf der ich diese Informationen finden kann? Gibt es einen einfachen Befehl, den ich auf dem System ausführen kann, um die Anzahl der Hardware-Zähler zu überprüfen? Ich habe die Ausgabe von cat /proc/cpuinfo und x86info -a untersucht, konnte diese Information jedoch nicht finden.

Antwort

9

In Bezug auf Intel-Prozessoren können Sie:

  • Blick auf diese intel documentation manual chapter 18, aber es ist nicht so leicht zu lesen.

  • Verwenden Sie die cpuid instruction - Dies erfordert Assemblercode schreiben, um Parameter richtig einzustellen und Ergebnisse zu erhalten.

  • herunterladen und kompilieren/installieren Sie die papi library und führen Sie papi_avail | more. Das Ergebnis auf meinem Laptop ist:

PAPI Version: 5.1.1.0

Vendor String und Code: Genuine (1)

Modell String und Code: Intel (R) Core (TM) i5-2520M CPU @ 2.50GHz (42)

CPU Überarbeitung: 7.000000

CPUID Info: Familie: 6 Modell: 42 Stepping: 7

CPU Max Megahertz: 2494

CPU Min Megahertz: 2494

Hdw Threads pro Kern: 2

Cores pro Sockel: 2

NUMA Knoten: 1

Knoten 0

CPUs pro: 4

Gesamt CPUs: 4

in einer VM laufen: keine

Anzahl Hardware Zähler: 11

Max Multiplex Zähler: 64