Download AMD x86 Open64 Compiler Suite 4.2.3.1-1

KIDH

Grand Admiral Special
Mitglied seit
09.03.2007
Beiträge
4.837
Renomée
531
Standort
Pogotopia
  • Spinhenge ESL
AMD hat seine Variante des Open64 Compilers in der Version 4.2.3.1-1 veröffentlicht. Der Compiler stammt von den SGI-Compilern für den MIPS R10000, welche im Jahr 2000 unter der GPL veröffentlicht wurden, ab. AMD's optimierender Compiler ist vor allem für die x86-32/64-Plattform unter Linux gedacht, ist aber auch zu vielen anderen Plattformen kompatibel.

Open64 unterstützt die Sprachen Fortran 77/95 und C/C++ und soll vor allem hochperformanten Code für Parallel-Computing erzeugen (über MPI, OpenMP und Auto-Parallelisierung mit hochoptimierten Bibliotheken).


<b>Funktionen:</b>
<ul><li>Language Standards<ul>
<li>ANSI C99, ISO C++98
<ul><li>Conforms to ISO/IEC 9899: 1999, Programming Languages - C standard</li><li>Conforms to ISO/IEC 14882:1998(E), Programming Languages - C++ standard</li></ul></li><li>Fortran 77, 90, 95<ul><li>Conforms to ISO/IEC 1539-1: 1997 Programming Languages - Fortran</li></ul></li><li>Inter-language calling </li><li>IEEE 754 floating point support </li><li>Pragmas to control optimizations </li></ul></li>

<li>Platform Highlights<ul>
<li>x86 32-bit and x86 64-bit code generation </li><li>Large File support on 32-bit systems</li><li>Byte-swapping I/O</li><li>Vector and scalar SSE/SSE2/SSE3 code generation</li><li>OpenMP 2.5 for shared memory models</li><li>MPICH2 for distributed and shared memory models</li><li>Optimized AMD Core Math Library (ACML)</li></ul></li>

<li>Optimization Highlights<ul>
<li>Global optimizations, e.g.<ul><li>Partial redundancy elimination</li><li>Constant propagation and code motion</li><li>Strength reduction and expression simplification</li><li>Dead code elimination and common sub-expression elimination</li></ul></li><li>Loop-nest optimizations<br>(enabled with '-O3'), e.g.<ul><li>– Loopfusion and distribution</li><li>Loop interchange and cache locality optimization</li><li>Vectorization for SSE* code generation</li><li>Software data prefetching</li></ul></li></ul><ul><li>Code generation and optimizations, e.g.<ul><li>Advanced register allocation</li><li>Loop unrolling</li><li>Instruction selection and scheduling</li><li>Peephole optimizations</li></ul></li><li>Feedback-directed optimizations<br>(enabled with ‘-fb_create/-fb_opt’), e.g.<ul><li>Code layout</li><li>Feedback-directed function inlining and de-virtualization</li><li>Feedback-guided register spilling</li><li>Value specialization</li></ul></li></ul><ul><li>Inter-procedural analysis and optimization<br>(enabled with '-ipa'), e.g.<ul><li>Function inlining and cloning</li><li>Inter-procedural alias analysis</li><li>Data re-layout optimizations for structure members</li><li>Inter-procedural constant propagation and dead code elimination</li></ul></li></ul></li></ul>
<b>Changelog:</b>
<ul><li>What’s New in v4.2.3:<i><ul>
<li>Improved interprocedural analysis to include structure array copy optimization and array remapping optimization.</li><li>Improved loop optimizations: loop unrolling, loop unroll and jam, triangular loops, proactive loop interchange, loop distribution, loop peeling.</li><li>Improved redundancy elimination optimizations for stores and memory initialization; better integration of re-association and common sub-expression elimination; enhanced expression factorization.</li><li>Improved instruction selection and addressing code generation.</li><li>Improved vectorization.</li><li>Extended prefetching to include arrays with inductive base addresses.</li><li>Enhanced loop multi-versioning.</li><li>Improved OpenMP and auto-parallelization code generation.</li><li>Improved tuning of OpenMP and parallel runtime library functions.</li><li>Introduced aggressive optimizations to improve scalability/bandwidth utilization of multi-core processors. (Invoked by specifying the new "-mso" flag.)</li><li>Improved gcc compatibility, including support for more attributes, command-line options, and built-in functions.</li><li>Expanded platform support, including SLES 11 and RHEL 5.4.</li><li>Many bug fixes.</li></ul></i></li></ul>
<b>Download:</b><ul><li><a href="http://www.planet3dnow.de/cgi-bin/file/get.cgi?20100203040931">AMD x86 Open64 Compiler Suite 4.2.3.1-1 [Source]</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/file/get.cgi?20100203040932">AMD x86 Open64 Compiler Suite 4.2.3.1-1 [Linux, .tar.bz2]</a></li><li><a href="http://www.planet3dnow.de/cgi-bin/file/get.cgi?20100203040933">AMD x86 Open64 Compiler Suite 4.2.3.1-1 [Linux, .rpm]</a></li></ul>
<b>Links zum Thema:</b>
<ul><li><a href="http://developer.amd.com/cpu/open64/pages/default.aspx#" target="b">Offizielle Internetpräsenz</a></li><li><a href="http://forums.amd.com/devforum" target="b">Offizielles Forum</a></li><li><a href="http://de.wikipedia.org/wiki/Freie_Software" target="b">Was ist Freie Software?</a></li></ul>
 
