Computación Paralela 2016
Laboratorio 2 - SIMD
Cosas para hacer
- Explorar que se puede hacer respecto a autovectorización:
- Opciones de compilación.
- Cambios de código para que el autovectorizador funcione.
- Intentar en gcc, icc, clang y otros compiladores menos usados como PGI.
- Si lo anterior no funciona, tomar al menos una función (puede no ser la función de mayor peso computacional) y vectorizarla a mano con SSE o AVX intrinsics.
- Leer "ancho" de memoria.
- Procesar.
- Escribir "ancho" en memoria.
Entrega
Informe breve con:
- Explicación de lo que se intentó a nivel de autovectorización por parte del compilador.
- Detalle de la vectorización realizada en caso de que el punto anterior no haya dado el resultado esperado.
- Medición de tiempos normalizados respecto al tamaño.
- Gráfica comparativa de la mejor versión CPU obtenida en el Laboratorio 1: tiempo normalizado vs. tamaño.
- Potenciales mejoras en la vectorización.