Links:
https://pastebin.com/ZE0H0bRr
https://pastebin.com/9TNNbwGk
- Ejercicio de ejemplo: optimizar una multiplicación de matrices
- Como medir el tiempo de ejecución: Profiling
- Profiling básico utilizando oprofile
- Funcionamiento del profiler por sampling (muestreo)
- Uso básico de operf para medir tiempo por sampling
- Uso del evento CPU_CLK_UNHALTED (En caso de no funcionar, usar en minúsculas cpu_clk_unhalted)
- Frecuencia de sampling
- Uso de opreport para mostrar resultados de sampling
- Interpretando los resultados de opreport
- Calculando el tiempo en segundos a partir de los samples (muestras)
- Cuestiones importantes a la hora de optimizar:
-- Importancia de optimizar aquello que más consume primero
-- Medir intuitivamente la ganancia de una optimización
- Importancia de crear un profiling personalizado
- Optimizaciones del compilador y sus limitaciones
- Midiendo las mejoras obtenidas con las optimizaciones del compilador
- Optimización precacheando punteros en accesos a elementos de una matriz
- La optimización clave en PC: jerarquía de memoria y caché
- Funcionamiento básico de la caché
- Lectura lineal y tamaños (alineamiento) para optimizar el uso de la caché
- Ganancia por uso de caché de código con código máquina del tamaño de una línea/página de caché
- Visualizando las ubicaciones de los datos en memoria para poder optimizar
- Problemas de acceso no lineal a RAM: entendiendo de forma básica la invalidación de líneas de caché
- Trasponiendo una matriz antes de multiplicar para optimizar: más de 20% de ganancia global pese a realizar más operaciones
- Importancia del buen uso de caché en motores orientados a objetos y componentes
- Adelanto: utilización de placement new para gestionar la memoria y aprovechar la coherencia lineal.
C++: Profiling basico, optimización y caché [V1_2017][Sesión 9] 6502 instruction set | |
| 23 Likes | 23 Dislikes |
| 423 views views | 2.28K followers |
| Science & Technology Creative Commons Attribution licence (reuse allowed) | Upload TimePublished on 14 Dec 2017 |
No comments:
Post a Comment