A Priori Loop Nest Normalization: Automatic Loop Scheduling in Complex Applications

Uloženo v:
Podrobná bibliografie
Název: A Priori Loop Nest Normalization: Automatic Loop Scheduling in Complex Applications
Autoři: Trümper, Lukas, Schaad, Philipp, Ates, Berke, id_orcid:0 000-0003-0242-3640, Calotoiu, Alexandru, Copik, Marcin, Hoefler, Torsten
Přispěvatelé: Doerfert, Johannes, Grosser, Tobias, Leather, Hugh, Sadayappan, Ponnuswamy
Zdroj: Proceedings of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization
Informace o vydavateli: Association for Computing Machinery
Rok vydání: 2025
Sbírka: ETH Zürich Research Collection
Témata: loop normalization, loop optimization, polyhedral analysis, compiler, code optimization
Popis: The same computations are often expressed differently across software projects and programming languages. In particular, how computations involving loops are expressed varies due to the many possibilities to permute and compose loops. Since each variant may have unique performance properties, automatic approaches to loop scheduling must support many different optimization recipes. In this paper, we propose a priori loop nest normalization to align loop nests and reduce the variation before the optimization. Specifically, we define and apply normalization criteria, mapping loop nests with different memory access patterns to the same canonical form. Since the memory access pattern is susceptible to loop variations and critical for performance, this normalization allows many loop nests to be optimized by the same optimization recipe. To evaluate our approach, we apply the normalization with optimizations designed for only the canonical form, improving the performance of many different loop nest variants. Across multiple implementations of 15 benchmarks using different languages, we outperform a baseline compiler in C on average by a factor of 21.13, state-of-the-art auto-schedulers such as Polly and the Tiramisu auto-scheduler by 2.31 and 2.89, as well as performance-oriented Python-based frameworks such as NumPy, Numba, and DaCe by 9.04, 3.92, and 1.47. Furthermore, we apply the concept to the CLOUDSC cloud microphysics scheme, an actively used component of the Integrated Forecasting System, achieving a 10% speedup over the highly-tuned Fortran code.
Druh dokumentu: conference object
Popis souboru: application/application/pdf
Jazyk: English
Relation: info:eu-repo/semantics/altIdentifier/isbn/979-8-4007-1275-3; info:eu-repo/grantAgreement/EC/H2020/101002047; info:eu-repo/grantAgreement/EC/H2020/101034126; http://hdl.handle.net/20.500.11850/729779
DOI: 10.3929/ethz-b-000729779
Dostupnost: https://hdl.handle.net/20.500.11850/729779
https://doi.org/10.3929/ethz-b-000729779
Rights: info:eu-repo/semantics/openAccess ; http://creativecommons.org/licenses/by/4.0/ ; Creative Commons Attribution 4.0 International
Přístupové číslo: edsbas.B234C3C4
Databáze: BASE
FullText Text:
  Availability: 0
CustomLinks:
  – Url: https://hdl.handle.net/20.500.11850/729779#
    Name: EDS - BASE (s4221598)
    Category: fullText
    Text: View record from BASE
  – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Tr%C3%BCmper%20L
    Name: ISI
    Category: fullText
    Text: Nájsť tento článok vo Web of Science
    Icon: https://imagesrvr.epnet.com/ls/20docs.gif
    MouseOverText: Nájsť tento článok vo Web of Science
Header DbId: edsbas
DbLabel: BASE
An: edsbas.B234C3C4
RelevancyScore: 1012
AccessLevel: 3
PubType: Conference
PubTypeId: conference
PreciseRelevancyScore: 1011.70721435547
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: A Priori Loop Nest Normalization: Automatic Loop Scheduling in Complex Applications
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Trümper%2C+Lukas%22">Trümper, Lukas</searchLink><br /><searchLink fieldCode="AR" term="%22Schaad%2C+Philipp%22">Schaad, Philipp</searchLink><br /><searchLink fieldCode="AR" term="%22Ates%2C+Berke%22">Ates, Berke</searchLink><br /><searchLink fieldCode="AR" term="%22id%5Forcid%3A0+000-0003-0242-3640%22">id_orcid:0 000-0003-0242-3640</searchLink><br /><searchLink fieldCode="AR" term="%22Calotoiu%2C+Alexandru%22">Calotoiu, Alexandru</searchLink><br /><searchLink fieldCode="AR" term="%22Copik%2C+Marcin%22">Copik, Marcin</searchLink><br /><searchLink fieldCode="AR" term="%22Hoefler%2C+Torsten%22">Hoefler, Torsten</searchLink>
– Name: Author
  Label: Contributors
  Group: Au
  Data: Doerfert, Johannes<br />Grosser, Tobias<br />Leather, Hugh<br />Sadayappan, Ponnuswamy
– Name: TitleSource
  Label: Source
  Group: Src
  Data: Proceedings of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization
