CAPS project

Download Report

Transcript CAPS project

CAPS team
Compiler and Architecture
for superscalar and embedded
processors
CAPS members
CAPS project
 2 INRIA researchers: A. Seznec, P. Michaud
 2 professors:
F. Bodin, J. Lenfant
 11 Ph D students:
R. Amicel, R. Dolbeau, A. Monsifrot , L. Bertaux,
Heydemann, L. Morin, G. Pokam, A. Djabelkhir,
Fraboulet, O. Rochecouste, E.Toullec
 3 engineers: S. Bihan, P. Villalon, J. Simonnet
2
K.
A.
CAPS project
CAPS themes
 Two interacting activities
 High
performance microprocessor
architecture
 Performance
3
oriented compilation
CAPS Grail
CAPS project
 Performance at the best cost
Progress in computer science
and applications are driven by
performance
4
CAPS path to the Grail
CAPS project
 Defining the tradeoffs between:
 what
should be done through hardware
 what
can be done by the compiler
 for maximum performance
 or for minimum cost
 or for minimum size, power ..
5
CAPS project
Need for high-performance
processors
 Current applications
 general purpose: scientific, multimedia, data bases …
 embedded systems: cell phones, automotive, set-top boxes ..
 Future applications
 don’t worry: users have a lot of imagination !
 New software engineering techniques are CPU hungry:
 reusability, generality
 portability, extensibility (indirections, virtual machines)
 safety (run-time verifications)
 encryption/decryption
6
CAPS project
CAPS (ancient) background
 « ancient » background in hardware and software
management of ILP



decoupled pipeline architectures
OPAC, an hardware matrix floating-point coprocessor
software pipeline for LIW
 « Supercomputing » background
 interleaved memories
 Fortran-S
7
CAPS project
CAPS background in architecture
 Solid knowledge in microprocessor architecture
 technological watch on microprocessors
 A. Seznec worked with Alpha Development Group in
1999-2000
 Researches in cache architecture
 Researches in branch prediction mechanisms
CAPS project
CAPS background in compilers
 Software optimizations for cache memories
 Numerical algorithms on dense structures
 Optimizing data layout
 Many prototype environments for parallel compilers:
 CT++ (with CEA): image processing C++ library for a SIMD
architecture,


Menhir: a parallel compiler for MatLab
IPF (with Thomson-LER): Fortran Compiler for
image processing
on Maspar

Sage (with Indiana): Infrastusture for source level transformation
9
CAPS project
We build on

SALTO: System for Assembly-Language Transformations and
Optimizations


retargetable assembly source to source preprocessor
Erven Rohou’s Ph. D
 TSF:
 Scripting language for program transformation on top
of ForeSys (Simulog)
 Yann Mevel’s Ph. D
10
CAPS project
Salto overview
 Assembly source to source preprocessor
 Fine grain machine description
 Independent from compilers
assembly
language
Machine
Description
SALTO
assembly
language
11
Transformation
tool
C++
CAPS project
Compiler activities
 Code optimizations for embedded applications
 infrastructures rather than compilers
 optimizing compiler strategies rather than new
code optimizations
 Global constraints

performance /code sizes/ low power (starting)
 Focus on interactive tools rather than automatic



code tuning
case based reasoning
assembly code optimizations
12
Computer aided hand tuning
 Automatic optimization has many shortcomings
CAPS project

rather provide the user with a testbed to hand-tune
applications
 Target applications

Fortran codes and embedded C applications
 Our approach

case based reasoning

static code analysis and pattern matching

profiling

learning techniques

the user is the ultimate responsible
13
CAHT
Prototype built on
CAPS project
Foresys: Fortran interactive front-end (from Simulog)
TSF: Scripting language for program transformation
Sage++: Infrastusture for source level transformation
14
CAPS project
Analysis and Tuning tool for Low Level Assembly and
Source code (with Thomson Multimedia)
 ATLLAS objectives :
 Has the compiler done a good job ?
 Try to match source and optimized assembly at fine
grain
 Development/analysis environment:
 Models for both source and assembly
 Global and local analysis (WCET, …) at both levels
 Interactive environment for codes visualization and
manual/ automatic analysis and optimization
 Built using Salto and Sage++:

Retargetable with compilers and architectures
15
ATLLAS - Analysis and Tuning tool for Low Level Assembly
and Source code : Tuning method
Source Code
End
Assembly Code
CAPS project
Yes
Code
Good
?
matching analysis and evaluations
Graphic Display of Ass. And Src. Code
Half-Automatic
or Manual Source
Optimisations
compilation
16
Half-Automatic or
Manual Assembly
Optimisations
Post-Processing
Atllas
Processing
Support
profiling
CAPS project
Assembly Level Infrastrure for Software
Enhancement (with STmicroelectonics)
 ALISE
 enhanced SALTO for code optimization:
• better integration with code generation
– interface with front-end
– interface for profiling data
• targets global optimization
• based on component software optimization
engines
 Answer to a real need from industry:
 A retargetable infrastructure
17
CAPS project
ALISE
 Environment for:
 global assembly code optimization
 providing optimization alternatives
 Support for new embedded processors
 ISAs with ILP support (VLIW, EPIC)
 Predicated instructions
 Functional unit clusters, ..
18
ALISE
CAPS project
Architecture
Description
D to M
Architecture Model
Intermediate
Code
Text
Input
Intermediate representation
Optimized
Program
High Level API
P to IR
Opt 1
Opt 2
Opt n
User interface
G.U.I.
19
IR to Ass
(Emit)
Interfaces
External
Infrastructure
External
Infrastructure
CAPS project
Preprocessor for media processors
(MEDEA+ Mesa project)
 Multimedia instructions on embedded and generalpurpose processors but :

