AMD Optimizing C/C++ Compiler

{{short description|Optimizing C/C++ and Fortran compiler suite}}

{{Infobox software

| name =

| screenshot =

| caption =

| developer = Advanced Micro Devices

| released = {{Start date and age|2017}}

| discontinued = no

| latest release version = 5.0.0

| latest release date = {{Start date and age|2024|10|10}}

| operating system = Linux

| genre = Compiler

| license = Freeware

| website = {{URL|https://developer.amd.com/amd-aocc/}}

}}

The AMD Optimizing C/C++ Compiler (AOCC) is an optimizing C/C++ and Fortran compiler suite from AMD targeting 32-bit and 64-bit Linux platforms.{{cite web|url=http://developer.amd.com/wordpress/media/2017/04/AOCC-User-guide-%E2%80%94-AOCC-LLVM-1.pdf|title=AOCC User guide|publisher=AMD}}{{cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=AMD-AOCC-1.0-Released|title=AMD Releases Optimizing C/C++ Compiler For Ryzen - Phoronix|website=www.phoronix.com}} It is a proprietary fork of LLVM + Clang with various additional patches to improve performance for AMD's Zen microarchitecture in Epyc, and Ryzen microprocessors.{{cite web|url=http://www.phoronix.com/scan.php?page=article&item=amd-ryzen-aocc&num=1|title=Benchmarking AMD's New AOCC Compiler For Ryzen - Phoronix|website=www.phoronix.com}}

Release history

class=wikitable

|+AOCC version history{{cite web |title=AOCC Archive Section |url=https://developer.amd.com/aocc-archive-section/ |website=AMD}}

! AOCC version !! Date !! LLVM version !! Notes

1.0.0May 20176.0Uses DragonEgg with GCC 4.8.2 for Fortran.
1.1.0December 20176.0
1.2.0April 20186.0Introduction of the Flang Fortan frontend.
1.2.1July 20186.0Bugfix release.
1.3.0December 20187.0Last version to use DragonEgg.
2.0.0August 20198.0Support for 2nd generation Zen CPUs.{{cite web|url=https://developer.amd.com/wp-content/resources/AOCC-2.0-Install-Guide.pdf|title=AOCC 2.0 Install Guide|website=developer.amd.com|access-date=2020-02-19}}
2.1.0November 20199.0{{cite web|url=https://developer.amd.com/wp-content/resources/AOCC-2.1-Install-Guide.pdf|title=AOCC 2.1 Install Guide|website=developer.amd.com|access-date=2020-02-19}}
2.2.0June 202010.0
2.3.0

|December 2020

|11.0

|Introduction of OpenMP debugger

3.0.0

|March 2021

|12.0

|Support for 3rd generation Zen CPUs

3.1.0

|July 2021

|12.0

|

3.2.0

|December 2021

|13.0

|

4.0.0

|November 2022

|14.0

|Support for 4th generation Zen CPUs; Fortran 2008 and Fortran OMP 4.5 compliance improvements; Fortran debuggability improvements; improved variants of scalar, vector, and loop transformations {{cite web|url=https://www.amd.com/content/dam/amd/en/documents/pdfs/developer/aocc/release-notes-aocc-v4.0-ga.pdf|title=AOCC 4.0 Release Notes|website=www.amd.com|access-date=2024-04-08}}

4.1.0

|August 2023

|16.0

|Compliance to C++17 standards; default optimization level changed to -O2; -fPIC and -fPIE options made default; bit reproducibility support improved for C/C++ and Fortran; general improvements targeting compile time reduction; new option to display the AOCC Optimization Report; tuned for use with the AMD Math Library v4.1 {{cite web|url=https://www.amd.com/content/dam/amd/en/documents/developer/version-4-1-documents/aocc/aocc-4.1-release-notes.pdf|title=AOCC 4.1 Release Notes|website=www.amd.com|access-date=2024-04-08}}

4.2.0

|February 2024

|16.0

|Bug fixes with Fortran pre-processing and compilation; bug fixes impacting performance of C, C++, and Fortran applications; tuned for use with the AMD Math Library v4.2 {{cite web|url=https://www.amd.com/content/dam/amd/en/documents/developer/version-4-2-documents/aocc/aocc-4.2-release-notes.pdf|title=AOCC 4.2 Release Notes|website=www.amd.com|access-date=2024-04-08}}

5.0.0

|October 2024

|17.0.6

|Support for 5th generation Zen CPUs; OpenMP 5.0 for C/C++; improved optimizations {{cite web|url=https://docs.amd.com/r/en-US/63854-AOCC-release-notes/New-Features/Enhancements|title=AOCC 5.0 Release Notes (New Features/Enhancements)|website=www.amd.com|access-date=2024-10-24}}

In a May 2017 benchmark comparing AOCC v1.0 to Clang 4 and 5, and GCC 6 through 8, Phoronix found AOCC provided marginal improvement over Clang 4.0 in several benchmarks and no difference in others. Compilation time generally increased relative to Clang 4.0. Some benchmarks found some versions of GCC had better performance than some versions of Clang (AOCC included), and vice versa. In August 2019 Phoronix again benchmarked AOCC, now AOCC 2.0 against Clang 9 and GCC 9.1 and 10.0.{{cite web|url=http://www.phoronix.com/scan.php?page=article&item=epyc-7742-compilers&num=1|title=GCC vs. LLVM Clang vs. AOCC Compiler Benchmarks On The AMD EPYC 7742 2P Linux Server - Phoronix|website=www.phoronix.com|access-date=2020-02-19}}

Along with the compiler, AMD offers the AMD Optimizing CPU Libraries (AOCL), a set of numerical libraries that is roughly similar to Intel's Math Kernel Library and includes AMD Math Library (LibM), AMD Random Number Generator Library, AMD Secure RNG Library, AOCL-Sparse, BLIS, FFTW, libFLAME, and ScaLAPACK that are tuned for the Zen processors.

AMD also offers AMD μProf, a performance analysis tool similar to Intel VTune.

See also

References

{{Reflist}}