FreeBSD Kernel mit Intel Compiler compilen

Anmerkung hierzu: Alexander erzielt einen Performance-Gewinn von durchschnittlich 30% gegenüber gcc, in einigen Fällen sogar durchaus mehr. Er ist erst seit ca. 3 Wochen richtig bei der Arbeit, in den nächsten Monaten werden sich hier noch beachtliche Verbesserungen ergeben. Stay tuned! :) :)

Grüße, Daniel

Edit: Kleine Randbemerkung: Speziell diejenigen unter Euch, die auf performante Datenbanken angewiesen sind, dürften im nächsten Jahr Grund zur Freue haben, da Alexander besonderes Augenmerk darauf legen wird, diesen "Bereich" zu tunen...
 
Zuletzt bearbeitet:
Hoffen wir es, der icc wirft deutlich performanter kompilierten Code aus.
Und, hoffen wir mal, das die Kinderkrankheiten, wie in den Links beschrieben, dann bald verschwinden werden...
.oO(Wenn ich nur Programmierer wäre...)
 
Mit Hoffen ist da nichts, es ist definitiv performanter. Wer ist nicht glaubt, darf Alexander in Eppelborn besuchen und kann es es sich ad oculos betrachten. Da die Arbeiten auf einem meiner Rechner stattfinden und ich ihn persönlich besucht habe, kannst Du davon ausgehen, daß mein posting der Bericht eines Augenzeugen ist. ;)

Alexander ist zwar durch seine Diplomarbeit und ein ray tracing cluster ziemlich beschäftigt, aber das wird demnächst werden, davon bin ich zutiefst überzeugt.

Grüße, Daniel
 
Das "hoffen" war auf Dein "in den nächsten Monaten werden sich hier noch beachtliche Verbesserungen ergeben".
Das der ICC performanter ist als der GCC ist ein altbekannte Tatsache ;-).
Ich für meinen Teil würde das gerne genauer beobachten, ach, was sage ich, ich mache das auch. Und wenn mal alles rennt, dann ist das eine dicke dicke Meldung wert.
Das Du Ihn nun kennst und an der Quelle sitzt (einer Deiner Rechner), macht Dich natürlich zum prädestinierten News-Beschaffener bei diesem Thema ;).
Falls es Tests bedarf, gibt es hier doch sicher welche die das auch mal testen würden, so dass Alexander evtl. noch schneller vorankommt...
 
Ich werde Euch auf dem Laufenden halten und Alexander mal anmailen, was er von deinem Vorschlag bezüglich Testen hält und hier berichten. ;)

Wenn ich mal pro domo sprechen darf: Speziell die Entwicklungen bei PostGreSQL finden mein sehr starkes Interesse. Ich denke, daß hier noch sehr viel Potential schlummert (in diesem Kontext). BTW: Gibt es eigentlich PostGre-Freunde hier? Vielleicht sollten sich diese Damen bzw. Herren hier einmal outen, um einen Erfahrungsaustausch anzustoßen. :)

Daniel
 
jo, ich praeferiere postgres gegenueber mysql :)

leider hab ich zu wenig zeit, mich naeher damit zu beschaeftigen...
wenn ich mal wieder ferien hab, dann bastel ich mal damit rum 8)

auf bald
oenone
 
Und was genau willst du uns mit den Gentoo Link sagen?
Zu PostgreSQL: Word up!

Zu icc: Hoffentlich wird es 2-3 Leute geben, den den ICC Support auf 'world' ausbauen werden. Das wuerde FreeBSD wohl mal locker zum Performance Koenig kronen.

PS: Kenne die ICC Lizenz nicht auswendig, aber in welchen Situationen darf man den von ICC erzeugten Code verwenden/nicht verwenden?
 
1. Bezüglich lizenzrechtlicher Situation zitiere ich Alexander Leidinger wörtlich aus einer Email an mich vom 30.09.: "Der Unterschied zwischen der kommerziellen und der nicht-kommerziellen Lizenz ist einfach nur die Erlaubnis Binärdateien verbreiten zu dürfen (und patches die durch die Nutzung des icc entstanden sind)." Solltest Du den icc für private Zwecke verwenden wollen, ist das gar kein Problem. Für gewerbliche Projekte mußt Du natürlich eine Lizenz kaufen (ca. 360 Euro brutto bei Tendi Deutschland GmbH). Intel hat Alexander eine kommerzielle Lizenz (7.1) zur Benützung bei FreeBSD geschenkt. Nachzulesen auf: http://www.freebsd.org/donations/donors.html. Dank an dieser Stelle der Embedded Division von Intel! :)