no consensus on MMD instructions among constructors:
• saturated arithmetic or not, different instructions, …
 Multimedia instructions are not well handled by
compilers:
• but performance is very dependent
20
CAPS project
Preprocessor for media processors:
our approach
 C source to source preprocessor
 user oriented idioms recognition:


easy to retarget
target dedicated recognition
 exploiting loop parallelism
 vectorization techniques
 multiprocessor systems
 available soon
 Collaboration with Stmicroelectonics
21
CAPS project
Iterative compilation
 Embedded systems:
 Compile time is not critical
 Performance/code size/power are critical
 One can often relate on profiling
 Classical compiler: local optimizations
 but constraints are GLOBAL
 Proof of concept for code sizes (Rohou ’s Ph. D)
 new Ph. D. beginning in september 2000
22
CAPS project
High performance instruction set
simulation
 Embedded processors:
 // development of silicon, ISA, compiler and
applications
 Need for flexible instruction set simulation:
 high performance
 simulation of large codes
 debugging
 retargetable to experiment:
• new ISA
• various microarchitecture options
 First results: up to 50x faster than ad-hoc simulator
23
ABSCISS:
Assembly Based System
for Compiled Instruction Set Simulation
CAPS project
C Source
tmcc
Architecture
Description
24
TriMedia Assembly
ABSCISS
tmas
C/C++ Source
TriMedia Binary
gcc
tmsim
Compiled simulator
CAPS project
Enabling superscalar processor
simulation
 Complete O-O-O microprocessor simulation:
 10000-100000 slower than real hardware
 can not simulate realistic applications, but slices
 even fast mode emulation is slow (50-100x):
• simulation generally limited to slices at the
beginning of the application
• representativeness ?
 Calvin2 + DICE:
 combines direct execution with simulation
 really fast mode: 1-2x slowdown
 enables simulating slices distributed over the whole
application
25
Calvin2 + DICE
calvin2
Static Code Annotation Tool
CAPS project
checkpoint
Switching event
Original
code
SPARC V9
assembly
code
DICE
checkpoint
Host ISA
Emulator
checkpoint
User analysis
routines
checkpoint
Switching event
checkpoint
26
Emulation mode
CAPS project
Moving tools to IA64

New 64bit ISA from Intel/HP:
 Explicitly Parallel Instruction Computing
 Predicated Execution
 Advanced loads (i.e. speculative)
 A very interesting platform for research !!

Porting SALTO and Calvin2+DICE approach to IA64

Exploring new trade-offs enabled by instruction sets:
 predicting the predicates ?
 advanced loads against predicting dependencies
 ultimate out-of-order execution against compiler
27
CAPS project
Low power, compilation, architecture, …
(just beginning :=)

Power consumption becomes a major issue:
 Embedded and general purpose

Compilation (setting a collaboration with STmicroelectronics/Stanford/Milan):
 Is it different from performance optimization ?
 Global constraint optimization
 Instruction Set Architecture support ?

Architecture:
 High order bits are generally null, …
 registers and memory
 ALUs
28
CAPS project
Caches and branch predictors
 International CAPS visibility in architecture =
 skewed associative cache
 + decoupled sectored cache
 + multiple block ahead branch prediction
 + skewed branch predictor
 Continue recurrent work on these topics:
 multiple block ahead + tradeoffs complexity/accuracy
29
CAPS project
Simultaneous Multithreading




Sharing functional units among several processes
Among the first groups working on this topic
 S. Hily’s Ph. D.
SMT behavior well understood for independent threads
 now, focus on // threads from a single application
Current research directions:
 speculative multithreading
• ultimate performance with a single thread through
predicting threads
 performance/complexity tradeoffs: SMT/CMP/hybrid
30
« Enlarging » the instruction window
CAPS project
(supported by Intel)
 In an O-O-O processor, fireable instructions are chosen in a
window of a few tens of RISC-like instructions.
 Limitations are:
 size of the window
 number of physical registers
 Prescheduling:
 separate data flow scheduling from resource arbitration.
 coarser units of work ?
 Reducing the number of physical registers:
 how to detect when a physical register is dead ?
 Per group validation ? revisiting CISC/RISC war ?
31
Unwritten rule on superscalar
processor designs
CAPS project
 For general purpose registers:
Any physical register can be the source or
the result of any instruction executed
on any functional unit
32
4-cluster WSRS architecture
S0
S1
S0
C0
C1
S1
S2
C2
C3
S3
CAPS project
(supported by Intel)
S233
S3
•Half the read ports, one
fourth the write ports
•Register file:
• Silicon area x 1/8
• Power
x 1/2
• Access time x 0.6
•Gains on:
•bypass network
•selection logic
CAPS project
Multiprocessor on a chip
 Not just replicating board level solutions !
 A way to manage a large on-chip cache capacity:
 how can a sequential application use efficiently a distributed
cache ?
 architectural supports for distributing a sequential application
on several processors ?
 how should instructions and data be distributed ?
34
HIPSOR
CAPS project
HIgh Performance SOftware Random number generation
 Need for unpredicable random number generation:
 sequences that cannot be reproduced
 State of the art:
 < 100 bit/s using the operating system
 75Kbit/s using hardware generator on Pentium III
 Internal state of a superscalar can not be reproduced
 use this state to generate unpredictable random
numbers
35
HIPSOR (2)
CAPS project
 1000’s of unmonitorable states modified by OS interrupts
 Hardware clock counter to indirectly probe these states
 Combined with in-line pseudo-random number generation

100 Mbit/s unpredictable random numbers
ARC INRIA with CODES
36