Hallo

Vector and scalar SSE/SSE2/SSE3 code generation

Da ich auf dem Gebiet Programmieren und Compiler ein Laie bin,würde ich gerne
wissen ob sich mit diesem Compiler auch Programme mit SSE4a Unterstützung
erstellen lassen,ohne mich jetzt auf einen bestimmten Anwendungszweck festzulegen ?

MfG
RedBaron
 
Als Nichtprogrammierer...

Ist diese Nachricht nun gut oder schlecht?

Kann man schon jetzt beurteilen ob der compiler etwas taugt?

In welchen Bereichen benötigt man solche compiler?
BOINC oder auch im "normalen" Leben..


Grüße..
 
Als Nichtprogrammierer...

Ist diese Nachricht nun gut oder schlecht?

Kann man schon jetzt beurteilen ob der compiler etwas taugt?

In welchen Bereichen benötigt man solche compiler?
BOINC oder auch im "normalen" Leben..


Grüße..
Ob der Compiler etwas taugt, weiß ich nicht. Im normalen Leben brauchst du so etwas aber nicht. Der meiste Code ist eh nicht wirklich auf Parallelität optimiert. Da kann auch ein Compiler so viel nicht mehr raus holen. Das macht mehr auf Numbercrunchern Sinn, wo von vornherein auf entsprechende Codequalität geachtet wird.
 
Deswegen ja auch der Fokus auf Linux, wo der anwendungszweck primär im Serverbereich liegt.
Da gibts meistens etwas besser parallelisierte Software und das "selber kompilieren" ist gebräuchlich.
Der Enduser wird damit soweiso kaum in berührung kommen, da die meisten Hersteller proprietärer Software ja nur fertige kompilate liefern und die eben zumeist mit Microsofts- oder Intel-Compiler kompiliert wurden (Intel hat nun mal den höheren Martkanteil und der Intelsche Compiler ist von den Features her einfach gut.)
 
Exakt. Die Performace allein bringt es nicht. Wichtig sind Tools und Produktivität. Ich bezweifele das es eine gute Idee war sich auf diesen Compiler zu stürzen. Man hätte lieber eine Schmiede wie Portland kaufen sollen, sowie Java und .Net-Optimierungen voran treiben sollen
 
Exakt. Die Performace allein bringt es nicht. Wichtig sind Tools und Produktivität. Ich bezweifele das es eine gute Idee war sich auf diesen Compiler zu stürzen. Man hätte lieber eine Schmiede wie Portland kaufen sollen, sowie Java und .Net-Optimierungen voran treiben sollen
Was ist denn falsch an einem Tool von einstigen Supercomputerriesen SGI?

Für den High Performance Bereich ist doch so etwas ganz gut. Insbesondere Fortran, OpenMP 2.5, C und C++ werden industrie- und plattformübergreifend verwendet.

Und noch eine Frage habe ich. Dieses Open64 hat nichts mit der EKOPath-Suite vom in Insolvenz gegangenen SiCortex zu tun (nun ist deren Compiler bei Cray untergekommen)?

MFG Bobo(2010)
 
Was ist denn falsch an einem Tool von einstigen Supercomputerriesen SGI?

Für den High Performance Bereich ist doch so etwas ganz gut. Insbesondere Fortran, OpenMP 2.5, C und C++ werden industrie- und plattformübergreifend verwendet.
Er kann kein Java und C#. ;D

Und noch eine Frage habe ich. Dieses Open64 hat nichts mit der EKOPath-Suite vom in Insolvenz gegangenen SiCortex zu tun (nun ist deren Compiler bei Cray untergekommen)?
Doch, Open64 war auch die Basis für EkoPath:
http://www.open64.net/about-open64.html
 
In Hinblick auf OpenCL könnte der Compiler ganz nützlich sein...Nvidia nutzt für Cuda auch einen Open64-Zweig.
 
In Hinblick auf OpenCL könnte der Compiler ganz nützlich sein...Nvidia nutzt für Cuda auch einen Open64-Zweig.

Wird aber erst so richtig kommen, wenn die ersten GPUs OpenCL unterstützen, wobei fraglich ist ob dabei die Schnittstellen CAL / Cuda oder eine andere (Gallium / Mesa / Grand Central @ Linux ? --> mit freien Treibern ) angesprochen werden .
 
alle etwas verwirrt?

R600 --> HD 2900 (<-- hier wurden bei ATI die Unified Shader eingeführt, stimmt nicht ganz siehe Xenos)
RV670 -> HD 38xx Serie
werden beide nicht unterstützt
defakto erst ab RV700 -> HD 4000 Serie wird OpenCL unterstützt (keine größeren Optimierungen geplant)
HD 5000 Serie wurde angeblich mit OpenCL in mind konstruiert. OpenCL Implementierung soll verstärkt auf diese Serie optimiert werden.
Liste

Bei Nvidia wird alles ab G80 --> 8800 unterstützt. (<-- hier wurden bei Nvidia die Unified Shader eingeführt)

Stichwort: "Compute Shader" -> Voraussetzung für OpenCL

siehe auch Artikel von Gipsel
 
Zuletzt bearbeitet:
Da war einer schneller. ;D

@Puck:
Die GF6 war Konkurrenz zur Radeon X-Serie und kam 2004 raus, zwei Generationen vor Unified Shadern...die hatte damals das SM 3.0 eingeführt, vll deswegen die Verwechslung?
 
Zurück
Oben Unten