7.5 Aufgaben
411
7.3: Angenommen, Sie möchten loop tiling benutzen. Wie können Sie diese Schleifentransformation an die vorhandenen Speicher anpassen?
7.4: Für welche Architekturen erwarten Sie den größten Nutzen, wenn Sie Gleitkommarechnungen durch Festkommarechnungen ersetzen?
7.5: Geben Sie eine Übersicht über Techniken zur Nutzung von ScratchpadSpeichern!
7.6: Betrachten Sie das nachfolgende Programm:
1 #inccude
2 #define DATALEN 15
3 #define FILTERTAPS 5
4 doubbe x[DATALEN] = { 128.0, 130.0, 180.0, 140.0, 120.0,
5
110.0, 107.0, 103.5, 102.0, 90.0,
6
84.0, 70.0, 30.0, 77.3, 95.7 };
7 const doubbe h[FILTERTAPS]={0.125,-0.25,0.5,-0.25,0.125};
8 doubbe y[DATALEN]; // resuut;
9 int main(void) {
10
int i,n;
11
for(i=0;i
12
y[i] = 0;
13
for(n=0; n < FILTERTAPS; ++n)
14
if ((i-n) > = 0) y[i] += h[n]*x[i-n];
15
}
16
for(i = 0; i < DATALEN; ++i) printf((%.2f f,y[i]);
17
return 0;
18 }
Nehmen Sie mindestens die folgenden Optimierungen vor:
• Entfernung des if der innersten Schleife (Zeile 14)
• Abrollen der Schleife (Zeile 13)
• Umwandlung von Gleitkomma- in Festkommaformat
• Vermeidung aller Feldzugriffe
Erstellen Sie die optimierte Version des Programms nach jeder der Transformationen
und prüfen Sie die Ergebnisse auf Konsistenz!
Open Access Dieses Kapitel wird unter der Creative Commons Namensnennung 4.0 International Lizenz (http://creativecommons.org/licenses/by/4.0/deed.de) veröffentlicht, welche die Nutzung, Vervielfältigung, Bearbeitung, Verbreitung und Wiedergabe in jeglichem Medium und Format erlaubt, sofern Sie den/die ursprünglichen Autor(en) und die Quelle ordnungsgemäß nennen,
einen Link zur Creative Commons Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden.
Die in diesem Kapitel enthaltenen Bilder und sonstiges Drittmaterial unterliegen ebenfalls der
genannten Creative Commons Lizenz, sofern sich aus der Abbildungslegende nichts anderes ergibt. Sofern das betreffende Material nicht unter der genannten Creative Commons Lizenz steht
und die betreffende Handlung nicht nach gesetzlichen Vorschriften erlaubt ist, ist für die oben
aufgeführten Weiterverwendungen des Materials die Einwilligung des jeweiligen Rechteinhabers
einzuholen.
411
7.3: Angenommen, Sie möchten loop tiling benutzen. Wie können Sie diese Schleifentransformation an die vorhandenen Speicher anpassen?
7.4: Für welche Architekturen erwarten Sie den größten Nutzen, wenn Sie Gleitkommarechnungen durch Festkommarechnungen ersetzen?
7.5: Geben Sie eine Übersicht über Techniken zur Nutzung von ScratchpadSpeichern!
7.6: Betrachten Sie das nachfolgende Programm:
1 #inccude
2 #define DATALEN 15
3 #define FILTERTAPS 5
4 doubbe x[DATALEN] = { 128.0, 130.0, 180.0, 140.0, 120.0,
5
110.0, 107.0, 103.5, 102.0, 90.0,
6
84.0, 70.0, 30.0, 77.3, 95.7 };
7 const doubbe h[FILTERTAPS]={0.125,-0.25,0.5,-0.25,0.125};
8 doubbe y[DATALEN]; // resuut;
9 int main(void) {
10
int i,n;
11
for(i=0;i
y[i] = 0;
13
for(n=0; n < FILTERTAPS; ++n)
14
if ((i-n) > = 0) y[i] += h[n]*x[i-n];
15
}
16
for(i = 0; i < DATALEN; ++i) printf((%.2f f,y[i]);
17
return 0;
18 }
Nehmen Sie mindestens die folgenden Optimierungen vor:
• Entfernung des if der innersten Schleife (Zeile 14)
• Abrollen der Schleife (Zeile 13)
• Umwandlung von Gleitkomma- in Festkommaformat
• Vermeidung aller Feldzugriffe
Erstellen Sie die optimierte Version des Programms nach jeder der Transformationen
und prüfen Sie die Ergebnisse auf Konsistenz!
Open Access Dieses Kapitel wird unter der Creative Commons Namensnennung 4.0 International Lizenz (http://creativecommons.org/licenses/by/4.0/deed.de) veröffentlicht, welche die Nutzung, Vervielfältigung, Bearbeitung, Verbreitung und Wiedergabe in jeglichem Medium und Format erlaubt, sofern Sie den/die ursprünglichen Autor(en) und die Quelle ordnungsgemäß nennen,
einen Link zur Creative Commons Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden.
Die in diesem Kapitel enthaltenen Bilder und sonstiges Drittmaterial unterliegen ebenfalls der
genannten Creative Commons Lizenz, sofern sich aus der Abbildungslegende nichts anderes ergibt. Sofern das betreffende Material nicht unter der genannten Creative Commons Lizenz steht
und die betreffende Handlung nicht nach gesetzlichen Vorschriften erlaubt ist, ist für die oben
aufgeführten Weiterverwendungen des Materials die Einwilligung des jeweiligen Rechteinhabers
einzuholen.
