Biostar Racing P1: kalter Auspuff

Wir waren nicht die ersten, die bemerkten, dass kompakte Computer wie der Intel Compute Stick hinsichtlich der Leistung nicht gut genug sind. Als wir ein ähnliches Gerät von Biostar kennen lernten, waren die Erwartungen nicht besonders optimistisch. Wie die jüngeren Modelle von Stick-Computern läuft Racing P1 auf einem der schwächsten Prozessoren der Atom Z8000-Familie. Der von Biostar gewählte x5-Z8350-Chip ist jedoch nur ein Schritt, aber produktiver als sein jüngerer Bruder. Versuchen wir, die Leistung dieser Plattform zu bewerten, die dank der Bemühungen von Biostar kein Stick mehr ist, sondern auch kein Laptop.


Abb. 1 . USB 3.0 / 2.0, ein SD-Kartensteckplatz, Kontakte mit Hintergrundbeleuchtung, eine Kopfhörerbuchse und ein Netzschalter befinden sich auf der Vorderseite

Die verwendeten Tools sind der NCRB-Benchmark (NUMA-CPU- und RAM-Benchmarks) für Win64 und das plattformübergreifende Dienstprogramm zur Identifizierung des JavaCPUID-Prozessors.


CPU


Die CPUID-Anweisung bestätigt, dass der Intel Atom x5-Z8350-Prozessor auf der Biostar Racing P1- Plattform installiert ist. Seine Nennfrequenz beträgt 1,44 GHz, was jedoch nicht verhindert, dass es bei Bedarf rechtmäßig auf 1,92 GHz beschleunigt. Selbst bei einer kurzen Kenntnis dieser Plattform ist das Paradox offensichtlich: Der Betrieb im Bereich von 1,44 bis 1,92 ist eher eine Regel als eine Ausnahme.


Abb. 2 . Werksspezifikationen von Intel Atom x5-Z8350

Die Entscheidung des x5-Z8350-Prozessors, die minimale oder Standardtaktfrequenz auszuwählen und den Turbo-Modus zu starten, basiert auf einer Analyse der Last und der Betriebstemperatur. Das SDP-Framework (Scenario Dissipated Power) definiert den typischen Stromverbrauch eines Geräts. Steuermechanismen beurteilen unabhängig die Situation und reduzieren bei "leichter" Last den Energieverbrauch des Chips. Die Möglichkeit, den Turbo-Modus einzuschalten, hängt von der Temperatur ab, sodass die Ergebnisse von Sommer- und Wintertests variieren können. Im Allgemeinen wechselt Racing P1 auch die Schuhe für die Saison.


Über den Rahmen der Studie hinaus stellen wir fest, dass der Nachbrenner auf Stromleitungen von ~ 220 V zu einem Verbrauch von bis zu 7 Watt führt. Der Reisemodus Racing P1 reduziert diesen Wert um etwa die Hälfte, der Schlafmodus erfordert etwas mehr als 2 Watt Wechselstrom (der Verbrauch wurde mit einem normalen Haushaltswattmeter überwacht). .


Abb. 3 . CPUID unter Intel Atom x5-Z8350 Funktionen

Intel Atom x5-Z8350 arbeitet mit Daten mit einer maximalen Kapazität von 128 Bit. Moderne Funktionserweiterungen AVX 256/512 werden nicht unterstützt. Dies bedeutet, dass unser Messwerkzeug aus einem Satz von Vektoranweisungen SSE 128 und dem Messobjekt - Cache-Speicher und dynamischem RAM - besteht.


Abb. 4 . Auswahlfenster für Systeminformationen und Testmodus für das NCRB-Dienstprogramm: Das Menü links zeigt Befehlssätze an, einschließlich der vom Prozessor unterstützten Funktionserweiterungen

Ein wichtiger Exkurs ist hier angebracht: Im Allgemeinen bedeutet die maximale Kapazität von Operanden nicht maximale Leistung. Eine Reihe von AMD-Prozessoren bis einschließlich AM2 verarbeiten zwei 64-Bit-Downloads mit klassischen MOV-Befehlen schneller als ein 128-Bit-SSE-Ladevorgang mit MOVAPD-Befehlen. Wir haben uns vor dem Experimentieren daran erinnert, dass wir experimentell sichergestellt haben - die Verwendung der SSE für den Atom x5-Z8350 ist in der Tat das produktivste Szenario.


