View All Business Blog Blogs

The x86 Open64 Compiler Suite

by John Fruehe

Often, in the server world, we have such a laser focus on the hardware, that we forget about things that are happening on the software side. The AMD Opteron™ processor is now delivering leading integer and floating point throughput, and  a big part of this  great performance can be attributed to the x86 Open64 Compiler Suite, a high performance compiler that offers advanced optimization and code generation technology for x86-based processors.    

For those of you not familiar with a compiler, it is the program that takes the source code (the input that the developer writes) and converts it into an application that a computer can read and execute. The x86 Open64 compiler is collaboratively developed by commercial companies, universities, research institutes and academia to leverage and enhance the compiler technology to support current and future x86 platforms.  AMD is a strong supporter of the Open64 Compiler community and our contributions to this open source software project not only help AMD but also help the x86 processor industry as a whole. You see, the Open64 Compiler is not CPU-specific – it can be run on any x86-based system.  And because it is an open project, the people working on it get to review all of the input from the working teams, providing a level of transparency that prevents any funny business. AMD’s goal for the x86 Open64 Compiler Suite is to provide the industry with a high performance, production quality code generation tool designed for demanding workloads and benchmarks.  Over the past few years, AMD  teams working in Portland, Sunnyvale and Bangalore have done a great job on driving optimizations into the Open64 compiler that deliver real improvements in  AMD Opteron processor performance.

AMD’s strategy is to provide its customers with the choice of compilers that are enabled for a variety of workloads.  To achieve this goal, AMD has made investments in two types of compilers:

  • Platform  compilers
  • High Performance compilers

 

The platform compilers are widely adopted by Operating System Vendors (OSVs), Independent Software Vendors (ISVs) and application developers.  These compilers include the open source software GCC compiler for Linux® and Microsoft Virtual Studio C/C++ compiler for Windows®. AMD co-develops support for AMD platforms with the GCC community and with Microsoft.  This effort helps ensure that these platform compilers provide access to the latest features of AMD processors.  However, when it comes to optimization and code generation strategy, platform compilers do not necessarily provide leading edge optimization technology since their main focus is on generating code that works across the broad range of x86-based processors.  In addition, the platform compiler product release cycles from OSVs do not always align well with AMD’s platform launches, which means a developer might have to wait months before getting a version of the compiler that supports a new processor feature.

The x86 Open64 compiler provides an option for developers in segments where higher performance continues to be a requirement.  This includes developers in the HPC world who are building custom programs to solve some of the large technical problems that the world faces today.  The x86 Open64 compiler is also used to build games, productivity applications, database applications, networking applications and collaborative applications.  In addition, OEMs like Acer, Dell, HP, IBM,  and SuperMicro have used the x86 Open64 compiler for SPEC CPU2006 publications on 4-, 6-, 8-, and 12-core AMD Opteron processor-based systems, posting some record breaking scores. 

Our team estimates that a portion of the uplift that we saw with the 12-core AMD Opteron 6100 Series processor actually came from software optimization as well as the obvious core count increase.  When the team looked at the exact same platform, running the exact same tests and compiled with different x86 compilers they saw performance differences based on the compiler alone. In fact internal measurements show that, when performance is compared between the LLVM 2.7, GCC 4.5, Intel Compiler 11.1, Portland Group Compiler 2010, and x86 Open64 4.2.4  compilers on a variety of integer and floating point codes, the x86 Open64 compiler shows gains ranging from 20-45% on integer code and 12-40% on floating point code. 

So, when it comes to actually choosing compilers it definitely merits asking a few questions about the underlying compiler technology.  If not, you might be selling your performance short.

If games are played with compilers, the ultimate loser is the customer.  My colleague, Margaret Lewis, wrote a blog earlier this year that goes into more details about compilers, benchmarks, and the effect on users and the industry.

To download the latest version of x86 Open64 compiler suite and get started today, go to: http://developer.amd.com/cpu/open64/pages/default.aspx

 John Fruehe is the Director of Product Marketing for Server, Embedded and FireStream products at AMD.  His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.

SHARE: twitter stumble upon delicious facebook

COMMENTS: 0

Comments are closed.

Submit a Comment

Connect with Facebook

Reminder about Comments:

All comments will be moderated by AMD before they are published. Unrelated comments or requests for support will not be published. Please post your technical questions in the AMD Forums or for drivers and other support resources visit AMD Support. By submitting a comment, you are agreeing to AMD Terms and Conditions.