2. Selbstverständlich ist geplant, den ICC support auf world auszubauen. Meine Aussage bezüglich Datenbanken impliziert dies ja eigentlich. ;) Natürlich sind immer Leute willkommen, welche *BSD in irgendeiner Weise helfen. Marius Strobl hilft Alexander, wenn noch mehr helfen wollen, so sind sie jederzeit willkommen. Das ist eine sehr große Aufgabe, die committer verdienen imho jegliche Unterstützung für dieses wichtige Vorhaben. Mit Ausssagen wie "Performance König" wäre ich allerdings sehr vorsichtig. Wer die Diskussion über die Performance-Messungen von Fefe neulich aufmerksam verfolgt hat, der weiß wohin meine Gedanken (Beispiel OpenBSD) gehen.

3. Bezüglich des links zu Gentoo muß ich allerdings auch meiner Verwunderung Ausdruck verleihen. Ich habe das Ganze zwar nur überflogen, konnte aber auch keinen kausalen Zusammenhang erkennen. Vielleicht ist OM_A uns behilflich und erläutert uns seine Intention. ;)

Daniel
 
Die Gentoo-Linuxemulation enthält den gcc.
Nach Installation des Ports kann man nach chroot /compat/linux /bin/bash Linuxbefehle ausführen. Ich habe auf die Art XNET (Amateurfunkknotensoftware für AX25) für Linux ausprobiert. Nun müßte man doch mit der Vorgehensweise auch den ICC installieren können? Leider reichen meine Kenntnisse dazu nicht aus.
 
huihui,

freebsd is ja so schon schnell. aber nochmal 30%?
klingt echt zu gut um wahr zu sein :D
ich bin gespannt und hoffe das beste :)

postgresql läuft bei mir für "sql-ledger", bisher noch keine probleme damit gahabt.
 
OM_A: Warum installierst du den ICC nicht ueber /usr/ports/lang/icc?

Zu Daniel , Punkt 1: Heisst das, dass Alexander FreeBSD Kernel verkaufen darf, die mittels ICC erzeugt wurden? Darf das dann auch das FreeBSD Release Team (oder anders, koennte es uns passieren, dass ein GENERIC ausgeliefert wird, der mit icc uebersetzt wurde?)

Ich wuerde ja gerne helfen, aber ich verstehe nichtmal ansatzweise die Haelfte aller C-Compiler spezifischen Konstrukte :(
 
Man darf auch jetzt schon FreeBSD verkaufen....
Das FreeBSD Project müsste sich wohl eine Lizenz kaufen für den ICC.
Zumal dies auch nicht sein muss. Mit dem GCC rausgeben, selbst dann mit dem ICC durchkompilieren lassen...
 
FreeBSD, vertreten durch Alexander, hat eine vollwertige, kommerzielle Lizenz als Spende erhalten. Damit ist es möglich, daß Alexander (oder sonstwer von FreeBSD.org) etwas mit icc kompiliert und dann z.B. zum Download bereitstellt, ohne daß die Nutzer noch etwas machen müssen. Praktisch genauso wie jetzt mit gcc. Das FreeBSD nichts für die Software verlangt, verstößt ja nicht gegen die Lizenzbestimmungen. Man darf damit Software kompilieren, die man verkauft, oder eben verschenkt. Genau das war ja auch der Grund, weshalb Alexander hinter der Lizenz her war, damit er packages bzw. patches distribuieren darf. Hätte er nur eine nichtkommerzielle Lizenz (gibt es umsonst), dann dürfte er dies nicht. Hier ist nur die Nutzung für Forschung bzw. private Zwecke erlaubt.

Wie gesagt: Hört sich phantastisch an und ist es auch! :) :)


Randbemerkung: Die kommende Version icc 8 bekommt Alexander wahrscheinlich auch von Intel gespendet, falls nicht ist es auch nicht schlimm, dann steht ein anderer Spender bereit. Das einzig Traurige an der ganzen Sache ist imho, daß OpenBSD und NetBSD (zumindest momentan) nicht davon profitieren und sich die Sache nur auf eine Plattform (x86) auswirkt.;'(