L1 Cache


Normalerweise ist die Cache-Größe ein Vielfaches der Zweierpotenz. Auf der ersten Ebene versucht der Hersteller, diese gleichmäßig zwischen Anweisungen und Daten zu verteilen. Alle diese Kanons werden von der Architektur des x5-Z8350-Prozessors nicht berücksichtigt. Jeder seiner vier Kerne verfügt über 32 Kilobyte Cache für Anweisungen und 24 Kilobyte für Daten.


Abb. 5 . Klassifizierung der Cache-Ebenen

Eine Reihe von Quellen geben das Produkt der Größe des Cache-Speichers eines Kerns durch ihre Anzahl an, was eine eindrucksvollere Ansicht ergibt: 128-KB-Befehls-Cache und 96-KB-Daten-Cache. Die offizielle Seite schweigt traditionell über den L1-Cache, zumindest zum Zeitpunkt dieses Schreibens.


Beachten Sie, dass der Null-Level-Cache (ähnlich dem L1-Trace-Cache), der decodierte Befehle speichert und die Effizienz kurzer Zyklen verbessert, nicht durch den CPUID-Befehl deklariert wird. Die Überprüfung der Verfügbarkeit und die Analyse der Funktionsweise sind einer gesonderten Veröffentlichung wert.


Theorien und Praxis: Cache-Leistung


Die Messung der Cache-Geschwindigkeit besteht aus zyklischen Lese- oder Schreiboperationen eines Blocks, dessen Größe kleiner als die Größe der untersuchten Cache-Ebene ist, und daher sind Datenzugriffsoperationen Cache-Treffer. Tatsächlich wird die Wahl des Ziels (L1-, L2-Cache oder DRAM) durch die Größe des verarbeiteten Datenblocks bestimmt.


Nachdem wir die zu testende Entität angegeben haben, betrachten wir Vorgänge auf der Ebene der Maschinenanweisungen. In unserem Experiment verwenden wir einen erweiterten Zyklus von 16 SSE2-MOVAPD-Befehlen, von denen jeder einen 128-Bit-Operanden zwischen dem Speicher und einem der XMM-Register überträgt. Infolgedessen werden 16 Register XMM0 ... XMM15 in einer Iteration der Schleife vollständig geladen.


Der Vollständigkeit halber stellen wir fest, dass der MOVAPD-Befehl auch zum Übertragen von Daten zwischen zwei XMM-Registern verwendet werden kann. In unserem Fall geben Registeroperationen jedoch keine Vorstellung von der Leistung von Speicherobjekten. Die maximale Leistung wird durch die Ausrichtungsanforderung gewährleistet, die für den MOVAPD-Befehl erforderlich ist: Die Operandenadresse muss ein Vielfaches von 16 Bytes (128 Bit) sein.



L1-Cache-Benchmarks


Während der Lese- oder Schreibblock kleiner als die Größe des L1-Cache ist (in der Grafik ist dies die X-Achse), ist der Wechselkurs hoch. Sobald ein Block über L1 hinausgeht, treten Cache-Fehler auf und die Geschwindigkeit sinkt. Bei der Bewertung der Leistung ist der „obere Schritt“, der dem linken Teil des Diagramms entspricht, offensichtlich informativ.


Abb. 6 . Diagramm der Lesegeschwindigkeit eines Datenblocks in Bezug auf seine Größe;
Nachbarschaft X = Größe L1

Die maximale Geschwindigkeit in Megabyte pro Sekunde (MBPS) entspricht der minimalen Anzahl von Ticks pro Befehl ( CPI, Clocks Per Instruction ) und beträgt ca. 30 GBPS .


Abb. 7 . Die Darstellung der Schreibgeschwindigkeit des Datenblocks auf seine Größe;
Nachbarschaft X = Größe L1

