Frage

Ich versuche, einige Arithmetik zu optimieren, indem ich die MMX- und SSE -Befehlssets mit Inline -Baugruppe verwendete. Ich konnte jedoch keine guten Referenzen für die Zeiten und Verwendung dieser erweiterten Anweisungssätze finden. Können Sie mir bitte helfen, Referenzen zu finden, die Informationen über den Durchsatz, die Latenz, Operanden und möglicherweise kurze Beschreibungen der Anweisungen enthalten?

Bisher habe ich festgestellt:

Intel -AnweisungsreferenzenIntel 64 und IA-32 Architekturentwicklerhandbuch: Vol. 2a undIntel 64 und IA-32 Architekturentwicklerhandbuch: Vol. 2b

Intel -Optimierungshandbuchhttp://www.intel.com/assets/pdf/manual/248966.pdf

Timings der Ganzzahloperationenhttp://gmplib.org/~tege/x86-timing.pdf

War es hilfreich?

Lösung

Die Intel -Anweisungsreferenz sollte einen angemessenen Leitfaden für die Anweisungen geben, die diese Anweisungen tatsächlich tun, hätte ich gedacht? Es hat Pseudocode für jeden einzelnen, eine Beschreibung seiner Operation und in einigen Fällen sogar ein kleines Diagramm eines repräsentativen Falles.

Für Timings gibt es keinen offiziellen Leitfaden, den mir bekannt ist. Die Seite von Agner Fog ist die Standardreferenz:

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

Andere Tipps

Das Intell's Intrinsic Guide (unten links von der AVX-Seite) befindet sich ein gut organisiertes durchsuchbares Tool, in dem Sie nach SSE-Version und/oder Anweisungsart, z. B. FP-Arithmetik oder ganzzahliger logisch eingrenzen können.

Für jede Anweisung zeigt es auch eine Latenz-/Durchsatztabelle nach CPU und nach Parametern.

Das Timing befindet sich im "Intel -Optimierungshandbuch"; In Anhang C finden Sie den Durchsatz und die Latenzen für jede Anweisung pro CPU -Architektur.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top