Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesadores Vectoriales: Tema 8
Procesadores Vectoriales: Tema 8
Estructura de Computadores
Procesadores vectoriales
Índice
Esquema 3
Ideas clave 4
8.1. Introducción y objetivos
8.2. Arquitectura vectorial
8.3. El sistema de memoria en procesadores
vectoriales 11
8.4. Medidas de rendimiento en procesadores
vectoriales 13
8.5. Eficiencia del procesamiento vectorial 16
A fondo 18
Test 20
Esquema 3
Ideas clave 4
8.1. Introducción y objetivos
8.2. Arquitectura vectorial
8.3. El sistema de memoria en procesadores
vectoriales 12
8.4. Medidas de rendimiento en procesadores
vectoriales 14
8.5. Eficiencia del procesamiento vectorial 17
A fondo 19
Test 21
Esquema 3
Ideas clave 4
8.1. Introducción y objetivos
8.2. Arquitectura vectorial
8.3. El sistema de memoria en procesadores
vectoriales 12
8.4. Medidas de rendimiento en procesadores
vectoriales 14
8.5. Eficiencia del procesamiento vectorial 17
A fondo 19
Test 21
Esquema
3
Ideas clave 4
8.1. ¿Cómo estudiar este tema?
8.2. Introducción
8.3. Arquitectura vectorial 13
8.4. El sistema de memoria en procesadores
vectoriales 13
8.5. Medidas de rendimiento en procesadores
vectoriales
8.6. Eficiencia del procesamiento vectorial
A fondo 14
Test 15
Esquema
Estructura de Computadores 4
Tema 8. Esquema
Estructura de Computadores 5
Tema 8. Esquema
Ideas clave
Para estudiar este tema lee el capítulo 6 «Procesadores vectoriales» (páginas 278-
308) del libro:
Ortega, J., Anguita, M. y Prieto, A. (2005). Arquitectura de computadores. Madrid:
Thomson. ISBN: 84-9732-274-6
8.2. Introducción
Estructura de Computadores
Tema 8. Ideas clave
Se ajustan a la clase SIMD de la clasificación de Flynn, de hechohecho, es otra forma
de designarlos.
Una operación vectorial agrupa una gran cantidad de cálculos. Reduce el número
de instrucciones a ejecutar y sustituye bucle por instrucción (menores riesgos de
control)
Una operación vectorial agrupa una gran cantidad de cálculos. Reduce el número
de instrucciones a ejecutar y sustituye bucle por instrucción (menores riesgos de
control)
ADDV V1,V2,V3 = for i:=1 to n do V1(i):=V2(i)+V3(i)
Estructura de Computadores
Tema 8. Ideas clave
eficiente configuraciones de optimización de memoria (entrelazado…)
mejorando su ancho de banda.
Tabla 8.1. Cronología de algunos de los principales procesadores vectoriales. Fuente: Ortega et al.,
2005.
La tabla 8.1 es un cuadro resumen de algunas de las máquinas a las que se hace
referencia en el manual de la asignatura y la evolución en el tiempo de este tipo de
procesadores. Deben conocerse, en este sentido, los conceptos de procesador
vectorial de tipo memoria-memoria y registro-registro.
Estructura de Computadores
Tema 8. Ideas clave
Reconocer los tipos de configuraciones de memoria adecuados para trabajar con
vectores.
Estructura de Computadores
Tema 8. Ideas clave
8.23. Arquitectura vectorial
Unidad Escalar
Reg. Escalares
Datos Escalares
Control
Cauces Esc.
E/S Flujo
IF ID OF
Cauces Vector.
Instr.
Unidad
LOAD/STORE
Datos Vectoriales
Reg. Vectoriales
Estructura de Computadores
Tema 8. Ideas clave
Se trata de un procesador segmentado en el que las unidades más significativas son:
La unidad escalar: procesa instrucciones escalares, está internamente
segmentada y respondería a las características de un procesador de este tipo.
Entre otros elementos incorpora un banco de registros escalares (para
operandos enteros o reales) y una serie de cauces escalares para procesar los
diferentes tipos de instrucciones. No presenta ninguna ventaja respecto a un
procesador escalar clásico.
La unidad vectorial: se ocupa de las instrucciones vectoriales (al menos un
operando fuente vector y operando destino vector). Integrada por un banco de
registros vectoriales (capaz de almacenar las componentes de un vector) y por
unidades de proceso vectorial para operaciones de distinta naturaleza
(operandos enteros, reales o lógicos; operaciones aritméticas o lógicas) que
trabajan con los registros vectoriales y también tienen acceso a los registros
escalares de la otra unidad.
Estructura de Computadores
Tema 8. Ideas clave
(operandos enteros, reales o lógicos; operaciones aritméticas o lógicas) que
trabajan con los registros vectoriales y también tienen acceso a los registros
escalares de la otra unidad.
En relación con la estructura interna del procesador vectorial existen una serie de
parámetros característicos:
Estructura de Computadores
Tema 8. Ideas clave
Longitud de palabra: Define el tamaño de operando a usar y con ello el tamaño
en Bytes de los distintos registros (escalar entero o real, componente vectorial).
Puede ser única o distinguir entre valor real (mayor) y valor entero (menor).
Estructura de Computadores
Tema 8. Ideas clave
Paralelismo funcional: Si las operaciones son de instrucciones diferentes.
Paralelismo de datos: Si se reparten los elementos de un vector entre los cauces.
Procesador DLXV
Estructura de Computadores
Tema 8. Ideas clave
Registro longitud de vector (VLR, Vector Length Register): especifica el número
de componentes de vector con el que se va a trabajar. Su valor por defecto es
MVL.
Vector máscara (VM, Vector Mask): registro vectorial con componentes
booleanas que sirve para seleccionar las componentes que se van a “procesar”
en las operaciones vectoriales.
Longitud máxima de vector (MVL): parámetro de valor 64 en este caso.
Registro longitud de vector (VLR, Vector Length Register): especifica el número
de componentes de vector con el que se va a trabajar. Su valor por defecto es
MVL.
Vector máscara (VM, Vector Mask): Registro vectorial con componentes
booleanas que sirve para seleccionar las componentes que se van a “procesar”
en las operaciones vectoriales.
Instrucción Descripción
ADDV Vi,Vj,Vk Suma vectorial: Vj+Vk→Vi
ADDSV Vi,Fj,Vk Suma vector/escalar: Fj+Vk→Vi
SUBV Vi,Vj,Vk Resta vectorial: Vj-Vk→Vi
SUBSV Vi,Fj,Vk Resta escalar/vector: Fj-Vk→Vi
SUBVS Vi,Vj,Fk Resta vector/escalar: Vj-Fk→Vi
MULTV Vi,Vj,Vk Multiplicación vectorial:Vj*Vk→Vi
MULTSV Vi,Fj,Vk Multiplicación escalar/vector:Fj*Vk→Vi
DIVV Vi,Vj,Vk División vectorial: Vj/Vk→Vi
DIVSV Vi,Fj,Vk División escalar/vector: Fj/Vk→Vi
DIVVS Vi,Vj,Fk División vector/escalar: Vj/Fk→Vi
Estructura de Computadores
Tema 8. Ideas clave
SVWS (Ri,Rj),Vk Almacenamiento: Vk→(Ri) con separación Rj
LVI Vi,(Rj+Vk) Carga: (Rj)→Vi usando Vk como índice
Almacenamiento: Vk→(Ri) usando Vj como
SVI (Ri+Vj),Vk
índice
Tabla 8.2. Selección de instrucciones vectoriales del DLXV. Fuente: Hennessy & Patterson., 201702.
Estructura de Computadores
Tema 8. Ideas clave
Figura 8.2. Entrelazado inferior y superior para una memoria de 1MB (2 20B) dividida en 64 (26)
módulos de 16KB (214B). Fuente: Ortega et al., 2005.
• Aislamiento de módulos.
Entrelazado de orden inferior o bajo:
• Usa los bits menos significativos de la dirección.
• Crea módulos con posiciones salteadas.
Estructura de Computadores
Tema 8. Ideas clave
En general las memorias se organizan aprovechando ambos entrelazados.
Figura 8.3. Ejemplo de entrelazado para una memoria de 32B (2 5B) organizada en 4 (22) módulos de
16KB (23B). Fuente: Ortega et al., 2005.
Estructura de Computadores
Tema 8. Ideas clave
consecutivo. Debe tenerse en cuenta el efecto de la distancia o separación entre
elementos (stride).
Estructura de Computadores
Tema 8. Ideas clave
k: número de componentes del vector.
TPC es el tiempo por componente. Tiempo que tarda en obtenerse una
componente procesada nueva tras la anterior. En un cauce lineal es el tiempo
consumido por cada etapa del cauce.
Estructura de Computadores
Tema 8. Ideas clave
Para implementar estás técnicas se requiere que el procesador disponga de los
recursos hardware adecuados (conexiones entre cauces y registros vectoriales y
entre los propios cauces).
k
Wk: Productividad (Throughput) W k=
Tk
Rk Wk
E: Eficiencia vectorial E= =Operaciones×
R∞ R∞
Tabla 8.3. Medidas de prestaciones para procesadores vectoriales. Fuente: Ortega et al., 2005.
Troceado de vectores (Strip mining): solución que hay que adoptar cuando
k>MVL. En ese caso es necesario incluir un bucle de ejecución que trabaje sobre
trozos de vector a razón de MVL.
Uso del VM (vector máscara) en sentencias con instrucciones condicionales.
Ejecución de arrays mediante agrupación/dispersión (gather-scatter) de las
componentes de los vectores.
k
⌉×( T BUCLE +TLI ) +k ×TPC
T k=T BASE +⌈
⏟
MVL
SOBRECARGA ( O K )
[8.2]
Donde:
TBASE: tiempo consumido por las instrucciones escalares previas al bucle.
TBUCLE: tiempo asociado al control del bucle.
TLI: tiempo de inicio del conjunto de instrucciones (se evalúa teniendo en cuenta
solapamientos y encadenamientos).
k: componentes de vector en el código (si cambia debe tenerse en cuenta).
k
⌈ ⌉
MVL : cociente por exceso de k y MVL.
Estructura de Computadores
Tema 8. Ideas clave
TBASE: tiempo consumido por las instrucciones escalares previas al bucle.
TBUCLE: tiempo asociado al control del bucle.
TLI: tiempo de inicio del conjunto de instrucciones (se evalúa teniendo en cuenta
solapamientos y encadenamientos).
k: componentes de vector en el código (si cambia debe tenerse en cuenta).
k
⌈ ⌉
MVL : cociente por exceso de k y MVL.
Estructura de Computadores
Tema 8. Ideas clave
A fondo
No dejes de leer…
Procesador vectorial
Para obtener una visión más directa del procesador vectorial y, sobre todo, del
DLXV es muy recomendable leer el capítulo 7: «Procesadores vectoriales».
Estructura de Computadores 24
Tema 8. A fondo
Para profundizar en los conceptos tratados en este tema y observar cómo se han
aplicado las técnicas básicas vistas aquí a procesadores gráficos, sería conveniente
revisar el capítulo 4: «Multiprocessors and Thread-Level Parallelism».
https://digitalcommons.lsu.edu/cgi/viewcontent.cgi?
article=6980&context=gradschool_dissertations
https://itnext.io/vector-processing-on-cpus-and-gpus-compared-b1fab24343e6
© Universidad Internacional de La Rioja (UNIR)
Las CPU y GPU modernas pueden procesar una gran cantidad de datos en paralelo,
entonces, ¿qué las hace diferentes exactamente? Esta pregunta se vuelve más
Estructura de Computadores 25
Tema 8. A fondo
relevante a medida que vemos que el procesador Arm agrega extensiones
vectoriales escalables, Intel y AMD agregan AVX a la arquitectura del
microprocesador x86, mientras que RISC-V ha formalizado recientemente sus
extensiones vectoriales RISC-V.
Multiprocessors and Thread-Level Parallelism
Para profundizar en los conceptos tratados en este tema y observar cómo se han
aplicado las técnicas básicas vistas aquí a procesadores gráficos, sería conveniente
revisar el capítulo 4: «Multiprocessors and Thread-Level Parallelism».
Estructura de Computadores 26
Tema 8. A fondo
© Universidad Internacional de La Rioja (UNIR)
Estructura de Computadores 27
Tema 8. A fondo
Test
1. Un procesador vectorial…
A. Accede a memoria de forma secuencial.
B. Aprovecha el paralelismo de datos. * Lo hace a través de SIMD (Single
Instruction, Multiple Data) que es una técnica empleada para conseguir
paralelismo a nivel de datos.
C. Si es de tipo registro—registro no necesita memoria para almacenar
información.
D. Las tres afirmaciones anteriores son correctas.
2. En un procesador vectorial…
A. No se contemplan las dependencias entre componentes de los vectores en
proceso. * El paralelismo viene de que, al operar con matrices,
normalmente, los elementos de las matrices son independientes entre sí,
es decir, no existen dependencias de datos dentro de las propias matrices,
en general.
B. Las componentes se procesan todas al mismo tiempo.
C. No se admiten operandos en coma flotante.
D. Ninguna de las tres respuestas anteriores es correcta.
3. En un procesador vectorial…
A. Solo se trabaja con instrucciones vectoriales.
B. El número de componentes admitidas depende del tamaño de los registros
escalares.
C. Se pueden ejecutar instrucciones escalares y vectoriales al disponer de
sendas unidades de ambos tipos. * los componentes principales del
conjunto de instrucciones comprenden registros vectoriales y registros
escalares.
D. Las tres afirmaciones anteriores son falsas.
Estructura de Computadores 28
Tema 8. Test
4. El MVL de un procesador vectorial…
A. Es un registro que contiene el número de componentes a procesar.
B. Es un parámetro que caracteriza al procesador especificando su número
de registros vectoriales.
C. Es un registro que almacena el número de componentes procesadas.
D. Es un parámetro que caracteriza al procesador especificando el número
máximo de componentes de sus registros vectoriales. *Es la longitud
vectorial máxima definida por el procesador.
5. El VM del procesador vectorial…
A. Es un registro escalar que contiene el número de componentes que se van
a procesar.
B. Es un registro vectorial que almacena temporalmente los procesos en
curso.
C. Es un registro vectorial que identifica las componentes no nulas del
resultado obtenido.
D. Ninguna de las afirmaciones anteriores es cierta. * Vector Mask registro
vectorial con componentes booleanas que sirve para seleccionar las
componentes que se van a “procesar” en las operaciones vectoriales.
7. La técnica de agrupación/dispersión…
A. Se aplica cuando el tamaño del vector a procesar es menor que MVL.
B. Sirve para optimizar los accesos a memoria.
Estructura de Computadores 29
Tema 8. Test
C. Optimiza el proceso de vectores grandes cuando el número de
componentes que interesa procesar es muy inferior al tamaño total. * El
objetivo es moverse de una representación densa a la dispersa normal y
viceversa
D. Ninguna de las afirmaciones anteriores es cierta.
8. El VLR…
A. Es un registro escalar que especifica el número de componentes que se
van a procesar. * El VLR controla la longitud de cualquier operación
vectorial incluyendo las de carga y almacenamiento
B. Es un parámetro que indica el número de registros vectoriales disponibles.
C. Es un registro vectorial que especifica el número de vectores que se van a
procesar.
D. Es un registro escalar que contiene el orden de multiplicidad de un bucle.
Estructura de Computadores 30
Tema 8. Test
efecto de la dependencia de operandos porque una operación
dependiente solo debería espera el TLI de la operación de la que depende.
C. Permite solapar instrucciones siempre que sean de la misma naturaleza.
D. Permite solapar instrucciones a partir de las especificaciones del
compilador, independientemente del hardware del procesador.
E.
Estructura de Computadores 31
Tema 8. Test