Taxonomía de Flynn
Fenicia Jacinto MaylleInforme16 de Mayo de 2023
10.611 Palabras (43 Páginas)107 Visitas
SIMD
[pic 1]
Taxonomía de Flynn | ||
| Una | Múltiples |
Un | SISD | MISD |
Múltiples | SIMD | MIMD |
En computación, SIMD (del inglés Single Instruction, Multiple Data, en español: "una instrucción, múltiples datos") es una técnica empleada para conseguir paralelismo a nivel de datos.
Los repertorios SIMD consisten en instrucciones que aplican una misma operación sobre un conjunto más o menos grande de datos. Es una organización en donde una única unidad de control común despacha las instrucciones a diferentes unidades de procesamiento. Todas éstas reciben la misma instrucción, pero operan sobre diferentes conjuntos de datos. Es decir, la misma instrucción es ejecutada de manera sincronizada por todas las unidades de procesamiento.
Ejemplos de estos repertorios son 3DNow! de AMD, y SSE de Intel, aunque existen ejemplos más antiguos como el microprocesador Zilog Z80.
LINK TODO EN INGLES: super explicado.
https://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-linux-docs/CellProgrammingTutorial/BasicsOfSIMDProgramming.html
TRADUCCION
Capítulo 2 Fundamentos de Programación SIMD
Mientras que el capítulo 1 está diseñado para proporcionar una idea general de la programación celular, Capítulo 2 pretende ser una introducción a los programadores para el uso de la tecnología SIMD, uno de los rasgos característicos de la programación celular.
Capaz de procesar múltiples datos con una sola instrucción, operaciones SIMD son ampliamente utilizados para gráficos 3D y de audio / vídeo en el procesamiento de las aplicaciones multimedia. Un número de procesadores recientemente desarrollados tienen instrucciones para las operaciones SIMD (en lo sucesivo como instrucciones SIMD). En las extensiones multimedia para el procesador Intel x86, por ejemplo, las instrucciones SSE y las instrucciones MMX se definen como instrucciones SIMD. La célula se describe en este tutorial incluye dos tipos de instrucciones SIMD - instrucciones VMX implementadas en el PPE y las instrucciones SIMD SPU implementado en SPEs.
En este capítulo, la programación SIMD se explica el uso de las instrucciones VMX implementadas en el PPE. Vamos a ver lo que la programación SIMD es, qué datos se utiliza y cómo se realiza. Una serie de programas de ejemplo se presenta para que sea más fácil de adquirir conocimientos de programación necesarios. preguntas de revisión también se proporcionan al final del capítulo.
SIMD la programación de estas entidades se trata en el capítulo 3.
Tabla 2.1: Estructura del capítulo 2
Sección | Título | Descripción |
sección 2.1 | Operación SIMD general | Explica los fundamentos de las operaciones SIMD. |
sección 2.2 | Los datos utilizados en SIMD Programación | Proporciona un resumen general de los datos y tipos de datos utilizados en la programación SIMD. |
sección 2.3 | Las operaciones SIMD rudimentarios | Demuestra operaciones básicas SIMD. |
sección 2.4 | Generación de SIMD-Ready Vectors | Describe cómo organizar datos para que sean aptos operaciones SIMD. |
Sección 2.5 | Eliminación de saltos condicionales | Describe cómo las operaciones SIMD eliminan el uso de saltos condicionales. |
sección 2.6 | El ejercicio (2-1): Total del Programa de Cálculo | Proporciona una pregunta de la revisión que se pueden resolver basa en lo que vamos a aprender en la Sección 2.3. |
sección 2.7 | El ejercicio (2-2): programa de cálculo de punto flotante | Proporciona una pregunta de la revisión que se pueden resolver basa en lo que vamos a aprender en la Sección 2.4. |
sección 2.8 | El ejercicio (2-3): programa de cálculo de valor absoluto | Proporciona una pregunta de la revisión que se pueden resolver basa en lo que vamos a aprender en la Sección 2.5. |
sección 2.9 | El ejercicio (2-4): Programa Escala de grises Conversión | Como una revisión exhaustiva del capítulo 2, proporciona una pregunta crítica sobre el color a la conversión de escala de grises. |
2.1 SIMD Resumen de Funcionamiento
Vamos a empezar con los aspectos únicos de operaciones SIMD. SIMD está orientado principalmente hacia las aplicaciones gráficas y cálculos físicos que requieren cálculos simples y repetitivas de enormes cantidades de datos.
2.1.1 Cómo funciona SIMD
SIMD es la abreviatura de instrucción única / datos múltiples, mientras que el término operaciones SIMD se refiere a un método informático que permite el procesamiento de datos múltiples con una sola instrucción. En contraste, el enfoque secuencial convencional utilizando una instrucción para procesar cada datos individuales se llama operaciones escalares.
El uso de un simple suma como un ejemplo, la diferencia entre las operaciones SIMD escalar y se ilustra a continuación. Ver Fig. 2,1 de cómo cada método maneja los mismos cuatro conjuntos de adiciones.
[pic 2]
Higo. 2.1: Escalar vs. operaciones SIMD
Con operaciones escalares convencionales, cuatro añadir instrucciones deben ser ejecutados uno tras otro para obtener las cantidades como se muestra en la Fig. 2.1 (a). Mientras tanto, SIMD utiliza solamente una instrucción añadir a conseguir el mismo resultado, como se muestra en la Fig. 2.1 (b). Exigir menos instrucciones para procesar una masa dada de datos, las operaciones SIMD rendimiento mayor eficiencia que las operaciones escalares.
2.1.2 Las restricciones a las operaciones SIMD
A pesar de la ventaja de ser capaz de procesar múltiples datos por instrucción, operaciones SIMD sólo se pueden aplicar a ciertos patrones de procesamiento predefinidos. Higo. 2.2 muestra un patrón de este tipo donde se realiza la misma operación de suma para todos los datos.
[pic 3]
Higo. 2.2: Ejemplo de SIMD Patrones procesable
operaciones SIMD no se pueden utilizar para procesar múltiples datos de diferentes maneras. Un ejemplo típico se da en la Fig. 2.3 donde una parte se va a agregar y otra de datos es que se deducirá, multiplicado o dividido ..
[pic 4]
Higo. 2.3: Ejemplo de SIMD Patrones Unprocesable
2.2 Datos utilizados en SIMD Programación
Esta sección se centra en los datos utilizados en la programación SIMD.
2.2.1 Tipo vectorial
Tipos de datos convencionales utilizados en el lenguaje de programación C, tales como char, int y float , se llaman tipos escalares. Tipos de datos utilizados para operaciones SIMD se llaman tipos de vectores. Cada tipo de vector tiene su correspondiente tipo escalar como se muestra en la Tabla 2.2.
Tabla 2.2: Lista de Tipos de vector
Tipo de vectores | Datos |
__vector unsigned char | Dieciséis datos de 8 bits sin signo |
__vector firmado Char | Dieciséis firmó datos de 8 bits |
__vector corto sin signo | Ocho datos de 16 bits sin signo |
__vector firmado corta | Ocho firmaron datos de 16 bits |
__vector unsigned int | Cuatro datos de 32 bits sin signo |
__vector firmado int | Cuatro firmaron datos de 32 bits |
__vector unsigned long long | Dos datos sin signo de 64 bits |
__vector firmó largo, largo | Ambos firmaron los datos de 64 bits |
flotador __vector | datos de coma flotante de precisión simple de cuatro |
__vector doble | datos de coma flotante de doble precisión de dos |
...