CPUDev_x86Open64_1_1140x100 The x86 Open64 compiler system is a high performance, production quality code generation tool designed for high performance parallel computing workloads. The x86 Open64 environment provides the developer the essential choices when building and optimizing C, C++, and Fortran applications targeting 32-bit and 64-bit Linux platforms. The x86 Open64 compiler system offers a high level of advanced optimizations, multi-threading, and processor support that includes global optimization, vectorization, interprocedural analysis, feedback directed optimizations, loop transformations, and code generation which extracts the optimal performance from each x86 processor core. The x86 Open64 Compiler Suite simplifies and accelerates development and tuning for x86, AMD64 (AMD® x86-64 Architecture), and Intel64 (Intel® x86-64 Architecture) applications. The x86 Open64 compilers create a strong foundation for building robust, high performance parallel code through MPI, OpenMP®, and auto-parallelization along with highly optimized libraries*. SCROLL DOWN OR CLICK HERE TO GO TO THE DOWNLOADS TABLE.

* See Release Notes regarding parallel code generation

v4.5.2.1: (Patch release) - Includes fix for a corner case in array remapping triggered with -mso flag

New in v4.5.2:

  • Support for AMD Opteron Family 15h processor (“Piledriver” core)
  • 64 bit build of Open64 compiler
  • Further incremental improvements to advanced vectorization capability

  • Support for common AVX, XOP, FMA3, FMA4, BMI, TBM, F16C intrinsic
  • Improved performance and functionality of LNO optimization
  • Further improvements to optimizer and code generation

  • Merged sources from Open64.net community trunk
  • Extended platform support, including SLES 11 sp2, RHEL 6.3

The x86 Open64 Compiler Suite provides the following features to help you generate high-performance multi-threaded applications for multi-core platforms

  • Extended proactive loop optimizations for improved loop-fusion, if-merging, loop-unswitching, loop-interchange and if-condition pre-computation.
  • Added support for partial vectorization(simdization). We now have two slightly different approaches which may help different cases. –LNO:simd=3 could help certain cases and could use -LNO:psimd_iso=ON and -LNO:psimd_iso_unroll=ON which could benefit other cases
  • Added new peep-hole optimizations including improve sign extension codes, register, usage etc.
  • Improvements to dispatch scheduling in terms of alignment, padding, instruction size etc. You can enable this using the flag -CG:dsched
  • Improved performance of certain class of intrinsic such as mm_set* through better handling of CONSTRUCTORs and CONSTs
  • Added support to unconditionally generate non-temporal stores.
  • General correctness improvements including bug fixes for problems in handling BOZ constants, constant folding in Fortran data statements, better handling of floating point rules, handling complex division overflows etc.
  • You can enable this new instructions in Piledriver core using the -march=bdver2. Alternately you can pick and choose the ISA to be enabled using -mfma (for FMA3), -mfma4, -mbmi, -mtbm flags
  • Please refer to Release Notes for further details

Platform Highlights

  • x86 32-bit and x86 64-bit code generation
  • Large File support on 32-bit systems
  • Byte-swapping I/O
  • Vector and scalar SSE/SSE2/SSE3/SSE4.1/SSE4.2/AVX/XOP/FMA4/FMA3 code generation
  • OpenMP 2.5 for shared memory models
  • MPICH2/OpenMPI for distributed and shared memory models
  • Optimized AMD Core Math Library (ACML)

Language Standards

ANSI C99, ISO C++98

  • Conforms to ISO/IEC 9899: 1999, Programming Languages – C standard
  • Conforms to ISO/IEC 14882:1998(E), Programming Languages – C++ standard

Fortran 77, 90, 95

  • Conforms to ISO/IEC 1539-1: 1997 Programming Languages – Fortran

Inter-language calling IEEE 754 floating point support

Optimization Highlights

  • Global optimizations, e.g.
    • Partial redundancy elimination
    • Constant propagation and code motion
    • Strength reduction and expression simplification
    • Dead code elimination and common sub-expression elimination
  • Loop-nest optimizations(enabled with ‘-O3′), e.g.
    • Loop fusion and distribution
    • Loop interchange and cache locality optimization
    • Vectorization for SSE* and AVX code generation
    • Software data pre-fetching
  • Code generation and optimizations, e.g.
    • Advanced register allocation
    • Loop unrolling
    • Instruction selection and scheduling
    • Peephole optimizations

Optimization Highlights ... cont.

  • Feedback-directed optimizations(enabled with ‘-fb_create/-fb_opt’), e.g.
    • Code layout
    • Feedback-directed function inlining and de-virtualization
    • Feedback-guided register spilling
    • Value specialization
  • Inter-procedural analysis and optimization(enabled with ‘-ipa’), e.g.
    • Function inlining and cloning
    • Inter-procedural alias analysis
    • Data re-layout optimizations for structure members
    • Inter-procedural constant propagation and dead code elimination
  • Multi-core scalability optimizations (enabled with ‘-mso’)

Documentation

Support

