Académique Documents
Professionnel Documents
Culture Documents
Esta tecnologa fue creada en 2008, pero no fue hasta 2011, cuando estuvo
disponible para el pblico en los procesados de arquitectura Sandy Bridge de
Intel. La principal novedad respecto a SSE es el aumento del tamao del
vector, siendo el doble que en SSE, es decir 256 bits.
Tambin aumenta la cantidad de registros que tiene, 16. Otra diferencia
respecto a SSE, es el uso de operaciones de nivel ensamblador de tres
operandos: el registro destino puede ser diferente de los dos operandos
fuentes. Aunque no sean iguales AVX nos permite trabajar conjuntamente con
SSE.
Aun as AVX no contiene todas las operaciones disponibles en SSE. Slo
contiene las operaciones realizadas con nmeros de coma flotante. Por esa
razn se cre la versin AVX2 en el 2013. Esta versin est disponible en los
procesadores de arquitectura Ivy Bridge de Intel, completa AVX, incluyendo
todas las operaciones con nmeros enteros. Por lo tanto, se pueden realizar las
mismas operaciones que en SSE, pero con vectores el doble de grandes.
CARACTERSTICAS
Tanto SSE, AVX y AVX2 tienen registros propios, SSE dispone de 8 registros
(xmm0,, xmm7) de 128 bits cada uno, en los que se guardaran las variables
que usemos, AVX y AVX2, en cambio, dispone de 16 registros (ymm0, ..,
ymm15) de 256 bits.
Load/Store en AVX
__m256 _mm256_load_ps (float const * mem_addr)
void _mm256_store_ps (float * mem_addr, __m256 a)
Suma en AVX
__m256 _mm256_add_ps (__m256 a, __m256 b)
Reducciones en AVX
Estas funciones dan la opcin de sumar o restar los elementos del vector
entre s. La opcin ms usada es la de la suma, porque en la primera
posicin. Las reducciones funcionan as:
Esta es la intrinsic que se ha utilizado para el ejemplo:
suma = _mm_hadd_ps (resultado,resultado)
__m256 _mm256_hadd_ps (__m256 a, __m256 b)
Condicionales en AVX
Con estas funciones se compararan los elementos de dos vectores. Estas
son las operaciones disponibles:
Igual, no igual
Ms grande que, ms grande o igual que
SOFTWARE COMPATIBLE
Adems de que las aplicaciones introduzcan el uso explcito de estas nuevas
instrucciones, tambin ha de haber soporte por parte del sistema operativo ya
que introducen nuevos registros de estado del procesador. Los sistemas
operativos ms comunes que permiten el uso de instrucciones AVX y AVX2 son:
APLICACIONES
En la prctica son tiles para cualquier operacin que utiliza punto flotante de
forma intensiva:
Edicin de imagen
Codificacin de vdeo
Procesamiento de audio
Modelado 3D
Servicios de anlisis financieros
Software de ingeniera y manufactura
PROCESADORES
Estas instrucciones se pueden encontrar en las siguientes familias de
procesadores: