28967 articles – 22394 references  [version française]

hal-00716183, version 1

On the Effectiveness of Register Moves to Minimise Post-Pass Unrolling in Software Pipelined Loops

Mounira Bachir a1, Albert Cohen 2, Sid-Ahmed-Ali TOUATI 3

HPCS 2012 : International Conference on High Performance Computing & Simulation (2012)

  • a –  INRIA
  • 1:  Laboratoire d'Informatique de Paris 6 (LIP6)
  • http://www.lip6.fr/
    CNRS : UMR7606 – Université Pierre et Marie Curie (UPMC) - Paris VI 4 Place JUSSIEU 75252 PARIS CEDEX 05 France
  • 2:  PARKAS (INRIA Paris-Rocquencourt)
  • http://www.di.ens.fr/ParkasTeam.html
    INRIA – Ecole normale supérieure de Paris - ENS Paris – CNRS : UMR 8548 Département d'informatique École normale supérieure 45 rue d'Ulm F-75230 Paris Cedex 05 France
  • 3:  Laboratoire d'Informatique, Signaux, et Systèmes de Sophia-Antipolis (I3S)
  • http://www.i3s.unice.fr/
    Université Nice Sophia Antipolis [UNS] – CNRS : UMR7271 2000, route des Lucioles - Les Algorithmes - bât. Euclide B 06900 Sophia Antipolis France

Bibliographic reference

  • Type of document: Peer-reviewed conferences/proceedings
  • Domain:
    Computer Science/Embedded Systems
    Computer Science/Other
  • Title: On the Effectiveness of Register Moves to Minimise Post-Pass Unrolling in Software Pipelined Loops
  • Abstract: Software pipelining is a powerful technique to expose fine-grain parallelism, but it results in variables staying alive across more than one kernel iteration. It requires periodic register allocation and is challenging for code generation: the lack of a reliable solution currently restricts the applicability of software pipelining. The classical software solution that does not alter the computation throughput consists in unrolling the loop a posteriori [12], [11]. However, the resulting unrolling degree is often unacceptable and may reach absurd levels. Alternatively, loop unrolling can be avoided thanks to software register renaming. This is achieved through the insertion of move operations, but this may increase the initiation interval (II) which nullifies the benefits of software pipelining. This article aims at tightly controling the post-pass loop unrolling necessary to generate code. We study the potential of live range splitting to reduce kernel loop unrolling, introducing additional move instructions without inscreasing the II. We provide a complete formalisation of the problem, an algorithm, and extensive experiments. Our algorithm yields low unrolling degrees in most cases -- with no increase of the II.
  • ACM Classification:
    D.: Software/D.3: PROGRAMMING LANGUAGES/D.3.4: Processors/D.3.4.0: Code generation
    D.: Software/D.3: PROGRAMMING LANGUAGES/D.3.4: Processors/D.3.4.1: Compilers
    D.: Software/D.3: PROGRAMMING LANGUAGES/D.3.4: Processors/D.3.4.6: Optimization
  • Full text language: English
  • Publication date: 2012-07-02
  • Audience: international
  • Conference title: HPCS 2012 : International Conference on High Performance Computing & Simulation
  • Conference city: Madrid
  • Country: Spain
  • Conference date: 2012-07-02
  • Conference date (end): 2012-07-06
  • Organizer: Pr Waleed Smari
  • Scientific editor(s): IEEE, ACM

Attached file list to this document: 

PDF
Touati_hpcs_2012.pdf(200.6 KB)
 
  • hal-00716183, version 1
  • oai:hal.inria.fr:hal-00716183
  • From: 
  • Submitted on: Tuesday, 10 July 2012 10:13:41
  • Updated on: Thursday, 12 July 2012 16:18:03