LLVM Clang 16 vs. GCC 13 Compiler Performance On AMD 4th Gen EPYC "Genoa"

Written by Michael Larabel in Software on 30 May 2023 at 11:42 AM EDT. Page 5 of 6. 12 Comments.
oneDNN benchmark with settings of Harness: Recurrent Neural Network Training, Data Type: bf16bf16bf16, Engine: CPU. Clang 16.0.3 was the fastest.
oneDNN benchmark with settings of Harness: Recurrent Neural Network Inference, Data Type: bf16bf16bf16, Engine: CPU. Clang 16.0.3 was the fastest.

The most significant wins for the Clang compiler were when building Intel's oneDNN neural network library.

AOBench benchmark with settings of Size: 2048 x 2048, Total Time. GCC 13.1.1 was the fastest.
SecureMark benchmark with settings of Benchmark: SecureMark-TLS. Clang 16.0.3 was the fastest.
OpenJPEG benchmark with settings of Encode: NASA Curiosity Panorama M34. Clang 16.0.3 was the fastest.
OpenSSL benchmark with settings of Algorithm: SHA512. Clang 16.0.3 was the fastest.
OpenSSL benchmark with settings of Algorithm: RSA4096. GCC 13.1.1 was the fastest.
OpenSSL benchmark with settings of Algorithm: ChaCha20. GCC 13.1.1 was the fastest.
OpenSSL benchmark with settings of Algorithm: AES-128-GCM. GCC 13.1.1 was the fastest.
OpenSSL benchmark with settings of Algorithm: AES-256-GCM. GCC 13.1.1 was the fastest.
OpenSSL benchmark with settings of Algorithm: ChaCha20-Poly1305. GCC 13.1.1 was the fastest.
Liquid-DSP benchmark with settings of Threads: 256, Buffer Length: 256, Filter Length: 57. Clang 16.0.3 was the fastest.
Liquid-DSP benchmark with settings of Threads: 384, Buffer Length: 256, Filter Length: 57. Clang 16.0.3 was the fastest.
ASTC Encoder benchmark with settings of Preset: Fast. Clang 16.0.3 was the fastest.
ASTC Encoder benchmark with settings of Preset: Medium. Clang 16.0.3 was the fastest.

Some of these workloads are more relevant on servers than others, the intent was on simply loading up the AMD EPYC 9654 2P server with a wide range of binaries built under both of these leading open-source compilers.

MariaDB benchmark with settings of Clients: 2048. GCC 13.1.1 was the fastest.
MariaDB benchmark with settings of Clients: 4096. GCC 13.1.1 was the fastest.

The GCC-built MariaDB MySQL server was slightly faster than when built under Clang 16.

PostgreSQL benchmark with settings of Scaling Factor: 100, Clients: 800, Mode: Read Only. Clang 16.0.3 was the fastest.
PostgreSQL benchmark with settings of Scaling Factor: 100, Clients: 800, Mode: Read Only, Average Latency. Clang 16.0.3 was the fastest.

It was a competitive race with the PostgreSQl server.


Related Articles