AMD offers specialized support to the application developers and users throughout the development and test cycle of their applications. Support is available via the following mechanisms:

If you do not find what you need above, AMD’s Technical Support is available to x86 Open64 customers. Registration is required. AMD is committed to providing timely technical support to customers using the x86 Open64 compiler to develop or port applications to AMD platforms within an enterprise Linux® environment. The AMD x86 Open64 Technical Support Service and AMD Service Level Agreement describe the services, priorities, responsibilities, and other terms.

Related Resources

Open64 is an open source, optimizing compiler for x86-32 and x86-64 architectures as well as many other micro-architectures. It derives from the Silicon Graphics, Inc. compilers for the MIPS processor, called MIPSPro. It was released under the GNU GPL in 2000. Open64 supports C/C++ and Fortran 77/95, as well as the shared memory programming model OpenMP. The compiler can perform high-quality interprocedural analysis, data-flow analysis, data dependence analysis, and array region analysis.

Open64 leverages many aspects from the GNU Compiler Collection (GCC). Built within the Open64 framework is the gcc/g++ front-end which augments the gnu-compatibility of the Open64 compiler system. The Open64 compiler also relies on the GNU collection of binary tools (i.e. binutils) and C Library (i.e. glibc).

  • For more information regarding the GNU preprocessors and binutils, visit GNU.org.

AMD x86 Open64 Team Insights

  This video features AMD’s Open64 Compiler Team talking about Open64 origins, unique features of this compiler, such as multi-core scalability optimizations and other important optimization flags you should not miss such as loop nest optimizations (LNO), and interprocedural analysis (IPA) to name a few. Many thanks to the team for giving us this insight directly! (14:23) Watch the video now  

x86 Open64 Forum

Feedback or Questions? Let us know in the forum.

Downloads

The x86 Open64 Compilers for Linux provides C, C++, and Fortran development tools. In addition to the software download, you can obtain Technical Support on installation, usage, configuration, and application development advice. Please read the Installation Prerequisites and Guidelines which provides instructions on how to configure your environment and install the x86 Open64 compilers.

MD5s

Downloads

File Name Version Size Launch Date OS Bitness Description
Linux® - 4.5.2.1 patch

File Name

Version

4.5.2.1-1

Size

55 MB

Launch Date

03/28/2013

OS

Bitness

Host 32/64-bit

Description

Source code for x86 Open64 4.5.2.1-1
SLES 11, RHEL 6 - For AMD Opteron Family 15h processors - 4.5.2.1 patch

File Name

Version

4.5.2.1-1

Size

47 MB

Launch Date

03/28/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2.1-1 Compilers for Linux (preferred Binutils version 2.20.0-0.7.9 and above. For AMD Opteron Family 15h processor)

File Name

Version

4.5.2.1-1

Size

53 MB

Launch Date

03/28/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2.1-1 Compilers for Linux (preferred Binutils version 2.20.0-0.7.9 and above. For AMD Opteron Family 15h processor)
SLES11, SLES 10 SP2, SLES 10 SP3, RHEL 6, RHEL 5.5 - For any x86-64 architecture - 4.5.2.1 patch

File Name

Version

4.5.2.1-1

Size

53 MB

Launch Date

03/28/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2.1-1 Compilers for Linux with older GlibC/assembler

File Name

Version

4.5.2.1-1

Size

53 MB

Launch Date

03/28/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2.1-1 Compilers for Linux with older GlibC/assembler
SLES 10 SP2, SLES 11 & RHEL 5.4

File Name

Version

1.0

Size

279.71 MB

Launch Date

01/18/2011

OS

Bitness

Host 64-bit Target 32/64-bit

Description

Complete SDK binary package including compiler, libraries, profiler, and analyzer.
Linux® - 4.5.2 release

File Name

Version

4.5.2-1

Size

55 MB

Launch Date

08/08/2012

OS

Bitness

Host 32/64-bit

Description

Source code for x86 Open64 4.5.2-1
SLES 11, RHEL 6 - For AMD Opteron Family 15h processor - 4.5.2 release

File Name

Version

4.5.2-1

Size

47 MB

Launch Date

08/08/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2-1 Compilers for Linux (preferred Binutils version 2.20.0-0.7.9 and above. For AMD Opteron Family 15h processor)

File Name

Version

4.5.2-1

Size

53 MB

Launch Date

08/08/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2-1 Compilers for Linux (preferred Binutils version 2.20.0-0.7.9 and above. For AMD Opteron Family 15h processor)
SLES11, SLES 10 SP2, SLES 10 SP3, RHEL 6, RHEL 5.5 - For any x86-64 architecture - 4.5.2 release

File Name

Version

4.5.2-1

Size

53 MB

Launch Date

08/08/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2-1 Compilers for Linux with older GlibC/assembler

File Name

Version

4.5.2-1

Size

53 MB

Launch Date

08/08/2012

OS

Bitness

Host 64-bit Target 32/64-bit

Description

x86 Open64 4.5.2-1 Compilers for Linux with older GlibC/assembler