AMD Zen 4 Tuning Patch Mulai Mendarat Di GCC 13

  • Post author:
  • Post category:Linux

Mengikuti pengaktifan target dasar AMD Zen 4 “znver4” yang digabungkan untuk kompiler GCC 13 pada bulan Oktober, tambalan untuk mulai memberikan dukungan yang disesuaikan telah mulai digabungkan untuk rilis Koleksi Penyusun GNU berikutnya. Seperti disebutkan dalam artikel Phoronix sebelumnya, pengaktifan Znver4 awal di GCC 13 membalikkan instruksi baru yang didukung oleh seri Ryzen 7000 dan prosesor seri EPYC 9004 tetapi disalin melalui penyetelan yang ada dari Zen 3. Awal bulan ini seorang insinyur SUSE kemudian mulai mengerjakan sebuah tabel biaya Zen 4 yang tepat dan penyetelan untuk prosesor Zen 4 mengingat karakteristiknya yang berbeda dari Zen 3. Tambalan dari SUSE itulah yang telah digabungkan sejak kemarin ke GCC 13. Tambalan

Jan Hubicka untuk biaya Znver4 telah tersedia untuk tabel biaya instruksi yang sesuai untuk kompiler: “Biaya pembaruan znver4 sebagian besar didasarkan pada data yang diukur oleh Agner Fog. Dibandingkan dengan generasi sebelumnya, x87 menjadi sedikit lebih lambat yang mungkin bukan masalah besar (dan kami memiliki cakupan pembandingan minimal untuk itu). Satu peningkatan yang menarik adalah pengurangan biaya FMA. Saya juga memperbarui biaya pemuatan/penyimpanan AVX256 berdasarkan latensi (bukan throughput yang dua kali lipat dari avx256). Vektorisasi keseluruhan AVX512 tampaknya mengesankan Saya telah melihat beberapa tolok ukur TSVC tetapi karena secara internal 512 vektor dipecah menjadi 256 vektor, ini agak berisiko dan tidak menang dalam skor SPEC (kebanyakan dengan meregresi tolok ukur dengan loop yang memiliki jumlah perjalanan kecil seperti x264 dan pertukaran), jadi untuk saat ini saya akan menyetel tune AVX256_OPTIMAL tetapi saya masih memainkannya. Kami meningkatkan sejak ZNVER1 dalam memilih ukuran vektorisasi dan juga memiliki prolog/epilog yang divektorisasi sehingga dimungkinkan untuk membuat avx512 menang kecil secara keseluruhan.”Dan kemudian set penyetelan kedua untuk Zen 4 juga telah digabungkan:”Menambahkan nada yang diperlukan untuk mikroarsitektur zen4 . Saya menambahkan dua kenop baru. TARGET_AVX512_SPLIT_REGS yang digunakan untuk menentukan bahwa secara internal 512 vektor dibagi menjadi 256 vektor. Ini memengaruhi biaya vektorisasi dan lebar reasosiasi. Ini mungkin juga mempengaruhi biaya RTX namun saya ragu ini sangat berguna karena pengoptimal RTL biasanya tidak menilai antara 256 dan 512 vektor. Saya juga menambahkan X86_TUNE_AVOID_256FMA_CHAINS. Karena fma telah meningkat di zen4, bendera ini mungkin bukan kemenangan kecuali untuk tolok ukur yang sangat spesifik. Saya masih melakukan beberapa pengujian yang lebih rinci di sini. Kalau tidak, saya menonaktifkan pengumpulan di zen4 untuk 2 bagian dan 4 bagian. Kami dapat membuka kodenya dan karena latensi hanya meningkat sejak opencoding zen3 lebih baik daripada instruksi sebenarnya. Ini menunjukkan pada 4 tolok ukur tsvc. Saya akhirnya mengatur AVX256_OPTIMAL. Ini adalah kompromi. Ada beberapa tolok ukur tsvc yang meningkat secara nyata (hingga 250%) namun ada juga sedikit regresi. Sebagian besar dapat diselesaikan dengan meningkatkan biaya vec_perm di vektorizer. Namun ini tidak menyembuhkan regresi sekitar 14% pada x264 yang cukup penting. Di sini kami menghasilkan loop vektor untuk avx512 yang mungkin akan lebih cepat jika loop tersebut memiliki jumlah iterasi yang cukup tinggi. Kami menemukan masalah ini dengan avx256 juga: karena perulangan berulang beberapa kali, hanya prolog/epilog yang digunakan. Menambahkan putaran kode prolog/epilog lagi tidak membuatnya lebih baik. Akhirnya saya mengaktifkan penyimpanan avx untuk memcpy dan memset berukuran constnat. Saya tidak yakin mengapa ini adalah fitur keikutsertaan. Saya pikir untuk sebagian besar perangkat keras ini adalah kemenangan.” untuk GCC 13. Sementara itu AMD menawarkan kompiler AOCC 4.0 bagi mereka yang menginginkan kompiler optimal Zen 4 yang siap produksi sekarang. Saya akan mengerjakan beberapa tolok ukur GCC Git baru pada Zen 4 selama Natal.

Itulah berita seputar AMD Zen 4 Tuning Patch Mulai Mendarat Di GCC 13, semoga bermanfaat. Disadur dari Phoronix.com.