• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

AMD Ryzen-optimized C and C++ Compilers Improve Performance

btarunr

Editor & Senior Moderator
Staff member
Joined
Oct 9, 2007
Messages
47,690 (7.42/day)
Location
Dublin, Ireland
System Name RBMK-1000
Processor AMD Ryzen 7 5700G
Motherboard Gigabyte B550 AORUS Elite V2
Cooling DeepCool Gammax L240 V2
Memory 2x 16GB DDR4-3200
Video Card(s) Galax RTX 4070 Ti EX
Storage Samsung 990 1TB
Display(s) BenQ 1440p 60 Hz 27-inch
Case Corsair Carbide 100R
Audio Device(s) ASUS SupremeFX S1220A
Power Supply Cooler Master MWE Gold 650W
Mouse ASUS ROG Strix Impact
Keyboard Gamdias Hermes E2
Software Windows 11 Pro
AMD followed up its Ryzen processor launch with support for the software development ecosystem by releasing special C and C++ compilers that let you make software that can fully take advantage of the "Zen" micro-architecture. The new AOCC 1.0 C/C++ compilers by AMD are based on LLVM Clang, with "Zen" specific patches. AMD claims AOCC offers improved vectorization and better code generation for "Zen" based CPUs. It also includes a "Zen" optimized linker.

Phoronix benchmarked AOCC against other more common compilers such as GCC 6.3, GCC 7.1, GCC 8, LLVM Clang 4.0, and LLVM Clang 5.0 using a Ryzen 7-1700 eight-core processor powered machine, running on Ubuntu 17.04 Linux, and found that AOCC offers higher performance than GCC in most cases, LLVM Clang in some cases, and marginally higher performance than LLVM Clang in some cases. Find more results in the link below.



View at TechPowerUp Main Site
 
How does it compare to Intel's compiler since most use that only?
 
I'm not asking for Linux specifically, I was asking how specific compilers for Ryzen narrow the gap which Intel's creates on purpose?
 
Did you somehow read a different article on Phoronix then I did?

Phoronix said:
In most workloads of the dozens of tests ran, the AOCC 1.0 performance ended up being right in line with upstream Clang 4.0. In a few cases AOCC was faster, but it was generally about three percent or less. In some of the cases where AOCC was faster, it was only to then lose out to the GCC compiler being faster yet. In some benchmarks, the Clang 5.0 development code was also faster than AOCC.

Interesting, how you came to a totally different conclusion.
 
What a non-news. Come back to me when you improve it over 10%, not 1%.
 
They barely improve over what they patched. Not impressive.
 
They barely improve over what they patched. Not impressive.

Maybe it exposes some Ryzen-specific features and scheduling?
 
Maybe it exposes some Ryzen-specific features and scheduling?

I would hope. Those initial results don't show much performance gain unless they basically didn't utilize something similar to that.
 
Himeno, 5.8% improvement over GCC, what are you complaining about?
 
Any improvement is still improvement.
Except when it's not an improvement. Read the original article, with a couple of exception, this compiler always falls between clang and gcc. Sometimes clang produces faster code than this, other times gcc beats it. This compiler wins in exactly one benchmark, but at the same time it also finishes last once.
 
Eh.. I don't think they would bother if it didn't improve something...I refer to BTA's post... Maybe Ryzen specific features and scheduling.... more likely for the scheduling.
 
Except when it's not an improvement. Read the original article, with a couple of exception, this compiler always falls between clang and gcc. Sometimes clang produces faster code than this, other times gcc beats it. This compiler wins in exactly one benchmark, but at the same time it also finishes last once.

it beats the GCC (most common) compiler 90% of the time, and usually by a large margin.
Horrible results I must say :)
 
it beats the GCC (most common) compiler 90% of the time, and usually by a large margin.
Horrible results I must say :)
I went back to the article and counted: it beats gcc in 5 tests and looses to gcc in 3. In 19 other tests, it performs about the same.
In all instances where it wins, Clang also wins, so the win is not because of this compiler. In 2 out of the 3 tests where it looses, it also trails Clang.
 
