1 poin oleh GN⁺ 2024-12-02 | 1 komentar | Bagikan ke WhatsApp

AMD menonaktifkan loop buffer di Zen 4

  • Peran loop buffer: Berada di frontend CPU dan menyimpan instruksi yang sebelumnya telah diambil. Loop kecil dapat dimuat ke dalam loop buffer, sehingga beberapa tahap frontend bisa dinonaktifkan untuk menghemat daya dan meningkatkan performa. Ini adalah teknologi lama yang digunakan pada core Intel, Arm, dan AMD.

  • Loop buffer di Zen 4: Zen 4 adalah satu-satunya core berperforma tinggi AMD yang menyertakan loop buffer. Menurut eksperimen performance counter, saat core berjalan dengan satu thread, ia memiliki 144 entri. Jika dua thread SMT aktif, masing-masing thread dialokasikan 72 entri. Jika ada call dan return di dalam loop, loop tersebut tidak akan tertangkap oleh loop buffer.

  • Perubahan setelah pembaruan BIOS: Setelah ASRock B650 PG Lightning diperbarui ke BIOS versi 3.10, pemantauan performa hardware menunjukkan bahwa frontend tidak lagi mengirim micro-op dari loop buffer. Jika diturunkan kembali ke BIOS versi 1.21, loop buffer aktif lagi. AMD tampaknya menonaktifkan loop buffer di antara BIOS 1.21 (AGESA versi 1.0.0.6) dan BIOS 3.10 (AGESA versi 1.2.0.2a).

SPEC CPU2017: mencari perbedaannya

  • Dampak terhadap performa: Skor SPEC CPU2017 menunjukkan tidak ada perbedaan yang mencolok tergantung apakah loop buffer aktif atau tidak. Total skor suite integer dan floating point menunjukkan selisih kurang dari 1%. Peningkatan performa SMT juga tidak terpengaruh.

  • Peran loop buffer: Tujuan utama loop buffer bukan untuk meningkatkan performa, melainkan agar core dapat menonaktifkan sebagian besar frontend. Menurut referensi pemrograman prosesor Zen 4, performance counter dapat diprogram agar bertambah 1 setiap kali jumlah event melebihi ambang tertentu.

Cyberpunk 2077

  • Uji performa gim: Benchmark bawaan Cyberpunk 2077 digunakan untuk melihat dampak penonaktifan loop buffer terhadap performa gim. Hasilnya menunjukkan bahwa penonaktifan loop buffer hampir tidak memengaruhi performa gim.

Upaya memeriksa konsumsi daya

  • Efisiensi daya: Penggunaan core power counter Zen 4 dicoba untuk memeriksa apakah loop buffer meningkatkan efisiensi daya, tetapi hasilnya tidak konsisten. Pada BIOS yang lebih baru, loop buffer tidak lagi bisa diuji.

Kesimpulan

  • Alasan penonaktifan loop buffer: Alasan AMD menonaktifkan loop buffer di Zen 4 tidak jelas. Fitur CPU bisa dinonaktifkan karena bug hardware. Zen 4 adalah kasus pertama AMD memperkenalkan loop buffer pada CPU berperforma tingginya. Dampaknya terhadap performa hampir tidak ada, dan dampaknya terhadap konsumsi daya juga diperkirakan sangat kecil.

1 komentar

 
GN⁺ 2024-12-02
Opini Hacker News
  • Ada kemungkinan fitur ini dinonaktifkan untuk mencegah kerentanan perangkat keras. Ini mengisyaratkan bahwa loop buffer tidak memberi keuntungan dari sisi performa maupun daya

    • Bisa jadi tim engineer mengembangkan fitur baru ini selama berbulan-bulan, tetapi pada akhirnya tidak ada manfaat nyata dan tetap dirilis demi menjaga gengsi
    • Di tim software juga ada kasus ketika mereka menulis ulang codebase untuk meningkatkan performa, tetapi setelah proyek selesai justru kodenya bertambah banyak dan performanya memburuk
    • Dalam kedua kasus tersebut, proyeknya seharusnya tidak dirilis
  • Loop buffer di Zen 4 menunjukkan bahwa perusahaan memiliki kapasitas engineering untuk bereksperimen

    • Kali ini hasilnya tidak ada, tetapi membiarkan engineer bereksperimen dengan fitur berisiko rendah dan berdampak kecil adalah cara yang baik untuk membangun kepercayaan diri
    • Saya berharap ada lebih banyak kepercayaan diri ke depannya
  • Saya menggunakan 7950x3d dan meng-upgrade dari Skylake 6700k

    • Sepertinya saya tanpa sadar tertarik pada chip yang loop buffer perangkat kerasnya dinonaktifkan oleh software
  • Dalam game, menonaktifkan loop buffer menurunkan performa 5% saat dikunci ke die non-cache

    • Pengukuran daya yang lebih rinci mungkin bisa memastikan apakah ini terkait anggaran panas/daya
    • Fitur ini terdengar seperti sesuatu yang ditujukan untuk menghemat daya
  • Loop buffer ini tampaknya cukup kecil sehingga hanya membuat perbedaan dalam skenario tertentu, dan buffer yang lebih besar mungkin tidak memberi manfaat yang sepadan dengan biayanya

    • Pada beberapa beban kerja mungkin ada sedikit penurunan performa, tetapi AMD telah mencapai sedikit peningkatan performa sejak peluncuran
    • Seharusnya ini dijadikan opsi BIOS di Zen 4. Fakta bahwa tidak demikian menunjukkan kemungkinan adanya bug atau masalah keamanan
  • Di Cortex-A15, ini adalah "fitur desain utama"

    • Saya penasaran apakah ada angka tentang dampaknya pada chip lain
    • Dalam desain yang digunakan jangka panjang (misalnya konsol), ini bisa dijadikan target optimasi
  • Saya tidak paham seberapa besar ruang yang ditempati loop buffer di die

    • Jika dihilangkan, saya penasaran apakah ruangnya di chip masa depan bisa dipakai untuk sesuatu yang lebih berguna seperti cache L2
  • Di bagian "daya", perhitungannya tidak dibagi dengan jumlah instruksi yang dijalankan per detik

    • Metrik yang perlu dipertimbangkan untuk melihat manfaat loop buffer bukanlah energi per detik, melainkan penggunaan energi per instruksi
  • Salah satu perbedaan antara 68000 tahun 1979 dan 68010 tahun 1982 adalah penambahan "mode loop", yaitu loop buffer 6-byte