Computación Paralela 2018
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 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.
- Si todo falla, intentar nuevamente lo anterior con ISPC.
Entrega
Presentación de los resultados (10 minutos) e 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.