Building opensuse with link-time optimizations. Jan Hubička and Martin Liška SUSElabs
|
|
- Lawrence Murphy
- 5 years ago
- Views:
Transcription
1 Building opensuse with link-time optimizations Jan Hubička and Martin Liška SUSElabs
2 Outlilne What is link-time optimization? Link-time optimization and GCC Benchmarks Can we build opensuse with link-time optimization by default?
3 What is link-time optimization?
4 Per-file compilation File1.c GCC File1.o File2.c GCC File2.o File3.c GCC File3.o ld / gold a.out File4.c GCC File4.o
5 Link-time optimization File1.c GCC File1.o IL ld / gold a.out File2.c GCC File2.o IL File3.c GCC File3.o IL LTO plug-in link-time compiler File4.c GCC File4.o IL
6 Benefits of LTO Symbol promotion (from linker s resolution data most symbols become static ) Cross-module inlining, constant propagation Aggressive unreachable code removal Profile propagation EH optimization (propagation of nothrow ) Identical code folding Optimized code layout and more :)
7 Problems of LTO Whole toolchain has to be restructured Slow compile-edit cycle Harder bugreports (often whole program needed to reproduce issue) Not 100% transparent to user, but in most cases all one needs to do is to add -flto
8 Link-time optimization and GCC
9 Modernizing GCC (LTO perspective) 1999 (GCC 2.95): Function-at-a-time 2001 (GCC 3.0): New inliner (first high-level opt. in gcc) 2004 (GCC 3.4): Unit-at-a-time; intermodule compilation for C; Inter-procedural optimization framework 2005 (GCC 4.0): New SSA optimization framework 2006 (GCC 4.1): Inter-procedural optimizations: profile guided inlining, pure/const discovery, mod/ref, inter-procedural constant propagation, --fwhole-program combine 2008 (GCC 4.4): Inter-procedural optimization on SSA; early optimization and inlining (GCC 4.5): Basic LTO framework (5 years in development) 2011 (GCC 4.6): WHOPR (parallel link-time optimization); Firefox builds
10 Link-time optimization File1.c GCC File1.o IL ld / gold a.out File2.c GCC File2.o IL File3.c GCC File3.o IL LTO plug-in link-time compiler File4.c GCC File4.o IL
11 Parallelized Link-time optimization (WHOPR) File1.c GCC File1.o IL ld / gold a.out File2.c GCC File2.o IL File3.c GCC File3.o IL LTO plguin Local opt. File4.c GCC File4.o IL Whole Program Analysis Local opt. Local opt
12 Modernizing GCC (LTO perspective) 2012 (GCC 4.7.0): Memory use optimizations, new inliner heuristics, new inter-procedural constant propagation with clonning 2013 (GCC 4.8.0): symbol table; propagation of values passed through aggregates 2014 (GCC 4.9.0): slim LTO objects by default; on demand loading of functions; devirtualization pass; feedback directed code layout 2015 (GCC 5): Identical Code Folding; COMDAT optimization; One Definition Rule for C++; alignment propagation; correct command line options handling with LTO 2016 (GCC 6): Linker-plugin now detects type of output binary. C&Fortran type merging. Better alias anaysis 2017 (GCC 7): Inter-procedural value range propagaion; bitwise propagation 2018 (GCC 8): Early debug info. Profile representation rewrite. Function splitting now by default. Reworked runtime estimation; Malloc attribute propagation
13 GCC optimization pipeline Compile time Parser IL generation Early opts: Early Inliner Constant prop. Forwward prop. Jump threading Scalar repl. of aggr. Alias analysis Redundancy ellim. Dead store ellim. Dead code ellim. Tail recursion Switch conversion pure/const/nothrow EH optimization Profile guessing IP analysis streaming out Link-time serial Streaming Symbol in & symbols, type types streaming and declarations in + merging & link Inter-procedural (whole program) Opts: Dead symbol ellim. Symbol promotion profile analysis Identical code folding devirtualization Constant propagation const/destr merging Inlining pure/const/nothrow mod/ref comdat Partitioning streaming out Link-time parallel Stream in and apply transformations High level opts: Constant prop. Complette unroll Forward prop. Alias analysis Return slot opt. Redudancy ellim. Jump threading Dead code ellim. Conditional store ellim. Copy prop. If combine Tail recursion Copy loop headers Scalar repl. of aggr. Dead store ellim. Dead code ellim. Reassociation Sincos, bswap opt. Loop invariant motion Partial redundancy ellim. Loop splitting Unroll and jam Loop dsitribution Loop interchange... Low level opts: Common subexpression ellim. Forward propagation Copy propagation Partial Redundancy Ellim. Code hoisting Copy propagation Store motion If conversion Loop invariant motion Loop unrolling Doloop optimization Web construction Copy propagation Common subexpression ellim. Dead store ellim. Instruction combine Function partitioning Instruction splitting Live range shrinking Scheduling Register allocation Global common subexpr. Ellim. Shrink wrapping Stack adjustment opt. Register renaming Constant prop. Code reordering Scheduling X87 register stack Code/data alignment Machine dependent reorg. Code output
14 Benchmarks
15 SPECint 2006 performance (relative to GCC 6) generic native GCC 7 -O2 GCC 8 -O2
16 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast
17 SPECint 2006 performance (relative GCC -Ofast relative to to GCC 6 -O26) GCC 6 GCC 7 GCC mcf 458.sjeng 445.gobmk 403.gcc 462.libquantum 473.astar 464.h264ref 471.omnetpp 401.bzip2 483.xalancbmk 400.perlbench 456.hmmer Geomean generic native 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast
18 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast
19 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast
20 0 SPECint 2006 performance (relative to GCC 6) Clang & ICC -Ofast relative to GCC perlbench 401.bzip2 403.gcc 429.mcf 445.gobmk 456.hmmer 458.sjeng 462.libquantum 464.h264ref 471.omnetpp 473.astar 483.xalancbmk Geomean clang/flang 6 ICC generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast
21 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast
22 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto
23 SPECint 2006 performance (relative to GCC 6) GCC -Ofast -flto relative to -Ofast perlbench bzip gcc 429.mcf 445.gobmk 456.hmmer 458.sjeng 462.libquantum 464.h264ref 471.omnetpp 473.astar 483.xalancbmk Geomean generic native GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto
24 SPECint 2006 performance (relative to GCC 6) generic native 2 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto
25 SPECint 2006 performance (relative to GCC 6) generic native 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto clang/fllang 6 -Ofast -flto ICC 18 -Ofast -flto
26 SPECint 2006 performance (relative to GCC 6) Clang/flang 6 and ICC 18 relative to GCC 8 (-O2 -flto) clang/flang 6 ICC perlbench 401.bzip2 GCC 7 -O2 GCC 8 -O2 403.gcc 429.mcf 445.gobmk 456.hmmer GCC 6 -Ofast 464.h264ref GCC 8 -Ofast 458.sjeng 462.libquantum 471.omnetpp GCC 7 -Ofast 473.astar 483.xalancbmk Geomean clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto clang/fllang 6 -Ofast -flto ICC 18 -Ofast -flto generic native
27 SPECint 2006 performance (relative to GCC 6) generic native 0 GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast clang/flang 6 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto clang/fllang 6 -Ofast -flto ICC 18 -Ofast -flto
28 Profile feedback & LTO works well together 25 Performance relative to GCC 8 -Ofast LTO FDO FDO+LTO perlbench bzip2 403.gcc 429.mcf 445.gobmk 458.sjeng 462.libquantum 464.h264ref 471.omnetpp 473.astar 483.xalancbmk Geomean Hmmer benchmark has problems; was excluded. To build with profile feedback often you can use:./configure ; CFLAGS= -O2 -fprofile-generate make ; make check ; make clean ; CFLAGS= -O2 -fprofile-use make
29 SPECint 2006 code size Non-LTO LTO GCC 7 -O2 GCC 8 -O2 GCC 7 -Ofast GCC 8 -OfastGCC 8 -Ofast + FDO Clang 6 -O2 Clang 6 -Ofast Icc 18 -Ofast
30 SPECfp 2006 performance (relative to GCC 6) generic native GCC 7 -O2 GCC 8 -O2 GCC 6 -Ofast GCC 7 -Ofast GCC 8 -Ofast ICC 18 -Ofast GCC 8 -O2 -flto GCC 8 -Ofast lto ICC 18 -Ofast -flto
31 Firefox performance summary 35 Firefox performance relative to non-lto build static Profile feedback responsiveness tp5o dromaeo dom Displaylist mutate tap paint speedometer a11yr svgr_opacity tp5o ARES6 stylebench tart dromaeo css tsvgx startup time
32 Firefox performance dromaeo DOM
33 Firefox performance tp5o page responsiveness
34 Firefox binary size gcc6 -O3 -flto + FDO gcc7 -O3 -flto + FDO gcc8 -O3 -flto + FDO gcc8 -O3 gcc8 -O2 gcc8 -O3 + FDO gcc8 -Os gcc8 -O3 -flto gcc8 -O2 -flto gcc8 -O3 -flto + FDO gcc8 -Os -flto clang6 -O3 clang6 -O3 + FDO clang6 -O2 clang6 -Os clang6 -Oz EH data relocations text clang6 -O3 -flto=thin clang6 -O3 -flto clang6 O3 -flto + FDO clang6 -O3 -flto=thin + FDO clang6 -O2 -flto clang6 -Oz -flto=thin clang6 -Oz -flto
35 Firefox binary size gcc6 -O3 -flto + FDO gcc7 -O3 -flto + FDO gcc8 -O3 -flto + FDO gcc8 -O3 gcc8 -O2 gcc8 -O3 + FDO gcc8 -Os gcc8 -O3 -flto gcc8 -O2 -flto gcc8 -O3 -flto + FDO gcc8 -Os -flto clang6 -O3 clang6 -O3 + FDO clang6 -O2 clang6 -Os clang6 -Oz EH data relocations text clang6 -O3 -flto=thin clang6 -O3 -flto clang6 O3 -flto + FDO clang6 -O3 -flto=thin + FDO clang6 -O2 -flto clang6 -Oz -flto=thin clang6 -Oz -flto
36 Firefox binary size gcc6 -O3 -flto + FDO gcc7 -O3 -flto + FDO gcc8 -O3 -flto + FDO gcc8 -O3 gcc8 -O2 gcc8 -O3 + FDO gcc8 -Os gcc8 -O3 -flto gcc8 -O2 -flto gcc8 -O3 -flto + FDO gcc8 -Os -flto clang6 -O3 clang6 -O3 + FDO clang6 -O2 clang6 -Os clang6 -Oz EH data relocations text clang6 -O3 -flto=thin clang6 -O3 -flto clang6 O3 -flto + FDO clang6 -O3 -flto=thin + FDO clang6 -O2 -flto clang6 -Oz -flto=thin clang6 -Oz -flto
37 Firefox binary size gcc6 -O3 -flto + FDO gcc7 -O3 -flto + FDO gcc8 -O3 -flto + FDO gcc8 -O3 gcc8 -O2 gcc8 -O3 + FDO gcc8 -Os gcc8 -O3 -flto gcc8 -O2 -flto gcc8 -O3 -flto + FDO gcc8 -Os -flto clang6 -O3 clang6 -O3 + FDO clang6 -O2 clang6 -Os clang6 -Oz EH data relocations text clang6 -O3 -flto=thin clang6 -O3 -flto clang6 O3 -flto + FDO clang6 -O3 -flto=thin + FDO clang6 -O2 -flto clang6 -Oz -flto=thin clang6 -Oz -flto
38 Firefox binary size gcc6 -O3 -flto + FDO gcc7 -O3 -flto + FDO gcc8 -O3 -flto + FDO gcc8 -O3 gcc8 -O2 gcc8 -O3 + FDO gcc8 -Os gcc8 -O3 -flto gcc8 -O2 -flto gcc8 -O3 -flto + FDO gcc8 -Os -flto clang6 -O3 clang6 -O3 + FDO clang6 -O2 clang6 -Os clang6 -Oz EH data relocations text clang6 -O3 -flto=thin clang6 -O3 -flto clang6 O3 -flto + FDO clang6 -O3 -flto=thin + FDO clang6 -O2 -flto clang6 -Oz -flto=thin clang6 -Oz -flto
39 Summary LTO now works and scale for large applications (Firefox, Libreoffice, ) Important size optimization especially for large C++ programs Often important performance optimization especially when combined with profile feedback Space for future improvements (both on GCC side and re-optimization of programs to LTO model)
40 LTO in opensuse Factory
41 LTO in opensuse Factory A new staging project (opensuse:factory:staging:n) Setting: Optflags: * -flto ~80 packages failed (out of all ~2300) Branch all failing packages and disable LTO LTO Factory (w/ some disabled packages) can run openqa testsuite (with a small fallout)
42 Package statistics Total ELF files in distribution: ~6700 Reduction: 1839 MB to 1736MB (-5.6%) libmergedlo.so: reduction 10MB (-16%) Biggest reduction: mysql_upgrade (-92%) Innochecksum (-94%) mbstream (-94%)
43 Issues Argyllcms: lto1: fatal error: multiple prevailing defs for 'xcal_read_icc': LD PR: GCC LTO miscompilation: in shared libraries: asm (".symver New symver function attribute must be added (GCC 9.1.0)
44 Issues (cont.) static libraries (*.la): e2fsprogs, btrfsprogs, Fat LTO objects must be used (-ffat-lto-objects) LTO elf sections should be stripped OBS sanitizer should be extended LTO mode can combine both LTO objects and assembly objects
45 Issues (cont. 2) LTO warnings (-Wodr,...): ltrace: error: type of 'filter_matches_symbol' does not match original declaration [-Werror=lto-type-mismatch] gdb: error: type 'struct ipa_sym_addresses' violates the C++ One Definition Rule [-Werror=odr] mpir: weak configure script that scans *.o file as a blob weak support for LTO debug info in dwz tool Maybe higher memory constaints for selected packages
46 Issues (cont. 3) Usage of top-level assembler ( Example of syscall.cc in Chromium project: asm volatile(".text\n" ".align 16, 0x90\n" ".type "SyscallAsm:.cfi_startproc\n" Error:nacl_helper.ltrans1.ltrans.o: In function `playground2::sandboxsyscall(int, long, long, long, long, long, long)': nacl_helper.ltrans1.o:(.text+0x4503): undefined reference to `SyscallAsm'
47 Histogram of text segment sizes ,000,000 10,000,000 15,000,000 20,000,000 25,000,000 30,000,000 35,000,000 40,000,000
48 Conclusion LTO looks mature enough to be used by default Do we want it for opensuse Factory? For the future, can we offer it also for SLE?
49 License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at General Disclaimer This document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. opensuse makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for opensuse products remains at the sole discretion of opensuse. Further, opensuse reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All opensuse marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. Credits Template Richard Brown rbrown@opensuse.org Design & Inspiration opensuse Design Team
openqa features capabilities bugs Ondrej Holecek /aaannz/
openqa features capabilities bugs Ondrej Holecek /aaannz/ oholecek@suse.com What makes openqa User focused 3 Watching the screen User focused 4 Watching the screen Keyboard and mouse input User focused
More informationopenqa making QA interesting since 2013 Ondrej Holecek /aaannz/
openqa making QA interesting since 2013 Ondrej Holecek /aaannz/ oholecek@suse.com opensuse storytime opensuse walking packaging stuff build check release time? manual QA 3 release/ milestone opensuse Leap-ing
More informationCollecting data from IoT devices using Sigfox network
Collecting data from IoT devices using Sigfox network Making data collection easier Jan Krupa Operations Engineer JKrupa@suse.com About me IoT networks Sigfox network What is Sigfox Sigfox employs
More informationopenqa Avoiding Disasters of Biblical Proportions Marita Werner QA Project Manager
openqa Avoiding Disasters of Biblical Proportions Marita Werner QA Project Manager mawerner@suse.com Testing is HARD - Everyone who has built any software, ever. 2 Upstreams Upstream projects are moving
More informationZdeněk Kubala Senior QA
(Kernel) Isolation PV, HVM, OS-V technologies in Linux Introduction and description of the isolation diferences between HM, PV and OS-level virt. technologies. Zdeněk Kubala Senior QA Engineer zkubala@suse.com
More informationA Fast Instruction Set Simulator for RISC-V
A Fast Instruction Set Simulator for RISC-V Maxim.Maslov@esperantotech.com Vadim.Gimpelson@esperantotech.com Nikita.Voronov@esperantotech.com Dave.Ditzel@esperantotech.com Esperanto Technologies, Inc.
More informationSuper-optimizing LLVM IR
Super-optimizing LLVM IR Duncan Sands DeepBlueCapital / CNRS Thanks to Google for sponsorship Super optimization Optimization Improve code Super optimization Optimization Improve code Super-optimization
More informationopenqa Avoiding Disasters of Biblical Proportions Marita Werner QA Project Manager
openqa Avoiding Disasters of Biblical Proportions Marita Werner QA Project Manager mawerner@suse.com Testing is HARD - Everyone who has built any software, ever. Upstreams Upstream projects are moving
More informationCompiler Optimization
Compiler Optimization The compiler translates programs written in a high-level language to assembly language code Assembly language code is translated to object code by an assembler Object code modules
More informationAMD S X86 OPEN64 COMPILER. Michael Lai AMD
AMD S X86 OPEN64 COMPILER Michael Lai AMD CONTENTS Brief History AMD and Open64 Compiler Overview Major Components of Compiler Important Optimizations Recent Releases Performance Applications and Libraries
More informationUpdating the Compiler?
Updating the Compiler? Take Advantage of The New Development Toolchain Andreas Jaeger Product Manager aj@suse.com Programming Languages C C++ Fortran And Go 2 Why new compiler? Faster applications Support
More informationPushing The Limits Of Linux On ARM
Pushing The Limits Of Linux On ARM LinuxCon Japan 2015 Andreas Färber afaerber@suse.de Overview Definition of Linux on ARM Transitioning from Embedded to Servers & Desktops Pushing the limits in general
More information96Boards Enablement for opensuse
96Boards Enablement for opensuse Progress Report and Remaining Issues Andreas Färber Expert Virtualization andreas.faerber@suse.com The Presenter and ARM Background in virtualization software (QEMU) Involved
More informationLLVM Performance Improvements and Headroom
LLVM Performance Improvements and Headroom Gerolf Hoflehner Apple LLVM Developers Meeting 2015 San Jose, CA Messages Tuning and focused local optimizations Advancing optimization technology Getting inspired
More informationOptimizing large applications
Optimizing large applications Honza Hubička SuSE ČR s.r.o Martin Liška Charles University SUSElabs conf, 2013 Outline Massive performance regression from switching to gcc 4.5 Hi, Just wanted to give a
More informationThinLTO. A Fine-Grained Demand-Driven Infrastructure. Teresa Johnson, Xinliang David Li
ThinLTO A Fine-Grained Demand-Driven Infrastructure Teresa Johnson, Xinliang David Li tejohnson,davidxl@google.com Outline CMO Background ThinLTO Motivation and Overview ThinLTO Details Build System Integration
More informationSamba and Ceph. Release the Kraken! David Disseldorp
Samba and Ceph Release the Kraken! David Disseldorp ddiss@samba.org Agenda Ceph Overview State of Samba Integration Performance Outlook Ceph Distributed storage system Scalable Fault tolerant Performant
More informationThe CephFS Gateways Samba and NFS-Ganesha. David Disseldorp Supriti Singh
The CephFS Gateways Samba and NFS-Ganesha David Disseldorp ddiss@samba.org Supriti Singh supriti.singh@suse.com Agenda Why Exporting CephFS over Samba and NFS-Ganesha What Architecture & Features Samba
More informationOpen Enterprise & Open Community
Open Enterprise & Open Community Working Together Richard Brown opensuse Chairman SUSE Linux GmbH Andrew Wafaa Principal Engineer, Open Source ARM Ltd Stephan Kulow opensuse Release Manager SUSE Linux
More informationFrom GIT to a custom OS image in a few click OS image made easy
From GIT to a custom OS image in a few click OS image made easy Frédéric Crozat Senior Software Engineer SUSE fcrozat@suse.com Goals Create ISO live image to ease testing Automate image creation as much
More informationLightweight Memory Tracing
Lightweight Memory Tracing Mathias Payer*, Enrico Kravina, Thomas Gross Department of Computer Science ETH Zürich, Switzerland * now at UC Berkeley Memory Tracing via Memlets Execute code (memlets) for
More informationClang - the C, C++ Compiler
Clang - the C, C++ Compiler Contents Clang - the C, C++ Compiler o SYNOPSIS o DESCRIPTION o OPTIONS SYNOPSIS clang [options] filename... DESCRIPTION clang is a C, C++, and Objective-C compiler which encompasses
More informationBuilding a Runnable Program and Code Improvement. Dario Marasco, Greg Klepic, Tess DiStefano
Building a Runnable Program and Code Improvement Dario Marasco, Greg Klepic, Tess DiStefano Building a Runnable Program Review Front end code Source code analysis Syntax tree Back end code Target code
More informationEvaluation of RISC-V RTL with FPGA-Accelerated Simulation
Evaluation of RISC-V RTL with FPGA-Accelerated Simulation Donggyu Kim, Christopher Celio, David Biancolin, Jonathan Bachrach, Krste Asanovic CARRV 2017 10/14/2017 Evaluation Methodologies For Computer
More informationThe opensuse project. Motivation, Goals, and Opportunities. Sonja Krause-Harder Michael Löffler. March 6, 2006
The opensuse project Motivation, Goals, and Opportunities Sonja Krause-Harder Michael Löffler March 6, 2006 What is opensuse / SUSE Linux? opensuse is a community project (not a distribution) wiki, mailinglist,
More informationEssentials. Johannes Meixner. about Disaster Recovery (abbreviated DR) with Relax-and-Recover (abbreviated ReaR)
Essentials about Disaster Recovery (abbreviated DR) with Relax-and-Recover (abbreviated ReaR) Johannes Meixner Why DR with ReaR matters Relax-and-Recover is currently used in particular
More informationCoverage-guided Fuzzing of Individual Functions Without Source Code
Coverage-guided Fuzzing of Individual Functions Without Source Code Alessandro Di Federico Politecnico di Milano October 25, 2018 1 Index Coverage-guided fuzzing An overview of rev.ng Experimental results
More informationLLVM performance optimization for z Systems
LLVM performance optimization for z Systems Dr. Ulrich Weigand Senior Technical Staff Member GNU/Linux Compilers & Toolchain Date: Mar 27, 2017 2017 IBM Corporation Agenda LLVM on z Systems Performance
More informationCloud in a box. Fully automated installation of SUSE Openstack Cloud 5 on Dell VRTX. Lars Everbrand. Software Developer
Cloud in a box Fully automated installation of SUSE Openstack Cloud 5 on Dell VRTX Lars Everbrand Software Developer lars.everbrand@ericsson.com 2 From 3 To Introduction Disclaimer All views expressed
More informationCS377P Programming for Performance Single Thread Performance Out-of-order Superscalar Pipelines
CS377P Programming for Performance Single Thread Performance Out-of-order Superscalar Pipelines Sreepathi Pai UTCS September 14, 2015 Outline 1 Introduction 2 Out-of-order Scheduling 3 The Intel Haswell
More informationMicroarchitecture Overview. Performance
Microarchitecture Overview Prof. Scott Rixner Duncan Hall 3028 rixner@rice.edu January 15, 2007 Performance 4 Make operations faster Process improvements Circuit improvements Use more transistors to make
More informationUnder the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world.
Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Supercharge your PS3 game code Part 1: Compiler internals.
More informationKruiser: Semi-synchronized Nonblocking Concurrent Kernel Heap Buffer Overflow Monitoring
NDSS 2012 Kruiser: Semi-synchronized Nonblocking Concurrent Kernel Heap Buffer Overflow Monitoring Donghai Tian 1,2, Qiang Zeng 2, Dinghao Wu 2, Peng Liu 2 and Changzhen Hu 1 1 Beijing Institute of Technology
More informationHow To Make Databases on SUSE Linux Enterprise Server Highly Available Mike Friesenegger
How To Make Databases on SUSE Linux Enterprise Server Highly Available Mike Friesenegger SUSE Sales Engineer mikef@suse.com Agenda Clarify the term "Availability" What is High Availability Minimize a Database
More informationNovell SLES 10/Xen. Roadmap Presentation. Clyde R. Griffin Manager, Xen Virtualization Novell, Inc. cgriffin at novell.com.
Novell SLES 10/Xen Roadmap Presentation Clyde R. Griffin Manager, Xen Virtualization Novell, Inc. cgriffin at novell.com September 8, 2006 SUSE Linux Enterprise Server 10 SLES 10 w/xen 3.0.2 is now available
More informationMeasuring the User Debugging Experience. Greg Bedwell Sony Interactive Entertainment
Measuring the User Debugging Experience Greg Bedwell Sony Interactive Entertainment introducing DExTer introducing Debugging Experience Tester introducing Debugging Experience Tester (currently in internal
More informationIntroduction to Compilers
Introduction to Compilers Compilers are language translators input: program in one language output: equivalent program in another language Introduction to Compilers Two types Compilers offline Data Program
More informationINSTRUCTION LEVEL PARALLELISM
INSTRUCTION LEVEL PARALLELISM Slides by: Pedro Tomás Additional reading: Computer Architecture: A Quantitative Approach, 5th edition, Chapter 2 and Appendix H, John L. Hennessy and David A. Patterson,
More informationWelcome to SUSE Expert Days 2017 Service Delivery with DevOps
Welcome to SUSE Expert Days 2017 Service Delivery with DevOps Changing Application Service Delivery with DevOps 2 Key Components for DevOps Success Good habits and people Development done now Automate
More informationUCB CS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 36 Performance 2010-04-23 Lecturer SOE Dan Garcia How fast is your computer? Every 6 months (Nov/June), the fastest supercomputers in
More informationLanguage Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.
Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation
More informationCode Merge. Flow Analysis. bookkeeping
Historic Compilers Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University have explicit permission to make copies of these materials
More informationBaikal-T1 Microprocessor Performance Tests
Baikal-T1 Microprocessor Performance Tests Revision list Revision Date Author Description 1.0 15.03.2017 Initial version 1.1 08.08.2017 Added SPEC CPU2006 Int, iperf results Revision list... 1 1. List
More informationOverview of a Compiler
Overview of a Compiler Copyright 2015, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have explicit permission to make copies of
More informationKhem Raj Embedded Linux Conference 2014, San Jose, CA
Khem Raj khem@himvis.com Embedded Linux Conference 2014, San Jose, CA } Introduction } What is GCC } General Optimizations } GCC specific Optimizations } Embedded Processor specific Optimizations } What
More informationIntroduction to Software Defined Infrastructure SUSE Linux Enterprise 15
Introduction to Software Defined Infrastructure SUSE Linux Enterprise 15 Matthias G. Eckermann Director Product Management SUSE Linux Enterprise Helsinki, 2018-03-08 SUSE Software-defined Infrastructure
More informationIA-64 Compiler Technology
IA-64 Compiler Technology David Sehr, Jay Bharadwaj, Jim Pierce, Priti Shrivastav (speaker), Carole Dulong Microcomputer Software Lab Page-1 Introduction IA-32 compiler optimizations Profile Guidance (PGOPTI)
More informationOverview of a Compiler
Overview of a Compiler Copyright 2017, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have explicit permission to make copies of
More informationIntroduction. No Optimization. Basic Optimizations. Normal Optimizations. Advanced Optimizations. Inter-Procedural Optimizations
Introduction Optimization options control compile time optimizations to generate an application with code that executes more quickly. Absoft Fortran 90/95 is an advanced optimizing compiler. Various optimizers
More informationThe SGI Pro64 Compiler Infrastructure - A Tutorial
The SGI Pro64 Compiler Infrastructure - A Tutorial Guang R. Gao (U of Delaware) J. Dehnert (SGI) J. N. Amaral (U of Alberta) R. Towle (SGI) Acknowledgement The SGI Compiler Development Teams The MIPSpro/Pro64
More informationOverview of a Compiler
High-level View of a Compiler Overview of a Compiler Compiler Copyright 2010, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have
More informationResource-Conscious Scheduling for Energy Efficiency on Multicore Processors
Resource-Conscious Scheduling for Energy Efficiency on Andreas Merkel, Jan Stoess, Frank Bellosa System Architecture Group KIT The cooperation of Forschungszentrum Karlsruhe GmbH and Universität Karlsruhe
More informationIntroduction to Machine-Independent Optimizations - 1
Introduction to Machine-Independent Optimizations - 1 Department of Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of
More informationPackaging made easy. How the opensuse build service makes building packages easy for developers who don't care about packaging
Packaging made easy How the opensuse build service makes building packages easy for developers who don't care about packaging Cornelius Schumacher Motivation Packaging: Creating installable
More information15-411: LLVM. Jan Hoffmann. Substantial portions courtesy of Deby Katz
15-411: LLVM Jan Hoffmann Substantial portions courtesy of Deby Katz and Gennady Pekhimenko, Olatunji Ruwase,Chris Lattner, Vikram Adve, and David Koes Carnegie What is LLVM? A collection of modular and
More informationThe View from 35,000 Feet
The View from 35,000 Feet This lecture is taken directly from the Engineering a Compiler web site with only minor adaptations for EECS 6083 at University of Cincinnati Copyright 2003, Keith D. Cooper,
More informationM2 Instruction Set Architecture
M2 Instruction Set Architecture Module Outline Addressing modes. Instruction classes. MIPS-I ISA. Translating and starting a program. High level languages, Assembly languages and object code. Subroutine
More informationLecture 20 CIS 341: COMPILERS
Lecture 20 CIS 341: COMPILERS Announcements HW5: OAT v. 2.0 records, function pointers, type checking, array-bounds checks, etc. Due: TOMORROW Wednesday, April 11 th Zdancewic CIS 341: Compilers 2 A high-level
More informationCSE 501: Compiler Construction. Course outline. Goals for language implementation. Why study compilers? Models of compilation
CSE 501: Compiler Construction Course outline Main focus: program analysis and transformation how to represent programs? how to analyze programs? what to analyze? how to transform programs? what transformations
More informationFlang - the Fortran Compiler SYNOPSIS DESCRIPTION. Contents. Flang the Fortran Compiler. flang [options] filename...
Flang - the Fortran Compiler Contents Flang the Fortran Compiler o SYNOPSIS o DESCRIPTION o OPTIONS SYNOPSIS flang [options] filename... DESCRIPTION Flang is the Fortran front-end designed for integration
More informationLink 3. Symbols. Young W. Lim Mon. Young W. Lim Link 3. Symbols Mon 1 / 42
Link 3. Symbols Young W. Lim 2017-09-11 Mon Young W. Lim Link 3. Symbols 2017-09-11 Mon 1 / 42 Outline 1 Linking - 3. Symbols Based on Symbols Symbol Tables Symbol Table Examples main.o s symbol table
More informationBOV89296 SUSE Best Practices Sharing Expertise, Experience and Knowledge. Christoph Wickert Technical Writer SUSE /
BOV89296 SUSE Best Practices Sharing Expertise, Experience and Knowledge Christoph Wickert Technical Writer SUSE / cwickert@suse.com AGENDA The SUSE Documentation Team SUSE Best Practices Open Source Tools
More informationWhat run-time services could help scientific programming?
1 What run-time services could help scientific programming? Stephen Kell stephen.kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Contrariwise... 2 Some difficulties of software performance!
More informationImproving Cache Performance by Exploi7ng Read- Write Disparity. Samira Khan, Alaa R. Alameldeen, Chris Wilkerson, Onur Mutlu, and Daniel A.
Improving Cache Performance by Exploi7ng Read- Write Disparity Samira Khan, Alaa R. Alameldeen, Chris Wilkerson, Onur Mutlu, and Daniel A. Jiménez Summary Read misses are more cri?cal than write misses
More informationControl Flow Analysis
Control Flow Analysis Last time Undergraduate compilers in a day Today Assignment 0 due Control-flow analysis Building basic blocks Building control-flow graphs Loops January 28, 2015 Control Flow Analysis
More informationCompiler Passes. Optimization. The Role of the Optimizer. Optimizations. The Optimizer (or Middle End) Traditional Three-pass Compiler
Compiler Passes Analysis of input program (front-end) character stream Lexical Analysis Synthesis of output program (back-end) Intermediate Code Generation Optimization Before and after generating machine
More informationGAS Tutorial - 7. Directives (3)
GAS Tutorial - 7. Directives (3) Young W. Lim 2016-07-13 Thr Young W. Lim GAS Tutorial - 7. Directives (3) 2016-07-13 Thr 1 / 48 Outline 1 Section Related Directivqes Young W. Lim GAS Tutorial - 7. Directives
More informationCall Paths for Pin Tools
, Xu Liu, and John Mellor-Crummey Department of Computer Science Rice University CGO'14, Orlando, FL February 17, 2014 What is a Call Path? main() A() B() Foo() { x = *ptr;} Chain of function calls that
More informationUCB CS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 38 Performance 2008-04-30 Lecturer SOE Dan Garcia How fast is your computer? Every 6 months (Nov/June), the fastest supercomputers in
More informationATOS introduction ST/Linaro Collaboration Context
ATOS introduction ST/Linaro Collaboration Context Presenter: Christian Bertin Development team: Rémi Duraffort, Christophe Guillon, François de Ferrière, Hervé Knochel, Antoine Moynault Consumer Product
More informationBest practices with SUSE Linux Enterprise Server Starter System and extentions Ihno Krumreich
Best practices with SUSE Linux Enterprise Server Starter System and extentions Ihno Krumreich Project Manager for Linux on System z Ihno@SUSE.de SHARE Atlanta 2012 Session 10728 Reasoning Requirements
More informationArchitecture of Parallel Computer Systems - Performance Benchmarking -
Architecture of Parallel Computer Systems - Performance Benchmarking - SoSe 18 L.079.05810 www.uni-paderborn.de/pc2 J. Simon - Architecture of Parallel Computer Systems SoSe 2018 < 1 > Definition of Benchmark
More informationTour of common optimizations
Tour of common optimizations Simple example foo(z) { x := 3 + 6; y := x 5 return z * y } Simple example foo(z) { x := 3 + 6; y := x 5; return z * y } x:=9; Applying Constant Folding Simple example foo(z)
More informationExploring History with Hawk
Exploring History with Hawk An Introduction to Cluster Forensics Kristoffer Grönlund High Availability Software Developer kgronlund@suse.com This tutorial High Availability in 5 minutes Introduction to
More informationlld: A Fast, Simple and Portable Linker Rui Ueyama LLVM Developers' Meeting 2017
lld: A Fast, Simple and Portable Linker Rui Ueyama LLVM Developers' Meeting 2017 Talk overview 1. Implementation status 2. Design goals 3. Comparisons with other linkers 4. Concurrency
More informationDragonEgg - the Fortran compiler
DragonEgg - the Fortran compiler Contents DragonEgg - the Fortran compiler o SYNOPSIS o DESCRIPTION o BUILD DRAGONEGG PLUGIN o USAGE OF DRAGONEGG PLUGIN TO COMPILE FORTRAN PROGRAM o LLVM Optimizations
More informationDocker Networking In OpenStack What you need to know now. Fawad Khaliq
Docker Networking In OpenStack What you need to know now Fawad Khaliq About Me OpenStack Community Member Developer in Neutron Maintainer of PLUMgrid Neutron Plugin (networking-plumgrid) How to contact
More informationArchitectural Supports to Protect OS Kernels from Code-Injection Attacks
Architectural Supports to Protect OS Kernels from Code-Injection Attacks 2016-06-18 Hyungon Moon, Jinyong Lee, Dongil Hwang, Seonhwa Jung, Jiwon Seo and Yunheung Paek Seoul National University 1 Why to
More informationUSC 227 Office hours: 3-4 Monday and Wednesday CS553 Lecture 1 Introduction 4
CS553 Compiler Construction Instructor: URL: Michelle Strout mstrout@cs.colostate.edu USC 227 Office hours: 3-4 Monday and Wednesday http://www.cs.colostate.edu/~cs553 CS553 Lecture 1 Introduction 3 Plan
More informationOptimization Prof. James L. Frankel Harvard University
Optimization Prof. James L. Frankel Harvard University Version of 4:24 PM 1-May-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. Reasons to Optimize Reduce execution time Reduce memory
More informationSUSE Linux Enterprise Kernel Back to the Future
SUSE Enterprise Kernel Back to the Future Olaf Kirch Director Server Engineering okir@suse.com Agenda SUSE Enterprise Service Packs What makes a SUSE Enterprise kernel an enterprise kernel? Bringing you
More informationGoals of Program Optimization (1 of 2)
Goals of Program Optimization (1 of 2) Goal: Improve program performance within some constraints Ask Three Key Questions for Every Optimization 1. Is it legal? 2. Is it profitable? 3. Is it compile-time
More informationGold. Ian Lance Taylor Google. What? Why? How? Gold. Performance. Features. Future. Ian Lance Taylor Google. Who? June 17, 2008
June 17, 2008 What is gold? gold is a new linker. gold is now part of the GNU binutils (if you configure with --enable-gold, gold is built instead of GNU ld). gold only supports ELF, which is used by all
More informationCS 701. Class Meets. Instructor. Teaching Assistant. Key Dates. Charles N. Fischer. Fall Tuesdays & Thursdays, 11:00 12: Engineering Hall
CS 701 Charles N. Fischer Class Meets Tuesdays & Thursdays, 11:00 12:15 2321 Engineering Hall Fall 2003 Instructor http://www.cs.wisc.edu/~fischer/cs703.html Charles N. Fischer 5397 Computer Sciences Telephone:
More informationLLVM & LLVM Bitcode Introduction
LLVM & LLVM Bitcode Introduction What is LLVM? (1/2) LLVM (Low Level Virtual Machine) is a compiler infrastructure Written by C++ & STL History The LLVM project started in 2000 at the University of Illinois
More informationIncremental Linking with Gold
Incremental Linking with Gold Linux Foundation Collaboration Summit April 5, 2012 Cary Coutant This work is licensed under the Creative Commons Attribution-NoDerivs 3.0 Unported License. To view a copy
More informationSUSE Manager Roadmap OS Lifecycle Management from the Datacenter to the Cloud
SUSE Manager Roadmap OS Lifecycle Management from the Datacenter to the Cloud Joachim Werner Senior Product Manager joe@suse.com Jeff Lindholm Sales Engineer Jlindholm@suse.com SUSE and Linux Workloads
More information2012 LLVM Euro - Michael Spencer. lld. Friday, April 13, The LLVM Linker
lld Friday, April 13, 2012 The LLVM Linker What is lld? A system linker Produce final libraries and executables, no other tools or runtime required Understands platform ABI What is lld? A system linker
More informationCOMS W4115 Programming Languages and Translators Lecture 21: Code Optimization April 15, 2013
1 COMS W4115 Programming Languages and Translators Lecture 21: Code Optimization April 15, 2013 Lecture Outline 1. Code optimization strategies 2. Peephole optimization 3. Common subexpression elimination
More informationOpenPrefetch. (in-progress)
OpenPrefetch Let There Be Industry-Competitive Prefetching in RISC-V Processors (in-progress) Bowen Huang, Zihao Yu, Zhigang Liu, Chuanqi Zhang, Sa Wang, Yungang Bao Institute of Computing Technology(ICT),
More informationAN4464 Application note
Application note Porting a Green Hills SW to SPC5Studio Introduction SPC5Studio provides a comprehensive framework to design, build and deploy embedded applications for SPC56 Power Architecture 32-bit
More informationLinking. Explain what ELF format is. Explain what an executable is and how it got that way. With huge thanks to Steve Chong for his notes from CS61.
Linking Topics How do you transform a collection of object files into an executable? How is an executable structured? Why is an executable structured as it is? Learning Objectives: Explain what ELF format
More informationEnhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization
Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Anton Kuijsten Andrew S. Tanenbaum Vrije Universiteit Amsterdam 21st USENIX Security Symposium Bellevue,
More informationUsing GCC as a Research Compiler
Using GCC as a Research Compiler Diego Novillo dnovillo@redhat.com Computer Engineering Seminar Series North Carolina State University October 25, 2004 Introduction GCC is a popular compiler, freely available
More informationDefine Your Future with SUSE
Define Your Future with SUSE SUSE Linux Enterprise and more Bo Jin Sales Engineer bo.jin@suse.com SUSE auf einen Blick 25+ +8% Jahre Erfahrung in der Open-SourceEntwicklung SUSE-Wachstum vgl. mit anderen
More informationNightWatch: Integrating Transparent Cache Pollution Control into Dynamic Memory Allocation Systems
NightWatch: Integrating Transparent Cache Pollution Control into Dynamic Memory Allocation Systems Rentong Guo 1, Xiaofei Liao 1, Hai Jin 1, Jianhui Yue 2, Guang Tan 3 1 Huazhong University of Science
More informationThe GNU Compiler Collection
The GNU Compiler Collection Diego Novillo dnovillo@redhat.com Gelato Federation Meeting Porto Alegre, Rio Grande do Sul, Brazil October 3, 2005 Introduction GCC is a popular compiler, freely available
More informationCS 426 Fall Machine Problem 4. Machine Problem 4. CS 426 Compiler Construction Fall Semester 2017
CS 426 Fall 2017 1 Machine Problem 4 Machine Problem 4 CS 426 Compiler Construction Fall Semester 2017 Handed out: November 16, 2017. Due: December 7, 2017, 5:00 p.m. This assignment deals with implementing
More informationUsing SAT for solving package dependencies. Michael Schröder Novell, Inc.
Using SAT for solving package dependencies Michael Schröder Novell, Inc. What was wrong with the old solver Much too slow with bug repositories solving could take several minutes Complex code, many special
More informationSUSE Manager in Large Scale 17220
SUSE Manager in Large Scale 17220 Don Vosburg Alejandro Bonilla Sales Engineer dvosburg@suse.com Sales Engineer abonilla@suse.com Geeko comes to SHARE Agenda What is SUSE Manager? What can I do with it
More information