Download rendimiento de procesadores manycore sobre - fcqi

Document related concepts
no text concepts found
Transcript
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
RENDIMIENTO DE PROCESADORES MANYCORE SOBRE TOPOLOGÍA 2D
Resumen-- Actualmente atrae la atención, investigaciones en sistemas
de procesadores, que funcionen con computó paralelo, donde la
compartición de memoria, es una de las alternativas para atender la
necesidad de optimizar el rendimiento de procesos. Se presenta el
análisis del rendimiento de estos sistemas escalares, superescalares,
multicore y manycore, siendo el manycore con topología 2D el que
demostró un rendimiento 10 veces mejor que los anteriores, en tiempo
de respuesta (Epiphany-GPU 192.1 ciclo máquina a 600 MHz y
Arm9 1772.9 ciclos máquina a 667 MHz). El manycore presento
mejores resultados en tiempo de ejecución, tiempo de acceso a
memoria, rendimiento y bajo consumo de energía estos son factores
directos que influyen en el alto rendimiento.
Palabras Claves-- Multicore,
topología.
1.
Manycore,
TEODORO ÁLVAREZ SÁNCHEZ
RAUL MUÑOZ ORTIZ
ANDRÉS CALVILLO TÉLLEZ
MIGUEL ÁNGEL ROMERO MIRANDA
Instituto Politécnico Nacional, CITEDI.
Av. del Parque No. 131O, Mesa de Otay,
Tijuana, Baja California, MÉXICO.
[email protected]
[email protected]
[email protected]
[email protected]
memoria compartida,
INTRODUCCIÓN
Por más de 60 años - desde los primeros días de las
mainframe a través de la revolución de la PC de la
década de 1980 y el éxito de hoy de dispositivos móviles
inteligentes - la tecnología de procesador siempre ha
evolucionado para satisfacer las expectativas de los
usuarios, en los tiempos de conducción de innovaciones
imprevistas en la industria de la computación. Dada la
diversidad de los nuevos dispositivos móviles que
lleguen al mercado sobre una base diaria, las
innovaciones del procesador siguen siendo una fuerza
poderosa para el cambio [6].
Con la incorporación del cómputo móvil, la arquitecturas
de procesador se han desplazado a las computadoras de
escritorio tradicionales, incluso a las laptop, esto es
impulsado por el rendimiento, portabilidad, compacto,
ahorradores de energía, alta integración, rapidez, en parte
económica es otro factor determinante para la evolución
de la Investigación en computación, etc.
Es importante señalar, que el procesador es llamados
actualmente core, los procesadores muticore o manycore
poseen más de un core, es decir más de una unidad de
cómputo en un mismo encapsulado. Esto aumenta el
rendimiento, en especial si se utilizan más de una
aplicación al mismo tiempo.
Hoy en día, los beneficios de esta alto rendimiento, la
arquitectura de procesador de bajo consumo están dando
sus frutos en dispositivos como televisores digitales y settop boxes, equipo de oficina, como impresoras y
copiadoras y dispositivos móviles como tabletas,
unidades de juegos portátiles, y smartphones. Desde
mediados del 2000 se han propuesto a desarrollar CPUs,
mejorando en el rendimiento de un solo thread, no sólo se
vuelve cada vez más difícil, pero también va en contra de
las limitaciones de eficiencia energética de los
dispositivos. Esto se debe a que exponencialmente, se
requiere más energía para obtener un porcentaje de
rendimiento.
La Solución multicore pueden ofrecer un mayor
rendimiento en las frecuencias comparables a los diseños
de un solo core, mientras que ofrece un ahorro energético
importante en términos de costo y eficiencia. Además, las
soluciones de múlticore pueden aprovechar los cores con
su gran cantidad de transistores
optimizando, al
suministrar la alimentación a ellos sólo cuando sea
necesario. En esencia, esto puede ser pensado como el
equilibrio de carga inteligente. No sólo un sistema
necesita ser considerado, cual el procesador es el más
adecuado para ejecutar una tarea específica, sino que
también debe tener en cuenta el rendimiento requerido de
esa tarea y asignarla al procesador más adecuado con la
energía disponible.
El uso de cores necesarios, esto nos permite mantener
los demás inactivo ayudando al consumo de energía, que
no afecta el rendimiento. Como las tareas se distribuyen
a través de múltiples núcleos de procesador. Un
procesador diseñado con tecnología de los 80 no podría
funcionar a plena capacidad reduciendo voltaje y
frecuencia de reloj. Los procesadores multicore permiten
que el voltaje y la frecuencia sea reducidos. Esto se
traduce en ahorros de energía significativos relacionados
con el rendimiento global del sistema.
Un enfoque
de "múlticore" para procesamiento
multicore requiere ejecutar cargas para ser compartidos a
través de muchos procesadores más pequeños, tal como
un Cortex-A5, en vez de simple thread con múltiples
cargas de trabajo de un solo procesador core. Los
diseñadores de procesadores están implementando cada
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
158
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
vez más grupos de procesadores para trabajar juntos,
compartiendo datos y tareas entre los caches o varias
instancias del mismo procesador.
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
En la figura 1, se muestran los componentes claves en la
arquitectura Epiphany.
Figura 1. Componentes de la Arquitectura Epiphany.
Muchos core se vuelve aún más interesante ya que los
procesadores más pequeños trabajan juntos para ofrecer
un nivel de ejecución combinado con menor consumo de
energía que un gran procesador de multitarea con la
misma carga de trabajo. Como se mencionó
anteriormente, los costos asociados con un mayor
rendimiento sobre un subproceso son exponenciales; Sin
embargo, con el procesamiento multicore el costo se
vuelve más lineal en escala. Los diseñadores están
utilizando muchos cores para reducir significativamente
los costos al integrarlos al sistema.
Como diseñadores de hardware comienzan a implementar
estos sistemas de múltiples cores, los desarrolladores de
software tendrán que producir código capaz de utilizar
una solución de procesamiento múlticores.
Hasta entonces, los dispositivos deben tener la capacidad
de ejecutar tareas de alto rendimiento. Un ejemplo de un
sistema que contienga ambos multicores de alto
rendimiento y la mayor eficiencia de energía de muchos
cores en el sistema CPU y GPU, donde el GPU de
muchos cores puede entregar cómputo gráfico utilizando
menos energía que multicore CPU.
Dado que el GPU sigue siendo coherente con el CPU y
comparte sus cachés, ancho de banda de memoria externa
y la demanda del rendimiento del CPU se puede reducir.
Los lenguajes como CUDA, OpenCL/C/C++, Phyton
para epiphany están trabajando para las aplicaciones más
genéricas.
La arquitectura Epiphany es una de las últimas
arquitecturas manycore en aparecer; se trata de una
arquitectura de 16 o 64 cores, expandible hasta 4,096
cores en un futuro.
Entre sus características notables se encuentran una
arquitectura manycore, escalable, con memoria
compartida capaz de ejecutar cómputo paralelo. Esta
arquitectura ofrece una potencia de 50 Gigaflops por watt
en cálculos de simple precisión.
Está fabricada con el proceso de manufactura de 28 nm y
está conformada por 16 y 64 núcleos basados en una
arquitectura RISC e interconectados vía una red interna
de alta velocidad; el chip funciona a una frecuencia de
800 MHz, ofreciendo una potencia de 100 gigaflops y un
TDP (thermal design point) de apenas 2W.
Cada uno de sus núcleos utiliza un diseño muy simple, el
cual es similar a los núcleos de los GPU o de
aceleradores como Xeon Phi, obviamente sin el hardware
x86 de este último.
Fuente: Elaboración propia
Un superes calar, un CPU RISC de punto flotante en cada
nodo que puede ejecutar dos operaciones en punto
flotantes y una operación de carga en memoria de 64 bits
con cada ciclo de reloj.
La memoria local en cada nodo proporciona 32
Bytes/ciclo de ancho de banda sostenido y es parte de un
sistema de memoria compartida, distribuida.
La infraestructura de comunicación Multicore en cada
nodo que incluye una interfaz de red, un acelerador DMA
multicanal, decodificador de dirección multicore y una
red de monitores.
Una red de malla 2D con latencias comunicación en el
chip de nodo a nodo en nanosegundos, con cero
sobrecarga inicial.
2. METODOLOGÍA
De manera general la investigación del sistema de
manycore procesa los datos de la imagen Lena.jpg que
tiene la imagen imperfecciones por la captura del
dispositivo:
La investigación la dividimos tres fases:
En la primera fase, el sistema obtener la
Lena.jpg
imagen
de
En la segunda fase, se analizara la imagen alteradas con
ruido gaussiano, es un tipo de
ruido generado por el
dispositivo de captura (cámaras y escáner)[1][2].
En la tercera fase, se ejecutara el programa que llame a la
imagen Lena, a esta imagen que se le aplique el filtro
basado en el dominio en frecuencia y que sea ejecutado
con 1 core , 4 cores y 16 cores obteniendo los
resultados de las ejecuciones desplegadas en el monitor
como se muestra en la figura 2.
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
159
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
Figura 2. Proceso de restauración de imagen a través de filtros.
IR
IF
Fuente: Elaboración propia
2.
DESARROLLO DEL SISTEMA
En la actualidad, las computadoras modernas cuentan con
procesadores de arquitectura multicore, las cuales
integran varias unidades de procesamiento en un sólo
encapsulado. Estos procesadores son capaces de ejecutar
simultáneamente varias tareas utilizando hilos, procesos
o por paso de mensajes, permitiendo con esto que las
aplicaciones se ejecuten en menor tiempo. Para explotar
el paralelismo disponible a nivel de hardware, la
aplicación debe ser descompuesta en diferentes partes.
De esta manera cada unidad de core disponible podría
ejecutar una parte de la aplicación en paralelo con otras
unidades cores. La descomposición de la aplicación debe
ser seguida por la sincronización de las diferentes partes
de la aplicación para asegurar que se conserva la
consistencia.
la ejecución de las tareas, entre cada nodo, se realiza
mediante la interfaz para paso de mensajes incluida en el
entorno de programación de Epiphany (SDK) o
directamente escribiendo en la memoria compartida
global[4].
La multiplicación de matrices en paralelo se completa en
√P pasos, (donde P es el número de procesadores), con
cada tarea de multiplicación de matrices operando sobre
el conjunto de datos que son del tamaño de √P por √P.
En cada paso del proceso, se hacen modificaciones a la
matriz C, después de lo cual la matriz A se mueve hacia
abajo y la matriz B se mueve a la derecha. Este ejemplo
se puede programar utilizando lenguaje de programación
estándar ANSI.
La arquitectura Epiphany proporcionan funciones
específicas para simplificar la programación multicore,
pero su uso no es obligatorio, esta arquitectura permite a
los programadores innovar en todos los niveles. Este
algoritmo, implementado en la arquitectura Epiphany con
16-cores operando a 1 GHz, resuelve la multiplicación de
matrices de 128 x 128 en 2 ms. Este ejemplo demuestra
cómo es posible escalar la arquitectura para miles de
cores y cómo crece linealmente el rendimiento de la
arquitectura Epiphany con el número de cores cuando se
utilizan modelos adecuados de programación y
distribución de datos [4].
Además, la programación paralela se puede implementar
de diferentes formas y con distintos lenguajes de
programación [5]. La arquitectura Epiphany utilizada
para el desarrollo de esta investigación, posee un modelo
de programación neutral y compatible con la mayoría de
los métodos de programación paralela, incluyendo:
SIMD – Single Instruction Multiple Data, SPMD –
Single Program Multiple Data, programación maestroesclavo, MIMD, Flujo de datos estático y dinámico,
Array sistólico, Multihilos de memoria compartida, paso
de mensajes y CSP - Procesos de Comunicación
Secuencial.
EL código puede escribirse en lenguaje C/C++ estándar,
compilarse y ejecutarse en un solo núcleo, siempre que
las matrices A, B y C sean colocadas en la memoria local
de los núcleos. En este ejemplo de programación, no
existe diferencia entre la arquitectura Epiphany y alguna
otra plataforma con un solo procesador. Para acelerar el
cálculo matemático, es posible utilizar varios núcleos
simultáneamente. Primero se distribuyen las matrices A,
B, C en P tareas. Por la naturaleza estructural de una
matriz, la manera más adecuada de distribuir las tareas,
es por bloques pequeños. Para ello se hacen programas
(SPMD – Single Program Multiple Data) que se ejecutan
en cada uno de los núcleos.
La figura 3. muestra que la multiplicación de matrices
puede dividirse en 16 tareas y cada una de ellas ejecutada
en los núcleos de la red. La transferencia de datos durante
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Figura 3. Flujo de datos en la multiplicación de matrices.
Fuente: Elaboración propia
3.
BENEFICIOS
CLAVE
ARQUITECTURA
DE
LA
La arquitectura Epifanía fue diseñada para un buen
rendimiento en una amplia gama de aplicaciones, pero
realmente se destaca en aplicaciones con alta localidad
espacial y temporal de los datos y código. Ejemplos de
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
160
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
tales dominios de aplicación incluyen: procesamiento de
imágenes, la comunicación, el procesamiento de la señal
del sensor, el cifrado y la compresión. Alta velocidad de
comunicación entre procesadores son compatibles con la
Epifanía arquitectura 2D Mesh ™ Red-on-Chip (NOC),
que se muestra en la figura 3b, que se conecta los nodos
de procesador en un chip. La red de malla para el tráfico
en alto rendimiento es usada en aplicaciones en tiempo
real.
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Figura 4b. Consumo de energía de Epifanía
La red se aprovecha de localidad espacial y una
abundancia de cables cortos punto a punto en el chip para
enviar Transacciones completas que consiste en dirección
de origen, dirección de destino, y los datos en un solo
ciclo de máquina. Cada enlace de enrutamiento puede
transferir hasta 8 bytes de datos en cada ciclo máquina, lo
que permite 64 bytes de datos a fluir a través de cada
nodo de enrutamiento en cada ciclo máquina, el apoyo a
un ancho de banda efectivo de 64 GB/seg a una
frecuencia de funcionamiento de la malla de 1GHz.
A continuación tenemos las siguientes figuras 4a y 4b
que nos muestra diferentes arquitecturas del mismo
enfoque de alto rendimiento y el consumo de energía que
tiene Epifanía.
Facilidad de uso: Una arquitectura de múltiples núcleos
que sea programable con ANSI-C/C+ +. Esto hace que la
arquitectura sea accesible a todos los programadores,
independientemente de su nivel de experiencia.
Eficacia: Las instrucciones de propósito general para
superescalar, bancos de registros sin restricciones, se
asegura de que el código de aplicación escrito en ANSI-C
puede acercarse al rendimiento teórico máximo de la
arquitectura
de la Epifanía.
Baja
potencia:
Optimizaciones de micro arquitectura, una alta
integración de circuitería eléctrica y un amplio periodo
de tiempo, que permite hasta 70% de eficiencia de
procesamiento Gflop/Watt, utilizando tecnología de
diseño de 28nm.
Fuente: Elaboración propia
VENTAJA EFICAZ DE EPIFANÍA
La arquitectura Epifanía es un desarrollo tecnológico
muy bien diseñado y estructurado. Este diseño ya ha
completado cuatro generaciones de silicio de la
arquitectura, la tabla 1 muestra claramente las ventajas de
características de la arquitectura, la epifanía en
comparación con otras arquitecturas del mismo enfoque
de la competencia. En la figura 5 se muestra las ventajas
de la eficiencia indiscutible de la arquitectura Epifanía.
Tabla 1.Caracteristicas de cores
Escalabilidad: La arquitectura puede escalar a miles de
núcleos en un solo chip, y millones de núcleos dentro de
un sistema más grande. Esto proporciona la base para las
futuras mejoras en el rendimiento de un mayor
paralelismo.
Figura 4a. Comparación de arquitecturas
Fuente: Elaboración propia
Fuente: Elaboración propia
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
161
Congreso Internacional de Investigación Tijuana.
Revista Aristas: Investigación Básica y Aplicada.
Figura 5. Eficiencia de la arquitectura Epifanía
ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015.
Figura 6. Rendimiento del core Epiphany
TIEMPO
RENDIMIENTO 9.2%
2000
1000
0
2 CORES
16 CORES
Cores
Fuente: Elaboración propia
Fuente: Elaboración propia
CARGAS DE TRABAJO
Una de las grandes ventajas de esta arquitectura es que
cualquiera que esté familiarizado con C/C ++ puede
lograr grandes resultados en muy poco tiempo.
Absolutamente no hay idiomas, bibliotecas o
construcciones de programación propietarias que se
requieran. En la tabla 2 se muestra las latencias de
tiempo de ejecución en diferentes lenguajes y la
eficiencia sobre arquitecturas SIMD.
Tabla 2. Rendimiento de cargas de trabajo
5.
CONLUSION
En este momento, el procesador actual Epiphany-IV
funciona a 800 MHz, y se espera que alcance una
precisión de 70 gigaflops/vatio, dos veces la eficiencia
proporcionada en los sistemas anteriores. En el mercado
de supercomputo, este procesador tendrá que competir
con las soluciones GPGPU de AMD y Nvidia(Tesla
M2050, GPU GeForce GT 120, GPU GeForce9800 GX2,
Tilera(Tile-Gx), así como el con procesador Knights
Ferry MIC, y con otros microprocesadores diseñados con
FPGA de otras marcas. El CPU Epiphany-IV esta,
diseñado con una tecnología de 28nm, con lo cual este
CPU tendría una virtud muy importante, porque será
capaz de tener un buen rendimiento en un espacio
pequeño,
sin incrementar demasiado el consumo
energético, por lo que esta plataforma Epiphany-IV,
demuestra una ruta de acceso inmediato hacia la meta de
50 GFLOPS por vatio, que DARPA debería alcanzar en
2018 en aplicaciones de computación de alto
rendimiento.
Agradecimientos
Fuente: Elaboración propia
4.
RESULTADOS
En la figuras 4a, 4b, 6 y tabla 2 mostramos la
equivalencia de las
arquitecturas SIMD con la
arquitectura Epifanía en consumo y rendimiento, en este
momento se tiene contemplado en trabajar sobre las
siguientes generaciones del procesador Epiphany-IV de
64 y 128 procesadores, que funciona a 800 MHz, para
tener
resultados prácticos sobre las arquitecturas
multicore, manycore donde hay que ser radical, para
mejorar la eficiencia energética donde debe haber
cambios en la manera de programar y educar en la
manera de pensar de cómo ejecutar dos o más tareas
simultáneamente acompañado con los conceptos del
ahorro de energía, como un dato importante Epifanía
competirá con rivales como Tilera, Nvidia, Advanced
Micro Devices, ARM e Intel, se espera que alcance una
precisión de 70 y 100 Gigaflops/watts.
El resultado de este trabajo se deriva del proyecto SIP20151394, apoyado por la Secretaría de Investigación y
Posgrado del IPN.
6.
REFERENCIAS
[1] Reza. H. M, “An Anisotropic Fourth-Order Di_usion
Filter
For Image Noise Removal”, International Journal of
Computer Vision, Vol. 92. No 2. pp 177-191. 2011.
[2]
Vajda. A, “Multi-core and Many-core
Processor Architectures”, pp 3. May 2011.
[3]
Sánchez, M. G. y col, ”Performance Evaluation
of
using Multi-Core and GPU to Remove Noise in
Images”,
[En línea]. pp. 72,82,106, 113, 2011b.
[4]
Epiphany, SDK Reference Manual (2014)[En
línea]. Disponible en: http://www.adapteva.com/wpcontent/uploads/2013/04/epiphany
_sdk
_reference
.4.13.03.301.pdf
18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.
162