Auch wenn wohl alle poster hier FreeBSD'ler sind und x86-Hardware verwenden, sollten wir wie immer den Blick über den eigenen Tellerrand nicht vergessen (jaja, ist schon gut, ich hör ja schon auf mit dem moralischen Zeigefinger). ;)
 
Beim durchlesen hier kam bei mir jetzt so ganz spontan eine Frage auf. Insbesondere in Hinsicht auf die unteren beiden Absätze in Daniels letztem Beitrag.

Wie wirkt sich der optimierte Code innerhalb der "x86-Familie" aus ? Also auf nicht Intel-Prozessoren so z.B. bei den AMD-Prozessoren ?

Unterscheiden sich beide Prozessoren so wenig das der performantere Code auch hier "seine Wirkung entfalten kann", verpufft der Zugewinn ggf. oder zeigen sich vielleicht sonst irgendwelche "Effekte" ?

Gerade wenn ein Prozessorhersteller einen Compiler herausbringt liegt es ja durchaus nahe dass er dessen Output, anhand der eigenen Prozessorspezifikationen, optimieren kann.

Hat da jemand eine Ahnung, Vorstellung oder Idee ?

Erwähnen möchte ich vielleicht noch dass ich im Compiler/Prozessor-Umfeld ein ziemlich unbeschriebenes Blatt bin ... :-)

Gruss Steinlaus
 
Ich habe zwar von Compilerbau so gut wie keine Ahnung, aber ich vermute sehr stark, daß die Effekte auf einem Athlon sehr ähnlich aussehen werden (benutze selbst ausschließlich Athlons, hatte aber noch keine Zeit zum Testen). Bei den herstellerspezifischen Erweiterungen (3DNow! z.B.) sieht das natürlich ganz anders aus. Ich vermute aber, daß 99,x% dessen, was benötigt wird, dem core der Befehlssätze entspringt und hier sind die beiden Prozessoren imho mehr als kompatibel genug. Alexander benutzt zwar einen Pentium 2.4 GHz, aber vor allem deshalb, weil er Intel Benchmark-Ergebnisse zukommen lassen will als Ausgleich für die Spende. Es wäre ja etwas peinlich, wenn er dann Intel Ergebnisse zukommen läßt, die mit einem Konkurrenzprodukt erzielt worden sind. Das schließt natürlich nicht aus, daß es an irgendeiner Stelle "Problemchen" mit Athlons gibt, die wir noch nicht vorhersehen können. Aber selbst wenn, dann würden diese auch rasch gefixt werden.

Grüße, Daniel
 
hi Folks,


ich wollte wissen, ob es inzwischen updates gibt. Ist es inzwischen problemlos möglich den kernle zu übersetzen?
 
@Tomonage
Ich dachte kürzlich dazu was gelesen zu haben das es gehen soll. Muss aber sagen, das ich selbst es noch nicht probiert habe.
Einfach mal ausprobieren?
 
ich werde mich heute mal aufmachen und versuchen meinen Kernel mit ICC zu bauen - einen benchmark, wenns klappt, sollt ihr natürlich auch sofort bekommen
 
l_cc_p_8.0.055.tar.gz

kann ich problemlos laden - laut Makefile brauche ich aber
l_cc_pc_8.0.058.tar.gz und
l_cc_pc_8.0.058_pe059.tar.gz

und die gibt es nur auf https://premier.intel.com
Ich habe nun mir einen account angelegt - der reicht aber nicht aus um auf die premiere Files zu gelangen. Kann ja sein dass ich zu dumm dafür bin, aber könnte mir jemand beim Download hilfestellung geben ?
 
Zuletzt bearbeitet:
sooo, ein passwort für premier.intel.com habe ich schon :) jetzt muss mir intel nur noch eine User ID zumailen *warte*

*edit*
der Aufruf von icc ist jetzt ok. Die Dateien habe ich vom oben genannten Server geladen, und nach /usr/ports/distfiles kopiert.
portupgrade -N icc erledigt den Rest problemlos.
die ~.profile muss um einen Pfad ergänz werden:
usr/local/intel_cc_80/bin
dann muss noch eine license Datei *.lic in den Ordner kopiert werden und der icc ist einsatzbereit. den Lizenzkey gibt es für lau wenn man sich für den Linuxcompiler registriert....
 
Zuletzt bearbeitet:
Zurück
Oben