2010-06-02 6 views
12

Ich versuche, einige Arithmetik zu optimieren, indem Sie die MMX- und SSE-Befehlssätze mit Inline-Assembly verwenden. Ich konnte jedoch keine guten Referenzen für die Zeitplanung und den Gebrauch dieser erweiterten Befehlssätze finden. Könnten Sie mir bitte helfen, Referenzen zu finden, die Informationen über Durchsatz, Latenz, Operanden und vielleicht kurze Beschreibungen der Anweisungen enthalten?Kurze SSE- und MMX-Befehlsreferenz mit Latenzen und Durchsatz

Bisher habe ich gefunden:

Intel Instruction Referenzen Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2A und Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2B

Intel-Optimierungs-Leitfaden http://www.intel.com/Assets/PDF/manual/248966.pdf

Timings von Integer-Operationen http://gmplib.org/~tege/x86-timing.pdf

Antwort

10

Die Intel Referenz von sollte prov eine angemessene Anleitung zu dem, was diese Anweisungen tatsächlich tun, hätte ich gedacht? Es hat für jeden einen Pseudocode, eine Beschreibung seiner Operation und in einigen Fällen sogar ein kleines Diagramm eines repräsentativen Falles.

Für Timings, es gibt keine offizielle Anleitung, die ich kenne. Agner Fog Seite ist die Standard-Referenz:

http://www.agner.org/optimize/

+0

Der Agner Guide ist großartig. Genau das, was ich brauche. – Joe

7

Die Intel's Intrinsic Guide (unten links von der AVX-Seite), ist ein gut organisiertes durchsuchbare Werkzeug, wo Sie von SSE-Version verengen und/oder Anweisung Geben Sie zB FP arithmetic oder Integer Logical ein.

Für jede Anweisung wird auch eine Latenz/Durchsatz-Tabelle nach CPU und nach Parametern angezeigt.

+2

Es ist das Beste, was ich gefunden habe, um zu sehen, welche Anweisungen das tun könnten, was Sie wollen. Andere Anleitungen eignen sich hervorragend, um genau zu beschreiben, was jede ASM-Anweisung macht, aber das nimmt so viel Platz in Anspruch, dass Sie keinen Überblick bekommen. Ich hatte gehofft, dass es etwas ähnliches zum intrinsics Führer geben würde, aber für asm direkt. Dennoch ist es meistens ein 1: 1-Mapping. –

1

Die Timing sind in der "Intel Optimization Guide"; In Anhang C finden Sie den Durchsatz und die Latenzzeiten für jeden Befehl pro CPU-Architektur.