search query: @keyword GCC / total: 6
reference: 2 / 6
« previous | next »
Author:Putkinen, Visa
Title:The operating environment of autovectorizing code generators
Autovektoroivien koodigeneraattoreiden toimintaympäristö
Publication type:Master's thesis
Publication year:2011
Pages:x + 67      Language:   eng
Department/School:Tietotekniikan laitos
Main subject:Ohjelmistotekniikka   (T-106)
Supervisor:Saikkonen, Heikki
Instructor:Hirvisalo, Vesa
Digitized copy: https://aaltodoc.aalto.fi/handle/123456789/99352
OEVS:
Digitized archive copy is available in Aaltodoc
Location:P1 Ark Aalto  7074   | Archive
Keywords:SIMD
vectorization
autovectorization
polyhedral model
GCC
LLVM
Polly
SSE
NEON
vektorointi
autovektorointi
polyedrimalli
Abstract (eng): Most modern microprocessors feature SIMD vector units that can accelerate many workloads considerably.
Their basic idea is to have a single instruction do the same operation to multiple data elements at a time.
Unfortunately, the SIMD units are quite difficult to utilize efficiently and automatically.
Automatically transforming a scalar program to use SIMD hardware is called autovectorization.

The modern SIMD units are smaller scale descendants of vector processors used in legacy supercomputers.
Autovectorization for these supercomputer vector processors is a well-known problem that has been thoroughly studied.
The problem of autovectorization for modern SIMD units is, however, quite different and presents a different set of challenges; modern autovectorization is still a major research topic.
This thesis explores issues related to the autovectorization optimization in the context of modern compilers and modern SIMD units.

The SIMD units are ubiquitous because they are cheap to implement in hardware, but can offer substantial acceleration for important data intensive workloads.
Such workloads include video and audio processing, digital signal processing, linear algebra libraries, engineering algorithms etc.

Traditionally, the SIMD units have been used explicitly by the programmer.
This is difficult, requires knowledge of very low-level details of the target architecture, and makes programs architecture-specific.
Therefore, autovectorizing compilers are very desirable.
However, no open source production compilers can properly autovectorize.

This thesis examines challenges and state-of-the-art techniques related to comprehensive autovectorization.
Methods to overcome the challenges are discussed.
In addition, the performance benefit of autovectorization using state-of-the-art techniques is measured on ARM and X86 platforms.
Moreover, the interaction of autovectorization with other optimizations is studied through experimentation.
Abstract (fin): Useimmissa nykyaikaisissa mikroprosessoreissa on SIMD-vektoriyksiköitä, jotka voivat nopeuttaa monia kuormia huomattavasti.
Niiden perusidea on suorittaa yhdellä käskyllä sama operaatio usealle data-alkiolle.
Valitettavasti SIMD-yksiköiden tehokas ja automaattinen hyödyntäminen on hyvin hankalaa.
Autovektorointi on optimointi, joka automaattisesti muuntaa skalaariohjelman hyödyntämään SIMD-yksiköitä.

Nykyaikaiset SIMD-yksiköt ovat pienemmän mittakaavan versioita vanhojen supertietokoneiden vektoriprosessoreista.
Näille supertietokoneille autovektorointi on vanha ja tutkittu ongelma.
Moderneille SIMD-yksiköille autovektorointi sisältää kuitenkin varsin erilaisia haasteita; moderni autovektorointi onkin vielä tärkeä tutkimuskohde.
Tämä diplomityö tutkii autovektorointiin liittyviä kysymyksiä modernien SIMD-yksiköiden ja kääntäjien kontekstissa.

SIMD-yksiköt ovat laitevalmistajien keskuudessa niin suosittuja, koska ne on halpa toteuttaa laitteistoon, ja ne tarjoavat huomattavia suorituskykyparannuksia tärkeille dataintensiivisille kuormille.
Tällaisia kuormia ovat muun muassa video- ja äänikäsittely, digitaalinen signaalinkäsittely, lineaarialgebrakirjastot, insinöörialgoritmit, jne.

Perinteisesti ohjelmoija on käyttänyt SIMD-yksiköitä suoraan käsin.
Tämä on hankalaa, vaatii matalan tason alustayksityiskohtien tuntemusta, ja tekee ohjelmista alustakohtaisia.
Autovektoroivat kääntäjät olisivat siis hyvin hyödyllisiä.
Tästä huolimatta yksikään avoimen lähdekoodin tuotantokääntäjä ei osaa autovektoroida kunnolla.

Tämä diplomityö tutkii kokonaisvaltaiseen autovektorointiin liittyviä haasteita ja tämänhetkistä huipputasoa edustavia menetelmiä.
Työ tarkastelee tapoja haasteiden voittamiseen.
Lisäksi työssä mitataan huipputason autovektorointimenetelmien tuomaa suorituskykyparannusta ARM ja X86 -alustoilla.
Myös autovektoroinnin vuorovaikutusta muiden optimointien kanssa tutkitaan mittauksin.
ED:2011-07-05
INSSI record number: 42621
+ add basket
« previous | next »
INSSI