INTeL



  • Ich hab ein Programm mit MFC geschrieben und mit VC++ 6.0 compiliert, das nicht ganz geschwindigkeitsunkritisch ist. Im Vergleich zu VC soll allerdings der INTeL-Compiler deutlich schneller sein (bis 30% glaub ich). Da es den INTeL ja wohl auch (als reinen Compiler für private Zwecke) für lau gibt, wäre das ja ne nette Alternative zu einem 30% schnelleren Rechenknecht.

    Fraaaaaaaaage: 1) Kennt der INTeL MFC, kann ich also mein bisheriges Programm ohne Rewrite übernehmen?

    1. ... oder als Alternative: Der geschwindigkeitskritische Teil liegt in einer Library ("Win32 Static Library"). Kann VC++ 6.0 auch mit einer von INTeL compilierten Library umgehen und mit seinem eigenen Code vermischen?

    2. Öhm, ich hab gar keinen INTEL-Prozessor, sondern einen AMD K6-2 450 MHz. Kann der INTeL-Compiler dafür eigentlich überhaupt optimieren (AMD hat meines Wissens nach gar keinen eigenen Compiler)?

    Thx!



  • [QUOTE]Da es den INTeL ja wohl auch (als reinen Compiler für private Zwecke) für lau gibt,
    echt? aber nur für Linux!

    Fraaaaaaaaage: 1) Kennt der INTeL MFC, kann ich also mein bisheriges Programm ohne Rewrite übernehmen?
    kA

    2) ... oder als Alternative: Der geschwindigkeitskritische Teil liegt in einer Library ("Win32 Static Library"). Kann VC++ 6.0 auch mit einer von INTeL compilierten Library umgehen und mit seinem eigenen Code vermischen?
    sofern er auch das COFF-Format erzeugt

    3) Öhm, ich hab gar keinen INTEL-Prozessor, sondern einen AMD K6-2 450 MHz. Kann der INTeL-Compiler dafür eigentlich überhaupt optimieren (AMD hat meines Wissens nach gar keinen eigenen Compiler)?
    glaube kaum, das Intel seinem Konkurrenten hilft...



  • Der Intel optimiert echt besser als der MSC, aber hauptsächlich für Intel-Prozessoren. Ich glaube aber nicht, dass dieser dann auf AMD sehr viel langsamer sein wird. Kannst doch 2 Versionen ausliefern. Beim Setup wird die CPU geprüft und die jeweils optimierte Version installiert... Der Compiler ist übrigens nicht für lau... Der ist sogar relativ teuer, der Ms Compiler kann aber einfach gegen Intel ersetzt werden...



  • Der Compiler ist übrigens nicht für lau... Der ist sogar relativ teuer, ...

    Ja, ich hab leider auch festgestellt, dass das nicht ganz stimmt, man kann nur eine 30 Tage Testversion runterladen, ok das reicht natürlich prinzipiell, aber wenn der so bei VC 6.0 Introductory-Edition dann bei jedem Programm, das man schreibt, so eine dämliche Meldung ausgibt, ist mir damit auch nicht geholfen (also, ich hab das noch nicht ausprobiert, aber es ist zumindest meine Befürchtung).

    der Ms Compiler kann aber einfach gegen Intel ersetzt werden...

    Öhm ... und was heißt das?



  • Laut letzter Tests, die mir bekannt sind, optimiert der Intel-Compiler nicht deutlich besser als der MSC. Das Aufschlüsseln von kurzen Schleifen oder Rekursionen bis zu einer bestimmten Tiefe ist meist nicht das, was ein Programm langsam macht. Meist hilft ein wenig Nachdenken beim Codieren, um einen Code schneller zu machen, als es jeder Compiler schafft.
    Die Compiler optimieren alle nicht auf MMX oder SIMD. Muss man also noch manuell als ASM eingeben.
    Der Intel-Compiler optimiert nur für Intel. Da AMD teilweise andere Techniken nutzt, kann es sein, dass ein Intel-optimiertes Programm auf AMD sehr viel langsamer läuft (hab es aber nicht ausprobiert).

    Vorteil des Intel-Compilers: Besseres Debuggen, bessere Tools zum Finden von Speicherleaks sowie ein guter Profiler. Und er fügt sich nahtlos in die VC-IDE ein.



  • 2 Fragen:

    Ist bekannt ob er mit VC7 läuft ?

    Hat jemand eine direckte URL zu weitern Infos ?

    thx



  • Original erstellt von RenéG:
    Laut letzter Tests, die mir bekannt sind, optimiert der Intel-Compiler nicht deutlich besser als der MSC.

    Quelle?



  • Quelle weiss ich nicht mehr.
    Hab mir nur gemerkt, dass sich das Preis-/Leistungsverhältnis nur für Compiler-Optimierungen nicht lohnt.



  • Quelle erübrigt sich - hab es getestet (sowohl P4, als auch auf P3). Speziell bei der Umsetzung bei Bildverarbeitungsalgos. Die Unterschiede waren eher minimal - also quasi nicht vorhanden.

    Meist hilft ein wenig Nachdenken beim Codieren, um einen Code schneller zu machen, als es jeder Compiler schafft.

    So siehts aus. Das ultimative Tool, das uns den Code optimiert, Fehler beseitigt und das Frühstück macht wird wohl noch 'ne weile dauern.



  • Welchen Leistungs-Gewinn erzielt die VC++.NET-Option "whole program optimization"?
    Wie kommt er zustande? Durch inlinen von Funktionen in verschiedenen Modulen? Kann dies auch virtuelle Methoden inline machen?



  • Kann dies auch virtuelle Methoden inline machen?

    Nein, das geht technisch nicht. Der Compiler weiß bei virtuellen Methoden erst zur Laufzeit, was er aufrufen soll. Deshalb kann auch kein Compiler virtuelle Methoden "inline" machen.


Anmelden zum Antworten