Himeno, 5.8% improvement over GCC, what are you complaining about?

it beats the GCC (most common) compiler 90% of the time, and usually by a large margin.
Horrible results I must say :)

They didn't patch GCC. It's a patchset to clang, which it fails to improve.
 
Who uses icc on linux with ryzen?

No one...but windows on the other hand...

Guess why no one wants to talk about linux benchmarking? Intel isn't so rosy and you can see the actual IPC of Ryzen.
 
Last edited:
No one...but windows on the other hand...

Guess why no one wants to talk about linux benchmarking? Intel isn't so rosy and you can see the actual IPC of Ryzen.
Phoronix (the site that did these benchmarks) does Linux benchmarks exclusively. For 13 years now. I've never seen Intel doing anything worse just because it ran on Linux. In fact, in apps that are actually cross-platform (e.g. Unigine benchmarks) I get almost identical scores between Linux and Windows.
No one's denying Intel may look better when using ICC, but there's no conspiracy where Intel's performance is made to look better than it actually is.

You're implying Windows code is usually compiled using ICC, but I bet you can't post a source for that.
 
Phoronix (the site that did these benchmarks) does Linux benchmarks exclusively. For 13 years now. I've never seen Intel doing anything worse just because it ran on Linux. In fact, in apps that are actually cross-platform (e.g. Unigine benchmarks) I get almost identical scores between Linux and Windows.
No one's denying Intel may look better when using ICC, but there's no conspiracy where Intel's performance is made to look better than it actually is.

You're implying Windows code is usually compiled using ICC, but I bet you can't post a source for that.

Why do I need a source? LOL. Why would there have been an ICC scandal if no one was using ICC only? I guess we'll just sweep that under the rug, too.

Also, we all know linux is going to be far ahead on optimization. FX series performed quite a bit better on linux.
 
Why do I need a source? LOL. Why would there have been an ICC scandal if no one was using ICC only? I guess we'll just sweep that under the rug, too.

Also, we all know linux is going to be far ahead on optimization. FX series performed quite a bit better on linux.

I ran a couple Linux tests on the 1800x I was playing with and it didn't change in performance.
 
I ran a couple Linux tests on the 1800x I was playing with and it didn't change in performance.

People cry about single thread. I just looked at single thread on linux and aside from the couple messed up results, they're all pretty good and hanging in there with intel, especially in relation to clock.
 
People cry about single thread. I just looked at single thread on linux and aside from the couple messed up results, they're all pretty good and hanging in there with intel, especially in relation to clock.

Single threaded competes with Intel in Windows?
 
Why do I need a source? LOL. Why would there have been an ICC scandal if no one was using ICC only? I guess we'll just sweep that under the rug, too.

Also, we all know linux is going to be far ahead on optimization. FX series performed quite a bit better on linux.

If you really want to know what the ICC debacle was about, you go here: https://en.wikipedia.org/wiki/Intel_C++_Compiler#Criticism
And you not it was like 7 years ago. VIA is mentioned in there, that's how old it is.

Also, I've been watching Phoronix for years and I've never mentioned AMD performing any better. Do you do not need to provide sources, because "we all know".

People cry about single thread. I just looked at single thread on linux and aside from the couple messed up results, they're all pretty good and hanging in there with intel, especially in relation to clock.

It's the same on Windows: IPC is about the same, but Ryzen is clocked significantly lower. Thus single thread performance trails.
 
How does it compare to Intel's compiler since most use that only?
Most Windows software uses Microsoft's C++ compiler, while most cross-platform software is compiled with GCC or LLVM, including Firefox, Chrome, VLC, ffmpeg, some game engines, etc.

Generally both GCC and LLVM are better at optimizing code than Microsoft's compiler.

Maybe it exposes some Ryzen-specific features and scheduling?
No, not scheduling.
Compiler optimizations applies a set of generic optimizations, and sometimes a few CPU specific ones. Zen doesn't seem to offer a lot of new features vs. the competition.
 
A fair amount of older software complied with ICC still exists.

Running ICC_Patch.exe shows:
iccpatch1.png
iccpatch2.png
 
Last edited:
Back
Top