2012-10-03 12 views
8

Der Hintergrund ist also: Nächste Woche wird unser Büro wegen Wartung einen Tag ohne Heizung haben. Die Außentemperatur wird zwischen 7 und 12 Grad Celsius erwartet, so dass es kalt werden kann. Die tragbaren elektrischen Heizungen sind zu wenig, um alle zu versorgen.Welche CPU-Anweisungen verwenden die meiste Energie?

Allerdings habe ich in meinem Büro von etwa 6-8 m2 eine große honkin '(3 Jahre alt) Workstation (HP xw8600 mit 3,0 GHz Quad-Core Xeon), die in der Lage sein sollte, ein paar hundert Watt auszugeben von Hitze. Laufen Furmark wird maximal die GPU, aber ich bin mir nicht sicher, wie Sie die CPU am besten arbeiten.

Das letzte Mal, als ich in einem kalten Büro war, kompilierte ich entweder häufiger oder startete nur 4-8 DOSBox: es läuft Norton Commander, aber ich denke, man kann besser mit SSE1-2-3-4, MMX etc, dh Sachen, die mehr Arbeit pro Zyklus leisten.

Also, welche CPU-Anweisungen schalten die meisten Transistoren in jedem Zyklus um, und benutzen die CPU so, dass sie die meiste Energie aufnimmt und somit maximale Wärme abgibt?

Wenn ich einen Leistungsmesser zur Verfügung hätte, dann könnte ich mich selbst benchmarken, aber ich denke, das wäre eine lustige Herausforderung für die SO-Crowd. :)

+3

Sie heizen das Büro mit einem Benchmark? Ein bisschen MacGyver-esque, findest du nicht? ; o) –

+0

Kathodische Bildschirm kann ein bisschen helfen. –

+1

@KaiMattern: MacGyver war mein Spitzname in der Schule. Stelle dir das vor. :) – Macke

Antwort

6

Für Ihr spezifisches Ziel, wenn Sie wirklich Ihr System als Wärmeerzeuger verwenden möchten, müssen Sie zuerst sicherstellen, dass das Kühlsystem wirklich gut funktioniert (die Hitze aus der Box werfen). Prozessoren sind heute so ausgelegt, dass sie sich selbst drosseln, wenn sie eine kritische Temperatur erreichen, die auftritt, wenn ein geeigneter Kühlkörper verwendet wird und der Prozessor TDP hat (Thermal Design Power ist die maximale Leistung für den Prozessor unter Verwendung normaler Programme). Wenn Sie einen besseren Kühlkörper und eine gute Belüftung (Box-Lüfter?) Haben, können Sie wahrscheinlich über TDP hinausgehen, vorausgesetzt, dass Ihr Netzteil damit umgehen kann. Wenn Sie den Ventilator ausschalten, werden Sie im Prinzip sofort das thermische Limit erreichen.

Um genauer zu sein, sind die einzelnen Anweisungen, die am meisten brennen, im Allgemeinen Ladeanweisungen, die in den Caches fehlen und in den Speicher gehen. Um Fehler zu vermeiden, sollten Sie einen Teil des Speichers reservieren, der größer ist als der Cache der letzten Ebene, und diesen Speicher überspringen. Das Muster des Springens im Fall der maximalen Leistung ist ein bisschen komplex, weil Sie versuchen, die maximale Anzahl von ausstehenden Fehlern auf jeder Ebene der Cache-Hierarchie gleichzeitig zu erreichen. Wenn Sie in einem bestimmten Zeitraum 3 Cache-Ebenen haben, können Sie mehr Fehler für die L1 als für die L2 als für die L3 haben, als für die DRAM-Seite. (Und das spezifische Design Ihres Prozessors hat eine totale Grenze für Fehltreffer.) Zwischen Fehlschlägen ist die Anweisung nicht so wichtig, aber ich würde vermuten, dass eine der SSE4-Multiplikationen (PMULUDQ) wahrscheinlich die beste ist, da auf a Viele moderne Prozessoren, sie führen ziemlich schnell aus und machen im Allgemeinen eine Menge Arbeit (verglichen mit einem Add).

