x
1

Extensiones Vectoriales Avanzadas



Las extensiones vectoriales avanzadas, del inglés advanced vector extensions y abreviado AVX, es un conjunto de instrucciones de 256 bits desarrollado por Intel Corporation como una extensión al conjunto de instrucciones x86 utilizado en procesadores de Intel y AMD. Provee nuevas características, instrucciones y un nuevo esquema de codificación.

Fue propuesto por Intel en marzo del año 2008[1]​ pero no fue soportado hasta el primer trimestre del año 2011 con el lanzamiento de su nueva generación de procesadores iX denominada Sandy Bridge y después por AMD con el procesador "Bulldozer" a partir del tercer trimestre del mismo año.

Es un vector de extensión SIMD de 256 bits para operaciones de punto flotante intensivo. Mejora el rendimiento en las nuevas aplicaciones, y algunas existentes, mediante el manejo de paquetes de datos vectoriales más grandes, y el uso de más hilos y núcleos del procesador.

El ancho del registro SIMD es incrementado de 128-bits a 256-bits, y renombrado de XMM0-XMM15 a YMM0-YMM15. En los procesadores que soportan AVX, el conjunto de instrucciones SSE (que anteriormente operaba en los registros XMM) pasa a operar en los primeros 128-bits de los registros YMM. Además, se espera la inclusión de vectores de 512 e incluso 1024 bits.

Son instrucciones no destructivas. AVX introduce un formato SIMD de 3 y 4 operandos, donde el operando de destino es diferente de los operandos fuente. Por ejemplo, una instrucción SSE convencional de 2 operandos a:=a+b puede usar un formato no destructivo de 3 operandos c:=a+b, preservando los operandos fuente. Este formato está limitado al conjunto de instrucciones con operandos SIMD (YMM) y no incluye los registros con propósitos generales (p.e. EAX), sin embargo, se espera el soporte en el futuro.

Debido al mayor poder de procesamiento, las aplicaciones que usen intesivamente estas instrucciones pueden realizar el trabajo más eficientemente, dando un rendimiento por watt más alto que con otro conjunto de instrucciones.

Flexibilidad en el entorno de programación, debido a que el requisito de alineación de los operandos de memoria SIMD es relajado.

Nuevo manejo de operaciones aritméticas y primitivas , incluyendo difusión, permutación, suma y multiplicación fusionado, entre otras.

Continuando con la tendencia de añadir más funcionalidades vectoriales en sucesivas generaciones de procesadores, Intel ampliará el conjunto AVX con nuevas instrucciones que funcionarán también sobre números naturales, efectivamente ampliando casi la totalidad del conjunto SSE de 128 a 256 bits.[4]

Además esta nueva ampliación permitirá realizar operaciones de recolección (gather), lo que significa que se podrá acceder a la vez a varias posiciones no contiguas en memoria, aumentando considerablemente las capacidades de procesado vectorial de la arquitectura x86-64. Sin embargo la posibilidad de distribución (scatter) no será implementada.[4]

AVX2 se introducirá en la arquitectura inmediatamente posterior a Ivy Bridge, la Intel Haswell prevista para la primavera de 2013, un año después de la salida de los procesadores basados en Ivy Bridge.[4]​ Por lo demás comparten todas las características de las AVX originales.

Además de que las aplicaciones introduzcan el uso explícito de estas nuevas instrucciones, también ha de haber soporte por parte del sistema operativo ya que introducen nuevos registros de estado del procesador. Los sistemas operativos más comunes que permiten el uso de instrucciones AVX y AVX2 son:

Estos conjuntos de instrucciones son útiles para cualquier operación que utilice coma flotante de forma intensiva, y en el caso de AVX2 serán útiles también para operaciones con enteros:



Escribe un comentario o lo que quieras sobre Extensiones Vectoriales Avanzadas (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!