SSE2
SSE2 amplía el modelo de programación XMM de 128 bits con operaciones de enteros y de coma flotante de doble precisión. Forma parte de la base habitual de x86-64, pero no es una abreviatura para todas las extensiones SSE posteriores.
Lo que necesita saber
SSE2 amplía el modelo de programación XMM de 128 bits con operaciones de enteros y de coma flotante de doble precisión. Forma parte de la base habitual de x86-64, pero no es una abreviatura para todas las extensiones SSE posteriores.
Cómo funciona
Un registro XMM de 128 bits puede contener 2 valores de doble precisión o elementos enteros de diversos anchos. SSE2 traslada gran parte del trabajo SIMD de enteros a los registros XMM en lugar del modelo de solapamiento MMX/x87. Las formas escalares y empaquetadas, el signo, la saturación y los requisitos de alineación continúan siendo específicos de cada instrucción.
Dónde resulta útil
Una biblioteca numérica puede calcular con pares de valores de doble precisión, mientras que un kernel de procesamiento de bytes puede comparar o reorganizar datos enteros empaquetados. El número de elementos en un registro no es una declaración sobre el rendimiento de las instrucciones ni sobre la aceleración de una aplicación.
Cómo comprobar la compatibilidad y la habilitación
El bit 26 de CPUID.01H:EDX enumera SSE2. Confirme que el entorno de ejecución preserve el estado XMM y que la base binaria de la aplicación coincida. Utilice la compilación heredada documentada de la aplicación cuando su compilación actual requiera una extensión posterior.
Una función SIMD describe instrucciones, no núcleos adicionales. La forma de la instrucción determina el ancho de los elementos, el signo, el redondeo, la alineación y qué vías interactúan. El software debe preservar el estado de los registros de la ABI y utilizar un entorno de ejecución admitido.
Lo que la función no establece
SSE2 no implica SSE3, SSSE3, SSE4.1 o SSE4.2. El software compilado para una base más reciente puede fallar en un sistema por lo demás totalmente funcional y compatible con SSE2. Un flag de SSE2 no constituye un veredicto completo de compatibilidad con el sistema operativo o con las aplicaciones.
Compatibilidad y rendimiento en la práctica
Los nombres posteriores de la familia SSE tienen bits de características independientes. Para un binario implementado, inspeccione el conjunto mínimo completo de características, incluidos los paquetes de bibliotecas y el código de inicio. Una alternativa solo es útil si no se ejecuta ninguna instrucción no admitida antes del paso de selección.
Lista de comprobación práctica para la verificación
- Registre el modelo exacto de procesador o plataforma, así como las versiones de la aplicación, el sistema operativo y el entorno de ejecución involucrados. Conserve la redacción del error o requisito real.
- Consulte la referencia del fabricante para ese modelo exacto y, a continuación, inspeccione la capacidad efectiva y el estado habilitado en el entorno donde se ejecuta el programa.
- Compare cada requisito del binario o backend seleccionado. Una función con nombre similar, un alias o una etiqueta de tecnología general no son suficientes.
- Confirme que la aplicación haya seleccionado la implementación prevista. Utilice sus diagnósticos documentados y una alternativa compatible cuando no se cumplan los requisitos.
- Realice un cambio admitido a la vez y repita la misma carga de trabajo. Mantenga disponibles la configuración original y la vía de recuperación.
Si la función aparece listada pero el software no puede usarla
Comience con el componente exacto que falla. Una base de datos de hardware describe la capacidad registrada; el sistema operativo o el hipervisor pueden exponer un entorno efectivo diferente. Un error de instrucción no válida también requiere investigar la instrucción que generó el fallo y la compilación del binario en sí, ya que la corrupción o una instrucción no compatible no relacionada pueden producir un síntoma similar.
Instale la versión de la aplicación, controlador o entorno de ejecución compatible con la plataforma exacta, y utilice la compilación de referencia o de contingencia documentada por el fabricante si es necesario. Una actualización de software no puede crear una instrucción de la que el procesador carece. Los cambios de firmware y directivas de seguridad deben seguir el procedimiento del fabricante del sistema y un plan de recuperación, en lugar de una fórmula de optimización genérica.
Fuentes y alcance de esta explicación
Intel 64 and IA-32 Architectures Software Developer's Manual · psABI x86-64: niveles de arquitectura y microarquitectura del procesador
Estas referencias establecen el comportamiento arquitectónico y los requisitos de software. No verifican de forma independiente cada valor de función en la página de un modelo de hardware vinculado. Para conocer la compatibilidad de un modelo, consulte las pruebas del fabricante en dicha página y compruebe la configuración efectiva del sistema. Este artículo no proporciona una prueba de rendimiento, certificación ni fecha de revisión independiente.
Fuentes y verificación
Titularidad editorial: Feex. No se registra ninguna fecha de revisión independiente. Cómo investigamos.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Los volúmenes 1 y 2 describen las familias de instrucciones designadas y CPUID; el volumen 3 describe el estado, la paginación, VMX y los controles de protección. La documentación de la arquitectura no establece la compatibilidad con un modelo en particular.
- psABI x86-64: niveles de arquitectura y microarquitectura del procesador · Interfaz de máquina, arquitectura del procesador: tabla de características de línea base y acumulativas v2/v3/v4, comprobaciones de estado del SO y recomendaciones de despliegue.
¿Fue útil este artículo?
Un sí o un no es suficiente. Elija un motivo si lo desea o agregue una breve nota.
Gracias. Eso nos ayuda a mejorar esta página.