Peneliti CPU independen Agner Fog telah menyelesaikan pengujian performa komprehensif terhadap arsitektur Zen 5 milik AMD , mengungkap peningkatan signifikan yang mengatasi hambatan lama dalam desain prosesor. Hasil pengujian tersebut menyoroti perubahan arsitektur besar yang dapat mengubah cara pengembang mendekati aplikasi yang intensif CPU.
Memecah Hambatan Fetch 16-Byte
Peningkatan paling signifikan dalam Zen 5 adalah penggandaan tingkat pengambilan instruksi dari 16 menjadi 32 byte per siklus clock. Hal ini mengatasi apa yang telah menjadi keterbatasan serius di seluruh prosesor Intel dan AMD selama banyak generasi. Karena instruksi individual dapat berkisar dari 1 hingga 15 byte, dengan instruksi AVX512 kompleks mencakup 6 hingga 11 byte, batas 16-byte sebelumnya menciptakan ketidaksesuaian antara apa yang dapat diambil prosesor dan apa yang dapat dieksekusi.
Hambatan ini sangat bermasalah karena prosesor AMD dan Intel sebelumnya dapat menangani empat atau lebih instruksi per siklus clock, tetapi hanya ketika kode masuk ke dalam cache micro-op. Kemampuan fetch yang diperluas sekarang memungkinkan Zen 5 untuk lebih baik memanfaatkan sumber daya eksekusinya di berbagai pola kode yang lebih luas.
Cache Micro-op: Cache khusus yang menyimpan instruksi yang sudah didekode, memungkinkan eksekusi loop kode yang sering digunakan menjadi lebih cepat
Spesifikasi Utama Zen 5:
- Tingkat pengambilan instruksi: 32 byte per siklus clock (meningkat dua kali lipat dari 16 byte)
- Eksekusi maksimum: 6 instruksi per siklus clock (hingga 8 dalam kasus langka)
- Integer ALU: 6 unit
- Unit pembangkit alamat: 4 unit
- Unit percabangan: 3 unit
- Vector ALU: 4 unit (kemampuan penuh 512-bit)
- Unit baca/tulis vektor: 2 unit
- Operasi memori: 4 pembacaan per siklus ATAU 2 pembacaan + 2 penulisan per siklus
- Operasi memori vektor: 2 pembacaan atau penulisan per siklus (penulisan 512-bit dibagi menjadi dua operasi 256-bit)
Kemampuan Eksekusi yang Ditingkatkan
Zen 5 sekarang dapat mengeksekusi hingga enam instruksi per siklus clock, dengan kasus langka mencapai delapan. Throughput yang meningkat ini didukung oleh ekspansi substansial dalam unit eksekusi: enam integer ALU, empat unit generasi alamat, tiga unit branch, empat vector ALU, dan dua unit vector read/write. Kelimpahan unit eksekusi berarti prosesor jarang perlu menunggu sumber daya yang tersedia.
Namun, diskusi komunitas menunjukkan keanehan desain yang menarik. Sementara semua unit vektor mendukung operasi 512-bit penuh, penulisan memori dibatasi pada operasi 256-bit, mengharuskan penulisan 512-bit dipecah menjadi dua operasi. Beberapa pengembang mempertanyakan apakah keterbatasan ini akan berdampak pada beban kerja yang intensif memori, meskipun yang lain mencatat bahwa operasi tipikal melibatkan lebih banyak pembacaan daripada penulisan, membuat ini kurang bermasalah dalam praktik.
Performa Branch yang Diperbaiki dan Operasi Vektor
Prediksi branch, yang krusial untuk konstruksi if-then-else dalam kode, telah mengalami peningkatan yang luar biasa. Zen 5 dapat menangani dua predicted taken branch atau tiga predicted not-taken branch per siklus clock. Prediktor branch dapat menganalisis dua branch ke depan dan mendekode kedua sisi dari two-way branch secara bersamaan.
Trade-off menarik muncul dalam operasi vektor. Latensi penambahan vektor integer meningkat dari 1 menjadi 2 siklus clock dibandingkan dengan Zen 4 , sementara penambahan floating point membaik dari 3 menjadi 2 clock. Perubahan ini berarti instruksi vektor integer dan floating point sekarang memiliki latensi yang cocok, berpotensi menyederhanakan keputusan optimisasi untuk pengembang.
Ahli komunitas mencatat bahwa latensi aktual dapat lebih baik dalam kondisi tertentu, terutama ketika scheduler floating point tidak terisi sepenuhnya, memungkinkan beberapa operasi mempertahankan performa siklus tunggal.
Peningkatan Performa:
- Prediksi cabang: 2 cabang yang diprediksi diambil ATAU 3 cabang yang diprediksi tidak diambil per siklus
- Latensi penambahan vektor integer: 2 clock (meningkat dari 1 clock di Zen 4)
- Latensi penambahan floating point: 2 clock (berkurang dari 3 clock di Zen 4)
- Throughput operasi vektor: 2 penambahan vektor + 2 perkalian vektor + 2 operasi baca/tulis vektor secara bersamaan per siklus
Akses Memori Tetap Menjadi Tantangan
Meskipun ada peningkatan eksekusi ini, ukuran cache dan associativity hanya mengalami pembaruan kecil. Ini berarti bahwa sementara throughput CPU jarang menjadi hambatan dalam Zen 5 , optimisasi akses memori menjadi semakin kritis bagi pengembang yang ingin memanfaatkan potensi penuh prosesor. Program yang intensif komputasi akan melihat manfaat signifikan, sementara aplikasi yang dibatasi oleh akses memori dan disk mungkin tidak mengalami peningkatan dramatis.
Hasil pengujian menunjukkan bahwa Zen 5 mewakili langkah maju besar dalam mengatasi hambatan CPU tradisional, terutama dalam pengambilan instruksi dan throughput eksekusi. Namun, penekanan bergeser ke arah optimisasi memori sebagai faktor kunci dalam mencapai performa maksimum dari arsitektur baru ini.
Associativity: Ukuran seberapa fleksibel data dapat ditempatkan dalam memori cache, mempengaruhi seberapa efisien cache dapat digunakan
Referensi: What's new about Zen 5 and Arrow Lake?