SSE: Skalare vs. gepackte Operationen
English
Deutsch
Wenn man sich eine SSE-Instruktionstabelle ansieht, fällt man auf, dass es zwei grundlegende Arten von Operationen gibt:
- Packed-Instruktionen (die Assembler-Instruktion endet auf PS)
- Scalar-Instruktionen (die Assembler-Instruktion endet auf SS)
Für die meisten Operationen gibt es zwei Versionen, eine gepackte und eine skalare.
Was ist der Unterschied zwischen ihnen? Es ist ganz einfach:
- Scalar-Operationen arbeiten nur auf einem Element, zum Beispiel einem einzelnen Integer.
- Packed-Operationen arbeiten parallel auf allen Elementen im Vektor, d.h. sie multiplizieren 4 32-Bit-Integers in einer einzigen Instruktion.
SSE erhält seine Leistung durch die Verwendung von Packed-Operationen, die das SIMD-Paradigma implementieren (mit einer einzigen Instruktion werden mehrere Werte verarbeitet). Es ist jedoch gelegentlich nützlich, teures Kopieren durch die Verwendung von Scalar-Operationen auf den SSE-Registern zu vermeiden.
Siehe auch die Originalquelle
Check out similar posts by category:
Performance
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow