Procesador de vectores


En informática , un procesador vectorial o un procesador de matriz es una unidad central de procesamiento (CPU) que implementa un conjunto de instrucciones donde sus instrucciones están diseñadas para operar de manera eficiente y efectiva en grandes matrices unidimensionales de datos llamadas vectores . Esto contrasta con los procesadores escalares , cuyas instrucciones operan solo en elementos de datos individuales, y en contraste con algunos de esos mismos procesadores escalares que tienen unidades aritméticas SIMD o SWAR adicionales . Los procesadores vectoriales pueden mejorar enormemente el rendimiento en determinadas cargas de trabajo, en particularsimulación numérica y tareas similares. Las técnicas de procesamiento de vectores también operan en el hardware de las consolas de videojuegos y en los aceleradores de gráficos .

Las máquinas vectoriales aparecieron a principios de la década de 1970 y dominaron el diseño de supercomputadoras desde la década de 1970 hasta la de 1990, en particular las diversas plataformas Cray . La rápida caída en la relación precio-rendimiento de los diseños de microprocesadores convencionales condujo a una disminución de las supercomputadoras vectoriales durante la década de 1990.

El desarrollo del procesamiento de vectores comenzó a principios de la década de 1960 en Westinghouse en su proyecto "Solomon". El objetivo de Solomon era aumentar drásticamente el rendimiento matemático mediante el uso de una gran cantidad de coprocesadores matemáticos simples bajo el control de una sola CPU maestra . La CPU alimentó una sola instrucción común a todas las unidades lógicas aritméticas (ALU), una por ciclo, pero con un punto de datos diferente para que cada una trabajara. Esto permitió a la máquina Solomon aplicar un solo algoritmo a un gran conjunto de datos , alimentado en forma de matriz.

En 1962, Westinghouse canceló el proyecto, pero el esfuerzo se reinició en la Universidad de Illinois como ILLIAC IV . Su versión del diseño originalmente requería una máquina de 1 GFLOPS con 256 ALU, pero, cuando finalmente se entregó en 1972, tenía solo 64 ALU y podía alcanzar solo de 100 a 150 MFLOPS. Sin embargo, demostró que el concepto básico era sólido y, cuando se usaba en aplicaciones con uso intensivo de datos, como la dinámica de fluidos computacional , ILLIAC era la máquina más rápida del mundo. El enfoque de ILLIAC de usar ALU separadas para cada elemento de datos no es común a diseños posteriores y, a menudo, se lo menciona en una categoría separada, masivamente paralela.informática. Por esta época, Flynn clasificó este tipo de procesamiento como una forma temprana de SIMT .

Las primeras supercomputadoras vectoriales son Control Data Corporation STAR-100 y Texas Instruments Advanced Scientific Computer (ASC), que se introdujeron en 1974 y 1972, respectivamente.

La ALU ASC básica (es decir, "una tubería") utilizaba una arquitectura de tubería que admitía cálculos tanto escalares como vectoriales, con un rendimiento máximo que alcanzaba aproximadamente 20 MFLOPS, que se logra fácilmente al procesar vectores largos. Las configuraciones de ALU expandidas admitían "dos tubos" o "cuatro tubos" con una ganancia de rendimiento correspondiente de 2X o 4X. El ancho de banda de la memoria era suficiente para admitir estos modos expandidos.


Módulo de procesador Cray J90 con cuatro procesadores escalares / vectoriales
Simd vs vector.png