AMD Zen 4 Auto IBRS Performance Initial performance tests of Auto IBRS set for Linux 6.3 compared to prior Retpoline implementation... Benchmarks by Michael Larabel for a future article. More to come. Auto IBRS: Processor: AMD Ryzen 9 7950X 16-Core @ 4.50GHz (16 Cores / 32 Threads), Motherboard: ASUS ROG CROSSHAIR X670E HERO (0805 BIOS), Chipset: AMD Device 14d8, Memory: 32GB, Disk: Western Digital WD_BLACK SN850X 1000GB + 2000GB, Graphics: AMD Radeon RX 6800 XT 16GB (2575/1000MHz), Audio: AMD Navi 21/23, Monitor: ASUS MG28U, Network: Intel I225-V + Intel Wi-Fi 6 AX210/AX211/AX411 OS: Ubuntu 22.10, Kernel: 6.2.0-rc3-phx-tip-x86-cpu (x86_64), Desktop: GNOME Shell 43.1, Display Server: X Server + Wayland, OpenGL: 4.6 Mesa 22.2.1 (LLVM 15.0.2 DRM 3.49), Vulkan: 1.3.224, Compiler: GCC 12.2.0 + Clang 15.0.2-1, File-System: ext4, Screen Resolution: 3840x2160 Linux 6.2 Git: Processor: AMD Ryzen 9 7950X 16-Core @ 4.50GHz (16 Cores / 32 Threads), Motherboard: ASUS ROG CROSSHAIR X670E HERO (0805 BIOS), Chipset: AMD Device 14d8, Memory: 32GB, Disk: Western Digital WD_BLACK SN850X 1000GB + 2000GB, Graphics: AMD Radeon RX 6800 XT 16GB (2575/1000MHz), Audio: AMD Navi 21/23, Monitor: ASUS MG28U, Network: Intel I225-V + Intel Wi-Fi 6 AX210/AX211/AX411 OS: Ubuntu 22.10, Kernel: 6.2.0-060200rc4daily20230118-generic (x86_64), Desktop: GNOME Shell 43.1, Display Server: X Server + Wayland, OpenGL: 4.6 Mesa 22.2.1 (LLVM 15.0.2 DRM 3.49), Vulkan: 1.3.224, Compiler: GCC 12.2.0 + Clang 15.0.2-1, File-System: ext4, Screen Resolution: 3840x2160 Compile Bench 0.6 Test: Compile MB/s > Higher Is Better Auto IBRS ..... 3675.16 |====================================================== Linux 6.2 Git . 3377.30 |================================================== Compile Bench 0.6 Test: Initial Create MB/s > Higher Is Better Auto IBRS ..... 1017.49 |====================================================== Linux 6.2 Git . 948.05 |================================================== PostMark 1.51 Disk Transaction Performance TPS > Higher Is Better Auto IBRS ..... 10481 |======================================================== Linux 6.2 Git . 10050 |====================================================== WireGuard + Linux Networking Stack Stress Test Seconds < Lower Is Better Auto IBRS ..... 137.68 |====================================================== Linux 6.2 Git . 140.52 |======================================================= Sockperf 3.7 Test: Throughput Messages Per Second > Higher Is Better Auto IBRS ..... 1266609 |====================================================== Linux 6.2 Git . 1105464 |=============================================== Sockperf 3.7 Test: Latency Ping Pong usec < Lower Is Better Auto IBRS ..... 1.598 |===================================================== Linux 6.2 Git . 1.690 |======================================================== Sockperf 3.7 Test: Latency Under Load usec < Lower Is Better Auto IBRS ..... 9.688 |======================================================= Linux 6.2 Git . 9.927 |======================================================== OSBench Test: Create Files us Per Event < Lower Is Better Auto IBRS ..... 9.686768 |================================================== Linux 6.2 Git . 10.017125 |==================================================== OSBench Test: Create Threads us Per Event < Lower Is Better Auto IBRS ..... 9.973049 |==================================================== Linux 6.2 Git . 10.027091 |==================================================== OSBench Test: Create Processes us Per Event < Lower Is Better Auto IBRS ..... 25.34 |======================================================= Linux 6.2 Git . 25.88 |======================================================== DaCapo Benchmark 9.12-MR1 Java Test: Jython msec < Lower Is Better Auto IBRS ..... 2132 |========================================================= Linux 6.2 Git . 2128 |========================================================= Renaissance 0.14 Test: Scala Dotty ms < Lower Is Better Auto IBRS ..... 437.9 |==================================================== Linux 6.2 Git . 474.3 |======================================================== Renaissance 0.14 Test: Finagle HTTP Requests ms < Lower Is Better Auto IBRS ..... 1849.1 |===================================================== Linux 6.2 Git . 1914.8 |======================================================= Renaissance 0.14 Test: Genetic Algorithm Using Jenetics + Futures ms < Lower Is Better Auto IBRS ..... 957.6 |======================================================= Linux 6.2 Git . 968.4 |======================================================== Node.js Express HTTP Load Test Requests Per Second > Higher Is Better Auto IBRS ..... 11903 |======================================================== Linux 6.2 Git . 11779 |======================================================= Timed Godot Game Engine Compilation 3.2.3 Time To Compile Seconds < Lower Is Better Auto IBRS ..... 51.36 |======================================================== Linux 6.2 Git . 51.20 |======================================================== Timed Linux Kernel Compilation 6.1 Build: defconfig Seconds < Lower Is Better Auto IBRS ..... 46.76 |======================================================== Linux 6.2 Git . 47.04 |======================================================== Timed Linux Kernel Compilation 6.1 Build: allmodconfig Seconds < Lower Is Better Auto IBRS ..... 527.72 |======================================================= Linux 6.2 Git . 529.02 |======================================================= Timed LLVM Compilation 13.0 Build System: Ninja Seconds < Lower Is Better Auto IBRS ..... 256.85 |======================================================= Linux 6.2 Git . 256.26 |======================================================= Apache Spark 3.3 Row Count: 1000000 - Partitions: 100 - SHA-512 Benchmark Time Seconds < Lower Is Better Auto IBRS ..... 1.74 |======================================================== Linux 6.2 Git . 1.76 |========================================================= Apache Spark 3.3 Row Count: 1000000 - Partitions: 100 - Calculate Pi Benchmark Seconds < Lower Is Better Auto IBRS ..... 56.03 |======================================================== Linux 6.2 Git . 55.83 |======================================================== Apache Spark 3.3 Row Count: 1000000 - Partitions: 100 - Calculate Pi Benchmark Using Dataframe Seconds < Lower Is Better Auto IBRS ..... 2.76 |========================================================= Linux 6.2 Git . 2.78 |========================================================= CockroachDB 22.2 Workload: MoVR - Concurrency: 128 ops/s > Higher Is Better Auto IBRS ..... 1248.7 |======================================================= Linux 6.2 Git . 1242.8 |======================================================= CockroachDB 22.2 Workload: MoVR - Concurrency: 512 ops/s > Higher Is Better Auto IBRS ..... 1248.2 |======================================================= Linux 6.2 Git . 1242.2 |======================================================= CockroachDB 22.2 Workload: KV, 10% Reads - Concurrency: 128 ops/s > Higher Is Better Auto IBRS ..... 78351.4 |====================================================== Linux 6.2 Git . 77695.1 |====================================================== CockroachDB 22.2 Workload: KV, 10% Reads - Concurrency: 512 ops/s > Higher Is Better Auto IBRS ..... 76297.1 |====================================================== Linux 6.2 Git . 75773.2 |====================================================== CockroachDB 22.2 Workload: KV, 50% Reads - Concurrency: 128 ops/s > Higher Is Better Auto IBRS ..... 98611.6 |====================================================== Linux 6.2 Git . 97655.5 |===================================================== CockroachDB 22.2 Workload: KV, 50% Reads - Concurrency: 512 ops/s > Higher Is Better Auto IBRS ..... 93448.8 |====================================================== Linux 6.2 Git . 91139.8 |===================================================== Dragonflydb 0.6 Clients: 200 - Set To Get Ratio: 1:5 Ops/sec > Higher Is Better Auto IBRS ..... 5764962.90 |=================================================== Linux 6.2 Git . 5694104.51 |================================================== Dragonflydb 0.6 Clients: 200 - Set To Get Ratio: 5:1 Ops/sec > Higher Is Better Auto IBRS ..... 5408933.47 |=================================================== Linux 6.2 Git . 5221293.14 |================================================= Redis 7.0.4 Test: GET - Parallel Connections: 50 Requests Per Second > Higher Is Better Auto IBRS ..... 5829734.5 |==================================================== Linux 6.2 Git . 4791960.8 |=========================================== Redis 7.0.4 Test: GET - Parallel Connections: 500 Requests Per Second > Higher Is Better Auto IBRS ..... 5331656.2 |==================================================== Linux 6.2 Git . 5223331.8 |=================================================== Redis 7.0.4 Test: SET - Parallel Connections: 500 Requests Per Second > Higher Is Better Auto IBRS ..... 4344015.0 |==================================================== Linux 6.2 Git . 4289025.5 |=================================================== KeyDB 6.2.0 Ops/sec > Higher Is Better Auto IBRS ..... 927313.07 |==================================================== Linux 6.2 Git . 922807.85 |==================================================== PostgreSQL 15 Scaling Factor: 1 - Clients: 800 - Mode: Read Only TPS > Higher Is Better Auto IBRS ..... 2030567 |====================================================== Linux 6.2 Git . 1984551 |===================================================== PostgreSQL 15 Scaling Factor: 1 - Clients: 800 - Mode: Read Only - Average Latency ms < Lower Is Better Auto IBRS ..... 0.394 |======================================================= Linux 6.2 Git . 0.403 |======================================================== PostgreSQL 15 Scaling Factor: 1 - Clients: 1000 - Mode: Read Only TPS > Higher Is Better Auto IBRS ..... 2015292 |====================================================== Linux 6.2 Git . 1968640 |===================================================== PostgreSQL 15 Scaling Factor: 1 - Clients: 1000 - Mode: Read Only - Average Latency ms < Lower Is Better Auto IBRS ..... 0.496 |======================================================= Linux 6.2 Git . 0.508 |======================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 800 - Mode: Read Only TPS > Higher Is Better Auto IBRS ..... 1880473 |====================================================== Linux 6.2 Git . 1855879 |===================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 800 - Mode: Read Only - Average Latency ms < Lower Is Better Auto IBRS ..... 0.426 |======================================================= Linux 6.2 Git . 0.431 |======================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 1000 - Mode: Read Only TPS > Higher Is Better Auto IBRS ..... 1863778 |====================================================== Linux 6.2 Git . 1787889 |==================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 1000 - Mode: Read Only - Average Latency ms < Lower Is Better Auto IBRS ..... 0.537 |====================================================== Linux 6.2 Git . 0.560 |======================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 1000 - Mode: Read Write TPS > Higher Is Better Auto IBRS ..... 43294 |======================================================== Linux 6.2 Git . 42997 |======================================================== PostgreSQL 15 Scaling Factor: 100 - Clients: 1000 - Mode: Read Write - Average Latency ms < Lower Is Better Auto IBRS ..... 23.10 |======================================================== Linux 6.2 Git . 23.26 |======================================================== SQLite Speedtest 3.30 Timed Time - Size 1,000 Seconds < Lower Is Better Auto IBRS ..... 35.31 |======================================================== Linux 6.2 Git . 35.41 |======================================================== Darktable 4.0.0 Test: Boat - Acceleration: CPU-only Seconds < Lower Is Better Auto IBRS ..... 2.338 |======================================================== Linux 6.2 Git . 2.334 |======================================================== Darktable 4.0.0 Test: Masskrug - Acceleration: CPU-only Seconds < Lower Is Better Auto IBRS ..... 2.634 |======================================================== Linux 6.2 Git . 2.645 |======================================================== memtier_benchmark 1.4 Protocol: Redis - Clients: 50 - Set To Get Ratio: 1:1 Ops/sec > Higher Is Better Auto IBRS ..... 3960450.20 |=================================================== Linux 6.2 Git . 3593245.83 |============================================== memtier_benchmark 1.4 Protocol: Redis - Clients: 100 - Set To Get Ratio: 1:1 Ops/sec > Higher Is Better Auto IBRS ..... 3947399.46 |=================================================== Linux 6.2 Git . 3632272.71 |=============================================== memtier_benchmark 1.4 Protocol: Redis - Clients: 50 - Set To Get Ratio: 10:1 Ops/sec > Higher Is Better Auto IBRS ..... 3396653.68 |=================================================== Linux 6.2 Git . 3314366.22 |================================================== memtier_benchmark 1.4 Protocol: Redis - Clients: 50 - Set To Get Ratio: 1:10 Ops/sec > Higher Is Better Auto IBRS ..... 3939082.09 |=================================================== Linux 6.2 Git . 3901210.72 |=================================================== memtier_benchmark 1.4 Protocol: Redis - Clients: 100 - Set To Get Ratio: 1:10 Ops/sec > Higher Is Better Auto IBRS ..... 3956141.90 |=================================================== Linux 6.2 Git . 3930034.99 |=================================================== Stress-NG 0.14.06 Test: MMAP Bogo Ops/s > Higher Is Better Auto IBRS ..... 390.87 |======================================================= Linux 6.2 Git . 389.03 |======================================================= Stress-NG 0.14.06 Test: NUMA Bogo Ops/s > Higher Is Better Auto IBRS ..... 614.55 |======================================================= Linux 6.2 Git . 593.72 |===================================================== Stress-NG 0.14.06 Test: Mutex Bogo Ops/s > Higher Is Better Auto IBRS ..... 14819410.50 |================================================== Linux 6.2 Git . 13964278.58 |=============================================== Stress-NG 0.14.06 Test: IO_uring Bogo Ops/s > Higher Is Better Auto IBRS ..... 32691.97 |===================================================== Linux 6.2 Git . 29637.52 |================================================ Stress-NG 0.14.06 Test: Semaphores Bogo Ops/s > Higher Is Better Auto IBRS ..... 3524027.40 |=================================================== Linux 6.2 Git . 3481253.23 |================================================== Stress-NG 0.14.06 Test: Context Switching Bogo Ops/s > Higher Is Better Auto IBRS ..... 11114905.04 |================================================== Linux 6.2 Git . 10603604.01 |================================================ ctx_clock Context Switch Time Clocks < Lower Is Better Auto IBRS ..... 180 |========================================================== Linux 6.2 Git . 180 |========================================================== RocksDB 7.9.2 Test: Random Fill Op/s > Higher Is Better Auto IBRS ..... 1456384 |====================================================== Linux 6.2 Git . 1452081 |====================================================== RocksDB 7.9.2 Test: Random Read Op/s > Higher Is Better Auto IBRS ..... 156376252 |==================================================== Linux 6.2 Git . 156849249 |==================================================== RocksDB 7.9.2 Test: Update Random Op/s > Higher Is Better Auto IBRS ..... 1019843 |====================================================== Linux 6.2 Git . 1015269 |====================================================== RocksDB 7.9.2 Test: Sequential Fill Op/s > Higher Is Better Auto IBRS ..... 1492618 |====================================================== Linux 6.2 Git . 1486446 |====================================================== RocksDB 7.9.2 Test: Random Fill Sync Op/s > Higher Is Better Auto IBRS ..... 39920 |======================================================== Linux 6.2 Git . 39697 |======================================================== RocksDB 7.9.2 Test: Read While Writing Op/s > Higher Is Better Auto IBRS ..... 4347155 |====================================================== Linux 6.2 Git . 4383598 |====================================================== RocksDB 7.9.2 Test: Read Random Write Random Op/s > Higher Is Better Auto IBRS ..... 3379652 |====================================================== Linux 6.2 Git . 3369315 |====================================================== nginx 1.23.2 Connections: 100 Requests Per Second > Higher Is Better Auto IBRS ..... 200874.58 |==================================================== Linux 6.2 Git . 195874.71 |=================================================== nginx 1.23.2 Connections: 200 Requests Per Second > Higher Is Better Auto IBRS ..... 199332.30 |==================================================== Linux 6.2 Git . 192280.90 |================================================== nginx 1.23.2 Connections: 500 Requests Per Second > Higher Is Better Auto IBRS ..... 179505.24 |==================================================== Linux 6.2 Git . 172610.31 |================================================== nginx 1.23.2 Connections: 1000 Requests Per Second > Higher Is Better Auto IBRS ..... 154199.72 |==================================================== Linux 6.2 Git . 148948.26 |================================================== Apache HBase 2.5.0 Rows: 10000 - Test: Random Write - Clients: 32 Rows Per Second > Higher Is Better Auto IBRS ..... 443048 |======================================================= Linux 6.2 Git . 437304 |====================================================== Selenium Benchmark: ARES-6 - Browser: Firefox ms < Lower Is Better Auto IBRS ..... 17.60 |======================================================= Linux 6.2 Git . 17.97 |======================================================== Selenium Benchmark: Kraken - Browser: Firefox ms < Lower Is Better Auto IBRS ..... 475.4 |======================================================== Linux 6.2 Git . 477.5 |======================================================== Selenium Benchmark: Jetstream 2 - Browser: Firefox Score > Higher Is Better Auto IBRS ..... 207.77 |======================================================= Linux 6.2 Git . 206.21 |======================================================= Selenium Benchmark: Speedometer - Browser: Firefox Runs Per Minute > Higher Is Better Auto IBRS ..... 297.1 |======================================================= Linux 6.2 Git . 300.8 |======================================================== Selenium Benchmark: ARES-6 - Browser: Google Chrome ms < Lower Is Better Auto IBRS ..... 6.80 |========================================================= Linux 6.2 Git . 6.68 |======================================================== Selenium Benchmark: Kraken - Browser: Google Chrome ms < Lower Is Better Auto IBRS ..... 346.6 |======================================================== Linux 6.2 Git . 348.9 |======================================================== Selenium Benchmark: PSPDFKit WASM - Browser: Firefox Score < Lower Is Better Auto IBRS ..... 2100 |========================================================= Linux 6.2 Git . 2102 |========================================================= Selenium Benchmark: Speedometer - Browser: Google Chrome Runs Per Minute > Higher Is Better Auto IBRS ..... 374 |========================================================== Linux 6.2 Git . 375 |========================================================== Selenium Benchmark: PSPDFKit WASM - Browser: Google Chrome Score < Lower Is Better Auto IBRS ..... 2432 |========================================================= Linux 6.2 Git . 2452 |========================================================= Selenium Benchmark: WASM imageConvolute - Browser: Firefox ms < Lower Is Better Auto IBRS ..... 17.9 |========================================================= Linux 6.2 Git . 17.9 |========================================================= Selenium Benchmark: WASM collisionDetection - Browser: Firefox ms < Lower Is Better Auto IBRS ..... 240.3 |======================================================= Linux 6.2 Git . 245.1 |======================================================== Selenium Benchmark: WASM collisionDetection - Browser: Google Chrome ms < Lower Is Better Auto IBRS ..... 215.17 |====================================================== Linux 6.2 Git . 217.59 |======================================================= Git Time To Complete Common Git Commands Seconds < Lower Is Better Auto IBRS ..... 31.27 |======================================================== Linux 6.2 Git . 31.46 |======================================================== BRL-CAD 7.34 VGR Performance Metric VGR Performance Metric > Higher Is Better Auto IBRS ..... 432531 |======================================================= Linux 6.2 Git . 427839 |====================================================== InfluxDB 1.8.2 Concurrent Streams: 4 - Batch Size: 10000 - Tags: 2,5000,1 - Points Per Series: 10000 val/sec > Higher Is Better Auto IBRS ..... 2499344.1 |==================================================== Linux 6.2 Git . 2498029.1 |==================================================== InfluxDB 1.8.2 Concurrent Streams: 64 - Batch Size: 10000 - Tags: 2,5000,1 - Points Per Series: 10000 val/sec > Higher Is Better Auto IBRS ..... 2739091.6 |==================================================== Linux 6.2 Git . 2747445.2 |====================================================