– Name: Publisher
  Label: Publisher Information
  Group: PubInfo
  Data: Association for Computing Machinery
– Name: DatePubCY
  Label: Publication Year
  Group: Date
  Data: 2025
– Name: Subset
  Label: Collection
  Group: HoldingsInfo
  Data: ETH Zürich Research Collection
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22loop+normalization%22">loop normalization</searchLink><br /><searchLink fieldCode="DE" term="%22loop+optimization%22">loop optimization</searchLink><br /><searchLink fieldCode="DE" term="%22polyhedral+analysis%22">polyhedral analysis</searchLink><br /><searchLink fieldCode="DE" term="%22compiler%22">compiler</searchLink><br /><searchLink fieldCode="DE" term="%22code+optimization%22">code optimization</searchLink>
– Name: Abstract
  Label: Description
  Group: Ab
  Data: The same computations are often expressed differently across software projects and programming languages. In particular, how computations involving loops are expressed varies due to the many possibilities to permute and compose loops. Since each variant may have unique performance properties, automatic approaches to loop scheduling must support many different optimization recipes. In this paper, we propose a priori loop nest normalization to align loop nests and reduce the variation before the optimization. Specifically, we define and apply normalization criteria, mapping loop nests with different memory access patterns to the same canonical form. Since the memory access pattern is susceptible to loop variations and critical for performance, this normalization allows many loop nests to be optimized by the same optimization recipe. To evaluate our approach, we apply the normalization with optimizations designed for only the canonical form, improving the performance of many different loop nest variants. Across multiple implementations of 15 benchmarks using different languages, we outperform a baseline compiler in C on average by a factor of 21.13, state-of-the-art auto-schedulers such as Polly and the Tiramisu auto-scheduler by 2.31 and 2.89, as well as performance-oriented Python-based frameworks such as NumPy, Numba, and DaCe by 9.04, 3.92, and 1.47. Furthermore, we apply the concept to the CLOUDSC cloud microphysics scheme, an actively used component of the Integrated Forecasting System, achieving a 10% speedup over the highly-tuned Fortran code.
– Name: TypeDocument
  Label: Document Type
  Group: TypDoc
  Data: conference object
– Name: Format
  Label: File Description
  Group: SrcInfo
  Data: application/application/pdf
– Name: Language
  Label: Language
  Group: Lang
  Data: English
– Name: NoteTitleSource
  Label: Relation
  Group: SrcInfo
  Data: info:eu-repo/semantics/altIdentifier/isbn/979-8-4007-1275-3; info:eu-repo/grantAgreement/EC/H2020/101002047; info:eu-repo/grantAgreement/EC/H2020/101034126; http://hdl.handle.net/20.500.11850/729779
– Name: DOI
  Label: DOI
  Group: ID
  Data: 10.3929/ethz-b-000729779
– Name: URL
  Label: Availability
  Group: URL
  Data: https://hdl.handle.net/20.500.11850/729779<br />https://doi.org/10.3929/ethz-b-000729779
– Name: Copyright
  Label: Rights
  Group: Cpyrght
  Data: info:eu-repo/semantics/openAccess ; http://creativecommons.org/licenses/by/4.0/ ; Creative Commons Attribution 4.0 International
– Name: AN
  Label: Accession Number
  Group: ID
  Data: edsbas.B234C3C4
PLink https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.B234C3C4
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.3929/ethz-b-000729779
    Languages:
      – Text: English
    Subjects:
      – SubjectFull: loop normalization
        Type: general
      – SubjectFull: loop optimization
        Type: general
      – SubjectFull: polyhedral analysis
        Type: general
      – SubjectFull: compiler
        Type: general
      – SubjectFull: code optimization
        Type: general
    Titles:
      – TitleFull: A Priori Loop Nest Normalization: Automatic Loop Scheduling in Complex Applications
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Trümper, Lukas
      – PersonEntity:
          Name:
            NameFull: Schaad, Philipp
      – PersonEntity:
          Name:
            NameFull: Ates, Berke
      – PersonEntity:
          Name:
            NameFull: id_orcid:0 000-0003-0242-3640
      – PersonEntity:
          Name:
            NameFull: Calotoiu, Alexandru
      – PersonEntity:
          Name:
            NameFull: Copik, Marcin
      – PersonEntity:
          Name:
            NameFull: Hoefler, Torsten
      – PersonEntity:
          Name:
            NameFull: Doerfert, Johannes
      – PersonEntity:
          Name:
            NameFull: Grosser, Tobias
      – PersonEntity:
          Name:
            NameFull: Leather, Hugh
      – PersonEntity:
          Name:
            NameFull: Sadayappan, Ponnuswamy
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 01
              Type: published
              Y: 2025
          Identifiers:
            – Type: issn-locals
              Value: edsbas
            – Type: issn-locals
              Value: edsbas.oa
          Titles:
            – TitleFull: Proceedings of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization
              Type: main
ResultId 1