5. Brecha entre CPU y memoria 10 100 1000 1 89 91 93 95 97 99 01 x x x x x x o o o o o 386 Pentium Pentium Pro Pentium III Pentium IV velocidad de CPU (100x en 10 años) brecha de memoria velocidad de memoria RAM (10x en 8 años)
6.
7.
8.
9.
10.
11.
12.
13. Ejemplo 5 1 2 2 2 multiplicación ALU load store branch
14.
15. Otro ejemplo CPI = 0.5+0.4+0.2+0.4 CPI = 1.5 Mejora en el sistema de memoria reduce tiempo de ejecución de load y store a la mitad ¿Cuál es el nuevo CPI? CPI = 0.5+0.2+0.1+0.4 CPI = 1.2 27% 0.4 2 20% Branch 13% 0.2 2 10% Store 27% 0.4 2 20% Load 33% 0.5 1 50% ALU %Tiempo CPI i * f Ciclos Frecuencia Operación 33% 0.4 2 20% Branch 8% 0.1 1 10% Store 17% 0.2 1 20% Load 42% 0.5 1 50% ALU %Tiempo CPI i * f Ciclos Frecuencia Operación
16.
17.
18. Ejemplo M: reducción de tiempo de ejecución de load y store a la mitad 27% 0.4 2 20% Branch 13% 0.2 2 10% Store 27% 0.4 2 20% Load 33% 0.5 1 50% ALU %Tiempo CPI * f Ciclos Frecuencia Operación
19. Ejemplo: Ley de Amdahl en acción Programa ocupa el 70% del tiempo ejecutando código fácilmente paralelizable, y un 30% en código completamente secuencial (no paralelizable). ¿Cúal es la aceleración al ejecutar este programa en un computador paralelo con 2, 3, 4 y 5 CPUs? ¿Cuál es la máxima aceleración posible de alcanzar a través de paralelismo? 3.3 2.3 2.1 1.85 1.54 S inf. 5 4 3 2 N
20.
21.
22.
23. CINT2006 (spec.org) A modified version of Xalan-C++, which transforms XML documents to other document types. XML Processing C++ 483.xalancbmk Pathfinding library for 2D maps, including the well known A* algorithm. Path-finding Algorithms C++ 473.astar Uses the OMNet++ discrete event simulator to model a large Ethernet campus network. Discrete Event Simulation C++ 471.omnetpp A reference implementation of H.264/AVC, encodes a videostream using 2 parameter sets. The H.264/AVC standard is expected to replace MPEG2 Video Compression C 464.h264ref Simulates a quantum computer, running Shor's polynomial-time factorization algorithm. Physics / Quantum Computing C 462.libquantum A highly-ranked chess program that also plays several chess variants. Artificial Intelligence: chess C 458.sjeng Protein sequence analysis using profile hidden Markov models (profile HMMs) Search Gene Sequence C 456.hmmer Plays the game of Go, a simply described but deeply complex game. Artificial Intelligence: Go C 445.gobmk Vehicle scheduling. Uses a network simplex algorithm (which is also used in commercial products) to schedule public transport. Combinatorial Optimization C 429.mcf Based on gcc Version 3.2, generates code for Opteron. C Compiler C 403.gcc Julian Seward's bzip2 version 1.0.3, modified to do most work in memory, rather than doing I/O. Compression C 401.bzip2 Derived from Perl V5.8.7. The workload includes SpamAssassin, MHonArc (an email indexer), and specdiff (SPEC's tool that checks benchmark outputs). Programming Language C 400.perlbench Brief Description Application Area Benchmark
27. Ejercicio Distribución de instrucciones en programa X sobre arquitectura Y Cuál es el CPI de Y ejecutando X? 1 0.5 A 2 0.2 C 3 0.3 B CPI instrucción Frecuencia Tipo de instrucción
28. Continuación ejercicio Para la arquitectura anterior, en cuánto se aceleraría el programa si una mejora en la implementación reduce el CPI de la instrucción B a 1 ciclo? Cuál es el nuevo CPI?
29. Continuación ejercicio Durante la implementación de la mejora, se descubre que ésta sólo es posible si se aumenta el período del reloj en un 20%. Cuál es la aceleración real?