gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured...
Transcript of gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured...
![Page 1: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/1.jpg)
gem5, INTEROPERABILITY, AND
IMPROVING SIMULATOR METHODOLOGY
Jason Lowe-Power [email protected]
@jlowepower
![Page 2: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/2.jpg)
Outline
What is gem5?
Recent gem5 features
gem5’s futureMy visionBig newsFeatures coming soon
![Page 3: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/3.jpg)
Created at Michigan by students of Steve Reinhardt,principally Nate Binkert.
“A tool for simulating systems”
3
![Page 4: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/4.jpg)
4
![Page 5: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/5.jpg)
Created at Michigan by students of Steve Reinhardt,principally Nate Binkert.
“A tool for simulating systems”
Created at Wisconsin by students of Mark Hill and David Wood.
Detailed memory system
5
![Page 6: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/6.jpg)
6
![Page 7: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/7.jpg)
Today
gem5 2011 paper cited over 3000 times
15-20% of ISCA/MICRO/HPCA papers use gem5
Thriving community project
Average of 70-ish commits per month
About 100 unique contributors over last 2 years
7
today
![Page 8: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/8.jpg)
Today
Over 400 “models”
Over 4000 parameters!
3 timing-based CPU models (simple, in order, out of order)
8 ISAs (ARM, RISC-V, x86, Alpha, Power, SPARC, MIPS, GCN3)
12 memory models (DDR3, DDR4, HBM, HMC, etc.)
42 devices (PCI, Arm platform, x86 platform, storage)
AMD GPGPU
12 cache coherence protocols
Network on chip (Garnet)
8
today
![Page 9: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/9.jpg)
Today
9
Programmatic configuration
![Page 10: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/10.jpg)
Today
10
Programmatic configuration
![Page 11: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/11.jpg)
11
![Page 12: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/12.jpg)
Today
Support for complex ML stacks
See https://github.com/KyleRoarty/gem5_docker/
Support for ARM SVE instructions
Integration with other simulators
12
today
DRAMSim2 SST
DSENT SystemC
McPAT GPGPU-Sim
![Page 13: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/13.jpg)
Simulator integration
Choose a driver
Choose an interface
13
![Page 14: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/14.jpg)
gem5 + SST
Multiple implementations
SST used as driver for gem5
But two event queues
Interface is memory requests
Separate setup for each simulator
14
![Page 15: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/15.jpg)
gem5 + SystemC
Multiple implementations…
SystemC is an IEEE standard: defines interfaces, etc.
gem5 implements SystemC
Deeply integrated with gem5’s Python API
Interface can be at any arbitrary boundary
15
![Page 16: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/16.jpg)
Simulator integration
Choose a driver
Choose an interface
Requires well-defined API
gem5 is currently a moving target
Upstreaming bridge with tests required
16
![Page 17: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/17.jpg)
17
Future vision
![Page 18: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/18.jpg)
From Hennessey and PattersonTuring Lecture
18
Future vision
![Page 19: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/19.jpg)
Future vision
Anyone (including non-architect) can download and use gem5
Used for cross-stack research:
Change kernel, change runtime, change hardware, all in concert
Run full ML stacks, full AR/VR stacks… other emerging apps
We’re close… just a lot of rough edges!
19
![Page 20: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/20.jpg)
20
Building a sustainable future
![Page 21: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/21.jpg)
Building a sustainable future
Big news: NSF funding for 3 years to “enhance community infrastructure”
Thanks to
Co-PI Matt Sinclair (U-Wisc)
AMD/Arm collaborators
Hiring a software engineer!
RE-invigorate
RE-juvinate
RE-vitalize
RE-vamp
RE-furbish
RE-novate
RE-model
RE-pair
21
![Page 22: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/22.jpg)
Jason’s unofficial roadmap
22
Su19 F19 W20 Sp20 Su20 F20 W21 Sp21 Su21 F21 W22 Sp22 Su22
Transition release 19.12
First RE-gem5 release 20.04
Releases 3 times per year
![Page 23: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/23.jpg)
We will have set releases: Likely 3-4 per yearReleases will be much more thoroughly tested and documentedCan cite “used gem5 release X”
APIs will be stable at the time of releasesNo longer chasing a moving targetDefine stable APIs and give lead for changes
Improved testingContinuous integration tests
Providing stability
23
![Page 24: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/24.jpg)
Jason’s unofficial roadmap
24
Su19 F19 W20 Sp20 Su20 F20 W21 Sp21 Su21 F21 W22 Sp22 Su22
Transition release 19.12
First RE-gem5 release 20.04
Status board
Structured approach to gem5
Known-good configurations
![Page 25: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/25.jpg)
Known-good configurations
What do you want to do with a simulator?
Take a baseline, add a new feature, and test
We will provide these baselines as “known-good configurations”
Tested at each gem5 release
Community can add workloads and new configurations
25
![Page 26: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/26.jpg)
Known-good configurations
Researchers can concentrate on one part of the system
Improved methodology sections in papers
Clearly state baselines
Readers & reviewers can better understand
Give non-architects a starting point
from gem5.model_library import DesktopSystem
26
![Page 27: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/27.jpg)
gem5 status & performance board
Shows what works and what doesn’t
Show comparison between configurations
Show comparison to hardware
Updated on each gem5 release for all known-good configurations
27
![Page 28: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/28.jpg)
Status board
28
![Page 29: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/29.jpg)
Status board
29
![Page 30: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/30.jpg)
gem5: A structured approach
30
![Page 31: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/31.jpg)
gem5: A structured approach
Set of protocols for gem5 users
Automatically records and tracks dependenciesBenchmarksAutomatic disk image creationLinux kernel
Scripts to run gem5Set structure for output to make it easy to graph thingsRun jobs on external server
31
![Page 32: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/32.jpg)
Jason’s unofficial roadmap
32
Su19 F19 W20 Sp20 Su20 F20 W21 Sp21 Su21 F21 W22 Sp22 Su22
First RE-gem5 release 20.04
gem5 summer schools & dev meetings
Tutorials at arch. conferences
Tutorials at otherconferences
Support for MLtraining and inference
Support forAR/VR SoC
gem5 GUI
Complete expanded learning gem5
![Page 33: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/33.jpg)
Other plans
Improved testing and stability (tests for the 400 models!)
New website
Community code shepherding
Many more…
33
![Page 34: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/34.jpg)
Conclusions
: Solid foundation with 15+ years of use
Thriving community
Large number of models
Flexible simulation
Building sustainable infrastructure for the next 15 years
34
![Page 35: gem5, Interoperability, and Improving Simulator Methodology · 2019. 9. 4. · gem5: A structured approach Set of protocols for gem5 users Automatically records and tracks dependencies](https://reader035.fdocuments.us/reader035/viewer/2022071409/610250cbd9d1b242ab292e60/html5/thumbnails/35.jpg)
From you
Feedback on roadmap and new features
What is missing for you to use gem5?
Ways to help: Email [email protected]
Join the advisory board
Join the dev community
Fund us!
Learn more about gem5: http://gem5.org
35