Wie aus den Diagrammen ersichtlich ist, entspricht der Wendepunkt zum Lesen von L1 einem theoretischen Wert von 24 Kilobyte. Für die Aufzeichnung ist die in diesem Prozessor verwendete Caching-Richtlinie durch einen „frühen Geschwindigkeitsabfall“ gekennzeichnet, der Gegenstand einer separaten Studie sein wird. Jetzt kann jedoch festgestellt werden, dass diese Richtlinie nicht zur Aufzeichnung von Leistungsindikatoren beiträgt, obwohl es in einigen Fällen möglich ist, das Verstopfen von L1 durch unnötige Daten zu vermeiden.


Die Ergebnisse zeigen die Geschwindigkeit, die von einem Kern des Atom x5-Z8350-Prozessors entwickelt wurde. Eine Reihe von Tests, insbesondere AIDA64, zeigen die Gesamtleistung aller Kerne.


Wir werden eine kleine theoretische Berechnung durchführen, indem wir den Spitzendurchsatz modellieren. Für die untersuchte CPU beträgt die Taktfrequenz im Turbo-Modus 1920 MHz. 128 Bits oder 16 Bytes werden in einem Taktzyklus übertragen:

  • 1920 * 16 = 30720 (ungefähr 30 Gigabyte pro Sekunde)

Ein TSC-Zähler (Time Stamp Counter) wird als Quelle für beispielhafte Zeitintervalle verwendet. Da der Prozessorkern und die TSC im Allgemeinen asynchron getaktet werden, sind die Werte der TSC-Taktzyklen pro Befehl Bruchwerte.


Stellen Sie sicher, dass der Prozessor im Turbomodus arbeitet, basierend auf den in der Dokumentation angegebenen Frequenzwerten. Ein Taktzyklus der erhöhten Kernfrequenz von 1920 MHz beträgt ungefähr 0,521 Nanosekunden. Ein Taktzyklus der Nennfrequenz von 1440 MHz, auf dem der Zeitstempelzähler arbeitet, beträgt ungefähr 0,694 Nanosekunden. Für Befehle, die pro Zyklus ausgeführt werden, sollte der theoretische Wert der Anzahl der TSC-Zyklen pro Befehl (CPI) sein

  • 0,521 / 0,694 = 0,750

Die angezeigten Messwerte des minimalen CPI innerhalb von 0,759 ... 0,767 liegen ziemlich nahe an diesem Wert.


L2 Cache


Vier Kerne des untersuchten Prozessors sind in zwei Gruppen mit jeweils zwei Kernen unterteilt. Die Gesamtgröße des L2-Cache beträgt 2 MB und wird gleichmäßig zwischen ihnen aufgeteilt. Die Schlussfolgerung liegt auf der Hand: Jeder Kern verfügt über 1 Megabyte L2-Cache, auf den ein Gruppennachbar Zugriff hat.



L2-Cache-Benchmarks


Die L2-Cache-Geschwindigkeit ist der zentrale „Schritt“, der auftritt, wenn die doppelte Ungleichung von 24 KB <X <1 MB beobachtet wird, wenn der verarbeitete Datenblock nicht mehr in L1, sondern immer noch in L2 platziert wird.


Abb. 8 . Diagramm der Lesegeschwindigkeit eines Datenblocks in Bezug auf seine Größe;
Nachbarschaft X = Größe L2

Wie aus den Diagrammen ersichtlich ist, tritt eine Geschwindigkeitsabnahme aufgrund der Erschöpfung von L2 auf, wenn die Grenze von 1 MB überschritten wird. Die Möglichkeit, einen Cache von einer benachbarten Gruppe auszuleihen, nachdem der Moment der Geschwindigkeitsabnahme auf 2 MB verschoben wurde, wurde nicht gefunden.


Abb. 9 . Die Darstellung der Schreibgeschwindigkeit des Datenblocks auf seine Größe;
Nachbarschaft X = Größe L2

Die Leistungsbewertung des L2-Schreibcaches liegt nahe am Lesen: 12 gegenüber 11,5 GBPS. Der theoretische Hintergrund dieses Ergebnisses wird in der nächsten Veröffentlichung berücksichtigt.

Source: https://habr.com/ru/post/de413857/


All Articles