Si miras cualquier tabla de instrucciones SSE, podrías notar que hay dos tipos básicos de operaciones:
- Instrucciones Packed (empaquetadas) (la instrucción de ensamblador termina con PS)
- Instrucciones Scalar (escalares) (la instrucción de ensamblador termina con SS)
Para la mayoría de las operaciones, hay dos versiones, una empaquetada y una escalar.
¿Cuál es la diferencia entre ellas? Es bastante simple:
- Las operaciones Scalar operan en un solo elemento, por ejemplo un único entero.
- Las operaciones Packed operan en cualquier elemento del vector en paralelo, p. ej. multiplican 4 enteros de 32 bits en una sola instrucción.
SSE gana rendimiento usando operaciones packed que implementan el paradigma SIMD (usando una sola instrucción, se procesan múltiples valores). Sin embargo, ocasionalmente es útil evitar copias costosas usando operaciones scalar que operan en los registros SSE.
Ver también la fuente original
Echa un vistazo a artículos similares por categoría:
Rendimiento
Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow