Software > Programmieren, Kompilieren
Optimierung von gcc auf Ultra10
paraglider242:
Du wirst schon des oefteren mal die Makefiles bearbeiten muessen, damit das unter Sun Studio ebenfalls kompiliert - da musst du dann selbst entscheiden, was dir wichtiger ist.
stiefkind:
Heute erst bei einer Sun-Veranstaltung gelernt: Es gibt ein gcc-Frontend zum Sun-Compiler. D. h., Du rufst gcc auf wie gewohnt, im Backend kompiliert aber der Sun Studio 11 Compiler. Details incl. Download da:
http://cooltools.sunsource.net/gcc/index.html
Mangels eigener Erfahrung kann ich nicht sagen, wie gut das wirklich tut. Der Mann vom Engineering jedenfalls hat begeistert darueber berichtet.
wolfgang
DoomWarrior:
--- Zitat von: Miq am 30. Mai 2006, 15:32:28 ---Danke, Du hast senkrecht: "-mcpu=v9" tut's. ultrasparc kennt gcc übrigens scheinbar nicht als CPU-Typ, das gibt einen Fehler.
--- Ende Zitat ---
so bin wieder zuhause
-mcpu=cpu_type
Set the instruction set, register set, and instruction scheduling
parameters for machine type cpu_type. Supported values for
cpu_type are v7, cypress, v8, supersparc, sparclite, f930, f934,
hypersparc, sparclite86x, sparclet, tsc701, v9, ultrasparc, and
ultrasparc3.
die einstellungen sollte es geben, f930, f934 ist meines wissens erst bei 4.0 dazugekommen, aber ultrasparc gabs imho schon bei 3.4.
Ist aber, wenn ich mich richtig entsinne, kaum schneller gewesen als v9
außerdem gibts noch die etwas abgeschwächte version -mtune. Vielleicht noch wichtig -m32 bzw. -m64 für 32bit/64bit.
paraglider242:
--- Zitat von: w.stief am 30. Mai 2006, 17:33:16 ---Du rufst gcc auf wie gewohnt, im Backend kompiliert aber der Sun Studio 11 Compiler.
--- Ende Zitat ---
Bist du dir da wirklich sicher? So, wie ich das verstehe, handelt es sich hier nur um einen für SPARC (und wahrscheinlich auch T1) optimierten gcc.
stiefkind:
--- Zitat von: paraglider242 am 30. Mai 2006, 19:39:47 ---
--- Zitat von: w.stief am 30. Mai 2006, 17:33:16 ---Du rufst gcc auf wie gewohnt, im Backend kompiliert aber der Sun Studio 11 Compiler.
--- Ende Zitat ---
Bist du dir da wirklich sicher? So, wie ich das verstehe, handelt es sich hier nur um einen für SPARC (und wahrscheinlich auch T1) optimierten gcc.
--- Ende Zitat ---
Ja, bin ich. Ich habe Folien gesehen mit der Architektur. Backend ist ein Sun Studio 11. Auf der Folie war neben dem gcc-Frontend auch das herkoemmliche Studio 11 Frontend dargestellt, mit einem Pfeil ins gleiche Backend. Die Slides habe ich noch nicht da, sonst wuerde ich nochmal genauer nach Begriffen sehen. Aus den Release Notes ist das in der Tat nicht ersichtlich. Ich habe im Moment nicht genug Zeit, sonst wuerde ich mal eben die Packages runterladen, installieren und mit einer Studio 11 Installation vergleichen. Argumentation von Sun: Es war/ist einfacher und schneller, das so zu realisieren, als zum gcc selbst entsprechend beizutragen. Hintergrund ist, dass gcc zwar weit verbreitet ist und gerade bei OpenSource-Software die passenden Makefiles etc. existieren, bzw. eben darauf vertraut, dass GNU-Tools da sind, das fertige Binary eines herkoemmlichen gcc aber idR. nicht optimal laeuft, weil gcc eben auf UltraSPARC nur suboptimale Ergebnisse liefert. Und es geht fuer jede SPARC-CPU, nicht nur T1.
Spezielles fuer den T1 ist ja nur bedingt zu beachten: Auch ein T1 hat 'herkoemmliche' UltraSPARC-Kerne. Halt acht davon auf einem Chip. Und jeder Kern kann vier Threads. Fuer ein Solaris sieht das aus wie 32 CPUs. Aus Compilersicht ist das nichts wesentlich anderes wie ein 'normales' 32-CPU-SMP-System. Allerdings hat die CPU nur eine Floating Point Einheit, die sich die acht Cores teilen. Deshalb die schlechte Floatingpoint-Leistung. Wird mit dem Nachfolger T2 besser werden, da hat dann jeder Core seine eigene FPU.
wolfgang
Nachtrag: Hab' eben die Seiten mit diesem Sun GCC noch ein wenig genauer untersucht:
--- Zitat ---The GCC for SPARC Systems compilers bring the world-class performance and robustness of the SunStudio compiler backend components to GCC users. As a result, users will find that their programs run correctly with higher levels of optimizations. Also, users can utilize additional optimizations that are not available with GCC:
* Traditional scalar optimizations
* Loop optimizations
* Prefetch
* Interprocedure optimization
* Automatic parallelization
* Inline assembler is optimized
--- Ende Zitat ---
Quelle: http://cooltools.sunsource.net/gcc/porting.html
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln