[gelößt]Wonach entscheidet der FPC den ASM verw. Befehlssatz
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
[gelößt]Wonach entscheidet der FPC den ASM verw. Befehlssatz
Ich hab da mal eine Frage, wonach entscheidet der FPC eigentlich welchen Assembler Befehlssatz er verwendet, also von der Aufteilung her was ich meine ist sse avx usw... . Klar er macht es an dem fest was die CPU kann, aber jede CPU hat ja eine unterschiedliche Zahl an ALU, die ja für verschiedene Befehlssätze da sind, findet dann auch eine unterschiedliche Aufteilung (prozentual) der Befehlssatzverwendung, wo es möglich ist, statt wenn zwar die Befehlssätze aber nicht die ALU übereinstimmen
Zuletzt geändert von Dragon am Mo 27. Apr 2015, 17:10, insgesamt 1-mal geändert.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Vgl. http://www.freepascal.org/docs-html/use ... 70-177000A Paramter -C<x> bzw. die Ausgabe von fpc -iDragon hat geschrieben:Ich hab da mal eine Frage, wonach entscheidet der FPC eigentlich welchen Assembler Befehlssatz er verwendet,
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
O.k. danke schon mal für deine Antwort aber das ist nicht ganz das was ich meine da steht ja nur wie man welchen Befehlssatz aktiviert mir geht es ja darum ob der Compiler einen Befehlssatz bevorzugt wenn er sieht das entsprechende CPU mehr Ausführungseinheiten für einen bestimmten Befehlssatz hat weil man kann ja mit zwei verschiedenen Befehlsätzen manchmal das selbe erreichen nur halt mit unterschiedlich viel Code u/o schnellem Code und das er eben dann einen anderen bevorzugt einsetzt weil es günstiger für entsprechende CPU ist für ein ideales executable oder auch andere Vorteile bringt.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Es gibt noch den Compilerschalter -Os (siehe Link oben). Damit werden kürzere Assemblerbefehlsfolgen anstatt schnelleren, aber längeren Codes verwendet.
Ansonsten verstehe ich deine Frage als prozessorspezifische Optimierung. Hier gibt es für x86 nur einige wenige Möglichkeiten, bei ARM-Microcontrollern ist die Liste wesentlich Länger. Der Prozessor wird mit -Cp<x> angegeben.
Ansonsten verstehe ich deine Frage als prozessorspezifische Optimierung. Hier gibt es für x86 nur einige wenige Möglichkeiten, bei ARM-Microcontrollern ist die Liste wesentlich Länger. Der Prozessor wird mit -Cp<x> angegeben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Genau das meine ich. Ich habe neulich per Zufall gelesen das es für jeden Befehlssatz in der CPU eigene ALUs(z.b. bei Haswell waren es glaube 4 für AVX bei Ivy nur 2) gibt und da habe ich mich gefragt ob so was vom Compiler irgendwie mit berücksichtigt wird in den Anteilen der verwendeten Befehlssätze.Socke hat geschrieben:Ansonsten verstehe ich deine Frage als prozessorspezifische Optimierung
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Das ist einfach. FPC generiert gar kein AVX, also das ist egal.
Seriös aber, FPC optimiert die Ordnung von Instruktionen nicht für Superscalar aus zu nutzen.
Seriös aber, FPC optimiert die Ordnung von Instruktionen nicht für Superscalar aus zu nutzen.
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Das mit AVX war nur ein Beispiel aber trotzdem was AVX angeht istmarcov hat geschrieben:FPC generiert gar kein AVX, also das ist egal.
mein FPC aber anderer meinung "fpc -i" gibt

Supported FPU instruction sets:
SSE64,SSE3,SSSE3,SSE41,SSE42,AVX,AVX2
Ok danke, also wird nur ein einzeln laufender befehlsstrang erzeugt verstehe ich das richtigmarcov hat geschrieben:FPC optimiert die Ordnung von Instruktionen nicht für Superscalar aus zu nutzen.
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Keine Ahnung was das macht.Dragon hat geschrieben:Das mit AVX war nur ein Beispiel aber trotzdem was AVX angeht istmarcov hat geschrieben:FPC generiert gar kein AVX, also das ist egal.
mein FPC aber anderer meinung "fpc -i" gibt![]()
Supported FPU instruction sets:
SSE64,SSE3,SSSE3,SSE41,SSE42,AVX,AVX2
Das ist immer so. Aber man kann etwas steuern so das sich verschiedene Instruktionen über die verschiedene Units (integer, branch, load/store) parallellisieren lassen. Execution Units sind kein Cores, es ist noch immer ein Lineare Befehlsstrang.Ok danke, also wird nur ein einzeln laufender befehlsstrang erzeugt verstehe ich das richtigmarcov hat geschrieben:FPC optimiert die Ordnung von Instruktionen nicht für Superscalar aus zu nutzen.
Viel muss man sich von das alles nicht vorstellen.
-
- Beiträge: 162
- Registriert: Mi 31. Jul 2013, 15:07
- OS, Lazarus, FPC: Ubuntu 16.04, CodeTyphon 5.80
Re: Wonach entscheidet der FPC den ASM verw. Befehlssatz
Alles klar, vielen dank an alle die geantwortet haben.