AMD Zen 5 Menggandakan Kadar Pengambilan Arahan kepada 32 Bait Setiap Jam, Dedah Ujian Prestasi

Pasukan Komuniti BigGo
AMD Zen 5 Menggandakan Kadar Pengambilan Arahan kepada 32 Bait Setiap Jam, Dedah Ujian Prestasi

Penyelidik CPU bebas Agner Fog telah menyelesaikan ujian prestasi komprehensif terhadap seni bina AMD Zen 5 , mendedahkan peningkatan ketara yang menangani kesesakan lama dalam reka bentuk pemproses. Keputusan ujian ini menyerlahkan perubahan seni bina utama yang boleh membentuk semula cara pembangun mendekati aplikasi intensif CPU.

Memecah Kesesakan Pengambilan 16-Bait

Peningkatan paling ketara dalam Zen 5 adalah penggandaan kadar pengambilan arahan daripada 16 kepada 32 bait setiap kitaran jam. Ini menangani apa yang telah menjadi batasan serius merentasi kedua-dua pemproses Intel dan AMD untuk banyak generasi. Memandangkan arahan individu boleh berkisar dari 1 hingga 15 bait, dengan arahan AVX512 yang kompleks merangkumi 6 hingga 11 bait, had 16-bait sebelum ini mewujudkan ketidakpadanan antara apa yang boleh diambil oleh pemproses dan apa yang boleh dilaksanakan.

Kesesakan ini amat bermasalah kerana pemproses AMD dan Intel terdahulu boleh mengendalikan empat atau lebih arahan setiap kitaran jam, tetapi hanya apabila kod sesuai ke dalam cache micro-op. Keupayaan pengambilan yang diperluas kini membolehkan Zen 5 menggunakan sumber pelaksanaannya dengan lebih baik merentasi pelbagai corak kod yang lebih luas.

Cache micro-op: Cache khas yang menyimpan arahan yang telah dinyahkod, membolehkan pelaksanaan gelung kod yang kerap digunakan dengan lebih pantas

Spesifikasi Utama Zen 5:

  • Kadar pengambilan arahan: 32 bait setiap kitaran jam (digandakan daripada 16 bait)
  • Pelaksanaan maksimum: 6 arahan setiap kitaran jam (sehingga 8 dalam kes yang jarang berlaku)
  • Integer ALU: 6 unit
  • Unit penjanaan alamat: 4 unit
  • Unit cawangan: 3 unit
  • Vector ALU: 4 unit (keupayaan 512-bit penuh)
  • Unit baca/tulis vektor: 2 unit
  • Operasi memori: 4 bacaan setiap kitaran ATAU 2 bacaan + 2 penulisan setiap kitaran
  • Operasi memori vektor: 2 bacaan atau penulisan setiap kitaran (penulisan 512-bit dibahagikan kepada dua operasi 256-bit)

Keupayaan Pelaksanaan yang Dipertingkat

Zen 5 kini boleh melaksanakan sehingga enam arahan setiap kitaran jam, dengan kes jarang mencapai lapan. Pemprosesan yang meningkat ini disokong oleh pengembangan besar dalam unit pelaksanaan: enam ALU integer, empat unit penjanaan alamat, tiga unit cawangan, empat ALU vektor, dan dua unit baca/tulis vektor. Kelimpahan unit pelaksanaan bermakna pemproses jarang perlu menunggu sumber yang tersedia.

Walau bagaimanapun, perbincangan komuniti menunjukkan keanehan reka bentuk yang menarik. Walaupun semua unit vektor menyokong operasi 512-bit penuh, penulisan memori terhad kepada operasi 256-bit, memerlukan penulisan 512-bit dipecah kepada dua operasi. Sesetengah pembangun mempersoalkan sama ada batasan ini akan memberi kesan kepada beban kerja intensif memori, walaupun yang lain menyatakan bahawa operasi biasa melibatkan lebih banyak bacaan daripada penulisan, menjadikan ini kurang bermasalah dalam amalan.

Prestasi Cawangan yang Diperbaiki dan Operasi Vektor

Ramalan cawangan, yang penting untuk konstruk if-then-else dalam kod, telah menyaksikan peningkatan yang luar biasa. Zen 5 boleh mengendalikan dua cawangan yang diramal diambil atau tiga cawangan yang diramal tidak diambil setiap kitaran jam. Peramal cawangan boleh menganalisis dua cawangan ke hadapan dan menyahkod kedua-dua belah cawangan dua hala secara serentak.

Pertukaran yang menarik muncul dalam operasi vektor. Kependaman penambahan vektor integer meningkat dari 1 kepada 2 kitaran jam berbanding Zen 4 , manakala penambahan titik terapung bertambah baik dari 3 kepada 2 jam. Perubahan ini bermakna kedua-dua arahan vektor integer dan titik terapung kini mempunyai kependaman yang sepadan, berpotensi memudahkan keputusan pengoptimuman untuk pembangun.

Pakar komuniti menyatakan bahawa kependaman sebenar boleh menjadi lebih baik dalam keadaan tertentu, terutamanya apabila penjadual titik terapung tidak diisi sepenuhnya, membolehkan sesetengah operasi mengekalkan prestasi kitaran tunggal.

Peningkatan Prestasi:

  • Ramalan cawangan: 2 cawangan yang diramal diambil ATAU 3 cawangan yang diramal tidak diambil setiap kitaran
  • Latensi penambahan vektor integer: 2 jam (meningkat daripada 1 jam dalam Zen 4)
  • Latensi penambahan titik terapung: 2 jam (berkurang daripada 3 jam dalam Zen 4)
  • Daya pemprosesan operasi vektor: 2 penambahan vektor + 2 pendaraban vektor + 2 operasi baca/tulis vektor secara serentak setiap kitaran

Akses Memori Kekal Sebagai Cabaran

Walaupun peningkatan pelaksanaan ini, saiz cache dan ketersekutuan hanya menyaksikan kemas kini kecil. Ini bermakna walaupun pemprosesan CPU jarang menjadi kesesakan dalam Zen 5 , pengoptimuman akses memori menjadi semakin kritikal bagi pembangun yang ingin memanfaatkan potensi penuh pemproses. Program intensif pengiraan akan melihat faedah ketara, manakala aplikasi yang terhad oleh akses memori dan cakera mungkin tidak mengalami peningkatan dramatik.

Keputusan ujian menunjukkan bahawa Zen 5 mewakili langkah besar ke hadapan dalam menangani kesesakan CPU tradisional, terutamanya dalam pengambilan arahan dan pemprosesan pelaksanaan. Walau bagaimanapun, penekanan beralih ke arah pengoptimuman memori sebagai faktor utama dalam mencapai prestasi maksimum daripada seni bina baharu ini.

Ketersekutuan: Ukuran betapa fleksibel data boleh diletakkan dalam memori cache, mempengaruhi seberapa cekap cache boleh digunakan

Rujukan: What's new about Zen 5 and Arrow Lake?