Red de conocimiento informático - Problemas con los teléfonos móviles - Conveniencia del conjunto de instrucciones SSE4

Conveniencia del conjunto de instrucciones SSE4

La cantidad de simplificación es enorme. En programas complejos de predicción dinámica, es necesario ejecutar códigos SAD complejos. En este momento, SSE4 también puede proporcionar comodidad adicional:

SSSE3 puede considerarse como uno de los primeros subsistemas "filtrados" de SSE4. En el mismo trabajo, el código SSE4 de la derecha es sin duda más simple que SSSE3.

SSE4 también agrega instrucciones de búsqueda rápida. Aunque no solo es útil para la codificación de video, tiene efectos particularmente buenos en la estimación del movimiento de píxeles completos y subpíxeles. Las instrucciones en la siguiente figura se pueden usar en Buscar. el elemento más pequeño entre los 8 elementos y encuentre su posición:

En la demostración SSE4 de Intel, se utilizó el sistema Wolfdale Core 2 de 2,66 G equipado con el conjunto de instrucciones SSE4 para comparar el Core 2 Duo E6550 de 2,33 G para Pegasys. La codificación TMPGEnc 4.0 XPress HDTV finalmente logró una mejora de rendimiento del 55%. Entre ellos, el procesamiento SAD acelerado y el rendimiento de búsqueda rápida mejoraron de 2 a 3 veces en sus respectivos campos. El papel del conjunto de instrucciones SSE4 es evidente:

Entre ellos, el aumento de frecuencia de la CPU es solo 14, pero el aumento total de la aplicación alcanza 55. Esta es la función de la instrucción de aceleración de codificación de video SSE4.

La parte de aceleración de gráficos SSE4 incluye 32 instrucciones, incluida una gran cantidad de instrucciones de operación básicas en la construcción de gráficos: producto escalar, producto de doble byte, acceso por pasos no unitarios, etc., y también agrega algunas modificaciones. El soporte cruzado mejora la vectorización del compilador. Esta parte de las instrucciones equivale a volver a proporcionar una base de operación de gráficos vectorizados, lo que puede mejorar en gran medida las capacidades de procesamiento de gráficos del procesador.

Las 32 instrucciones se dividen en 6 partes

12 operaciones de vectores enteros de 32 bits, que se utilizan para proporcionar operaciones rápidas de vectores enteros

7 pasos no unitarios Largos Las operaciones de acceso a términos proporcionan carga/guardado rápido de vectores.

Dos operaciones de producto escalar proporcionan capacidades informáticas de producto escalar muy rápidas en operaciones de matriz de estructuras.

Se utilizan 6 variables y mezcla inmediata para mejorar el rendimiento de los códigos SIMD tradicionales

1 salida temprana de parámetros, que puede probar rápidamente datos de ancho de 128 bits

4 puntos flotantes El redondeo de puntos se utiliza para códigos de lenguaje de alto nivel de uso frecuente, como como Floor(), Ceil(), NINT() y nearint() para mejorar su rendimiento.

Como ejemplo, operaciones con enteros vectoriales de 32 bits. Las instrucciones son versiones vectoriales de las primitivas del lenguaje de programación actual. incluidas instrucciones como multiplicación de doble byte, llenado de valores mínimos/máximos de doble byte, conversión de grupo de DWORD a Word, comparación de QWORD, etc. La parte inferior derecha muestra la conversión de grupo de DWORD a Word usando SSE2 Cuando las instrucciones se escriben por separado de SSE4: solo SSE4 requiere 1, mientras que SSE2 requiere 11.

Aunque solo hay una instrucción en la parte de carga del flujo SSE4, juega un papel muy importante. En las plataformas existentes, la CPU utiliza la tecnología de combinación de escritura para lograr operaciones de escritura de gran ancho de banda. Los datos gráficos se pueden escribir rápidamente en la caché de combinación de escritura y en la memoria a través de MMIO. Sin embargo, la lectura es muy lenta porque las lecturas desde la escritura. La combinación de caché es lenta (sin combinación de lectura)... el ancho de banda de lectura está limitado a 800 MB/s.

La tecnología Streaming Load está diseñada para resolver este problema. Proporciona una instrucción de carga alineada de 16 bits que puede operar rápidamente en memoria combinada de escritura y cargar datos en la CPU a una velocidad de hasta 8 GB/s (. La arquitectura SSE4 agrega un nuevo caché temporal interno para almacenar estos datos), mejorando así en gran medida el ancho de banda de datos entre GPU-CPU.

Finalmente, aunque este Streaming Load utiliza la aceleración de vídeo como ejemplo, su método de trabajo en realidad también es útil para otros periféricos. Se trata de una tecnología general para mejorar la velocidad de lectura de la memoria WC.