Slide 1

Slide 1 text

WHAT IS BEEHIVE LAB ABOUT? HiPEAC CSW Heraklion 2018 1 31/10/2018 https://github.com/beehive-lab Providing an ecosystem that: 1. Enables HW/SW Co-design 2. Is modular & easily extensible 3. Supports multiple hardware architectures 4. Supports multiple programming languages 5. Supports heterogeneous systems 6. Has realistic & diverse simulation infrastructures 7. Integrates popular research tools

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

BEEHIVE: APPLICATIONS LAYER • Multiple guest languages • Native language support for C, C++, Java • Guest language (Ruby, R, etc.) support via Truffle/Graal • LLVM-IR to Truffle – enable LLVM compiled languages • Benchmark Suites: • SPEC, PARSEC, DaCapo, etc. • Computer vision applications • Simultaneous Localization & Mapping (SLAM) algorithms • Big Data applications and frameworks • MapReduce, Spark, Flink, etc. HiPEAC CSW Heraklion 2018 3 31/10/2018 https://github.com/beehive-lab

Slide 4

Slide 4 text

BEEHIVE: RUNTIME LAYER – LANGUAGE VMS • MaxineVM (research) and HotSpotVM (production) • Share Truffle runtime framework (enable Ruby, R, etc.) • Share production quality optimizing compiler (Graal) HiPEAC CSW Heraklion 2018 4 31/10/2018 https://github.com/beehive-lab

Slide 5

Slide 5 text

BEEHIVE: RUNTIME LAYER – HW ACCELERATION • SIMD hardware extensions (Indigo compiler plugin) • Colin Barrett, Christos Kotselidis, Foivos S. Zakkak, Nikos Foutris, and Mikel Luján. 2017. Experiences with Building Domain-Specific Compilation Plugins in Graal. In Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang 2017). ACM, New York, NY, USA, 73-84. DOI: https://doi.org/10.1145/3132190.3132207 • GPUs and FPGAs (Tornado VM) • Effortless hardware acceleration for managed languages HiPEAC CSW Heraklion 2018 5 31/10/2018 https://github.com/beehive-lab

Slide 6

Slide 6 text

BEEHIVE: RUNTIME LAYER – SERVICES & DRIVERS • Dynamic Binary Translators and Optimizers (MAMBO) • System-level profiling & DVFS management • Enable power management at runtime/application layers HiPEAC CSW Heraklion 2018 6 31/10/2018 https://github.com/beehive-lab

Slide 7

Slide 7 text

BEEHIVE: SUPPORTED HARDWARE • CPUs • AMD64, ARMv7, AArch64, RISC-V • SIMD extensions • GPUs • DSPs • FPGAs • … HiPEAC CSW Heraklion 2018 7 31/10/2018 https://github.com/beehive-lab

Slide 8

Slide 8 text

BEEHIVE: SIMULATION • GEM5 for accurate power/performance/reliability modeling • integration with McPAT, Hotspot, and VoltSpot • … • APTSim for fast (but less accurate) simulations • Customizable accuracy simulation of memory/full- systems using binary instrumentation and FPGAs HiPEAC CSW Heraklion 2018 8 31/10/2018 https://github.com/beehive-lab

Slide 9

Slide 9 text

BEEHIVE SUMMARY • Enable full-system co-design and exploitation • Beehive is work in progress • Components are gradually being open-sourced https://github.com/beehive-lab HiPEAC CSW Heraklion 2018 9 31/10/2018 https://github.com/beehive-lab

Slide 10

Slide 10 text

MAXINE VM https://github.com/beehive-lab/Maxine-VM

Slide 11

Slide 11 text

MAXINE: A STATE-OF-THE-ART RESEARCH VM • Java 8 support (lambdas, invokedynamic, etc.) • 2-tier JIT compilation • Modular design • OpenJDK compatible • Written in Java • AMD64, ARMv7, AArch64, and RISC-V (in progress) • MMTk integration (in progress) • JVMCI integration (in progress) HiPEAC CSW Heraklion 2018 11 31/10/2018 https://github.com/beehive-lab/Maxine-VM

Slide 12

Slide 12 text

MAXINE: OVERVIEW 31/10/2018 HiPEAC CSW Heraklion 2018 12 Applications X86 ARMv7 AArch64 RISC-V OS Substrate MMTk JVMCI Truffle Graal CompilationBroker T1X C1X MonitorScheme Etc. https://github.com/beehive-lab/Maxine-VM

Slide 13

Slide 13 text