Die lustige Sache ist, kann das Laufen der GPU die Menge der Hitze begrenzen, die Sie verursachen können, vermisst zum L3 Cachespeicher, da der Speicher von der GPU festgefahren werden kann. In diesem Fall sollten Sie sicherstellen, dass alle Zugriffe auf das L3 Treffer sind, aber Sie in den anderen Ebenen fehlen.

+1

Bei TDP ist wahrscheinlich genug. Keine Notwendigkeit, die CPU buchstäblich zu verbrennen. Ich würde jedoch gerne eine Bestätigung für Ihre Behauptung über das Versenken von Cache-Fehlern sehen. Ich würde erwarten, dass die CPU im Leerlauf wäre und auf Speicher für 15-200 Zyklen warten würde. @ osgx'es Kommentar w.r.t. SIMD oben ist mehr zu meiner Intuition .... – Macke

+0

Sie haben Recht, wenn alles, was Sie taten, waren Cache-Misses, das würde nicht genug Energie brennen, aber wie ich oben vorschlagen, Sie wollen Code schreiben, der ständig in der fehlt cache * und * verwendet den Prozessor so viel wie möglich zwischen Befehlen. Wenn Sie über TDP hinausgehen, bedeutet das nicht, dass Sie die CPU brennen. TDP ist nur eine Spezifikation für das Kühlsystem. Wenn Sie ein besseres Kühlsystem haben, kann es mehr handhaben. –

+0

Ok. Das macht alles Sinn. Vielen Dank! – Macke

0

Für CPU Prime95 verwenden. Das ist leicht und wird alle Kerne gut laden. Sie werden nicht wirklich viel Hitze aus einem 3ghz Xeon obwohl bekommen. Chips dieses Alters sind normalerweise gut für über 4ghz mit durchschnittlicher Abkühlung und fast 5gz mit High-End-Wasserschleifen. Mit einem 6-Kern-Chip @> 4ghz mit zusätzlicher Spannung können Sie 200W TDP schlagen, aber mit diesem System werden Sie Glück haben, die CPU zu 100w zu bekommen.

Wie bei der GPU ist der Heaven Benchmark ein guter Wert, um schnell auf Temperatur zu kommen. Auch wenn Sie keine High-End-Karte haben, ist ein paar hundert Watt Wärme unwahrscheinlich. Eine weitere Alternative zu AMD GPUs (vielleicht auch Nvidia?) ist es, crpto-currency mining software zu verwenden, vielleicht einen USB-Stick mit einer Mining-Linux-Distribution zu installieren und bereit zu gehen. Sie können Prime95 auch auf demselben Rig verwenden, da Mining-Software sehr wenig CPU-Zeit verbraucht.

Ich habe tatsächlich ein paar Zimmer warm gehalten über den Winter mit der Hitze von einem Computer, nur selten brauchen zusätzliche Heizung. Dies wurde mit einer Crypto-Währungs-Mining-Rig gemacht, die 4 gpus bei ~ 80 ° C hatte, 24/7, mit einem Box-Fan, um die Luft im Raum zirkulieren zu lassen. Dieses Rig hatte eine 1300W PSU. Darf ich vorschlagen, dass Sie, anstatt zu versuchen, den Computer zu benutzen, um Sie warm zu halten, mehr Kleidung tragen?

1

Für GeForce-Grafiken ist mein CudaMFLOPS-Programm (kostenlos) ziemlich praktisch, um hohe Temperaturen auf der Grafikkarte zu erhalten. Wenn Sie eine entsprechende Kartendaten haben, sind in:

http://www.roylongbottom.org.uk/cuda1.htm#anchor8

Ich finde, dass meine Tests, die SSE-Befehle mit Daten aus L1-Cache ausführen im Allgemeinen die höchsten CPU-Temperaturen erzeugen.