MAXINE: PASS-RATES ON JAVA 8U181 HiPEAC CSW Heraklion 2018 13 31/10/2018 75% 60% 100% 73% 90% 100% 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% AArch64 ARMv7 X86 SPECjvm2008 DaCapo *Compared to OpenJDK 8u181 https://github.com/beehive-lab/Maxine-VM

Slide 14

Slide 14 text

TORNADO VM https://github.com/beehive-lab/Tornado

Slide 15

Slide 15 text

TORNADO: EFFORTLESS HW ACCELERATION • Java HW acceleration • API + Annotation-based • Task-based programming model • Accelerates Java on CPUs, GPUs, and FPGAs • Transparent to the user data transfers/synchronization 31/10/2018 HiPEAC CSW Heraklion 2018 15 https://github.com/beehive-lab/Tornado

Slide 16

Slide 16 text

TORNADO: EXAMPLE 31/10/2018 HiPEAC CSW Heraklion 2018 16 https://github.com/beehive-lab/Tornado public static void add(int[] a, int[] b, int[] c) { for (@Parallel int i = 0; i < c.length; i++) { c[i] = a[i] + b[i]; } } … new TaskSchedule("s0") .task("t0", TestHello::add, a, b, c) .streamOut(c) .execute(); … Standard Compiler Assembler Bytecode Interpreter OCL JIT Compiler Device Heap manager Task migration manager VM in an VM Standard JVM CPUs Integrated GPUs GPUs FPGAs Standard Runtime Heterogeneous hardware Tornado Compiler Data Flow Analyzer Optimizer Tornado Bytecode Generator x86, ARM, Sparc Tornado VM

Slide 17

Slide 17 text

TORNADO: EVALUATION 31/10/2018 HiPEAC CSW Heraklion 2018 17 https://github.com/beehive-lab/Tornado

Slide 18

Slide 18 text

MAMBO https://github.com/beehive-lab/mambo

Slide 19

Slide 19 text

MAMBO: DYNAMIC BINARY MODIFICATION • Dynamic binary modification • Dynamic – at runtime • Binary – at machine code level • JIT (re)compiler of native code • Low overhead HiPEAC CSW Heraklion 2018 19 31/10/2018 https://github.com/beehive-lab/mambo

Slide 20

Slide 20 text

MAMBO: USE CASES • Micro-architectural simulation • Modify code to trigger events in the simulator • Cache Simulation • Modify loads and stores • Program analysis • Instrument calls to create call graph • Debugging • Instrument code without recompilation (e.g., on production code) • Dynamic binary translation • ARMv7 to AAarch64 • … 31/10/2018 HiPEAC CSW Heraklion 2018 20

Slide 21

Slide 21 text

MAMBO: WHY MAMBO • Variations of API • High-performance • Portable • Ease of use • Performance • Lowest base overhead among DBMs for ARM • Good performance scaling for multithreaded apps 31/10/2018 HiPEAC CSW Heraklion 2018 21

Slide 22

Slide 22 text

MAMBO: PERFORMANCE 31/10/2018 HiPEAC CSW Heraklion 2018 22

Slide 23

Slide 23 text

MAMBO: MULTITHREADING PERFORMANCE 31/10/2018 HiPEAC CSW Heraklion 2018 23

Slide 24

Slide 24 text

MAMBO: CURRENT PLUGINS • branch_count – dynamic execution counters for each type of branch (direct, indirect and returns) • cachesim – configurable cache hierarchy simulator • mtrace – records memory access traces • soft_div – dynamically replaces AArch32 hardware divide instructions with an emulation routine • memcheck (upcoming) – detects & reports memory usage errors (e.g. buffer overflows) 31/10/2018 HiPEAC CSW Heraklion 2018 24

Slide 25

Slide 25 text

MAMBO: UPCOMING TUTORIAL • November 3 @ PACT 2018, Limassol, Cyprus 31/10/2018 HiPEAC CSW Heraklion 2018 25 https://github.com/beehive-lab/mambo

Slide 26

Slide 26 text

ACKNOWLEDGEMENTS • Funded through the EU H2020 projects: • And the funded projects: • PAMELA EP/K008730/1 • DOME EP/J016330/ 31/10/2018 HiPEAC CSW Heraklion 2018 26 https://github.com/beehive-lab/mambo European Union’s Horizon H2020 research and innovation programme under grant agreements No 732366 (ACTiCLOUD) and No 780622 (E2Data)

Slide 27

Slide 27 text

Thank You!!! HiPEAC CSW Heraklion 2018 https://github.com/beehive-lab