📑 Daftar Isi

Kode program untuk pengukuran latensi instruksi CPU

Rekor CPU Deoptimization: Instruksi x86 Paling Lambat 62 Detik

Penulis:Nur Hamzah
Terbit:
Diperbarui:
⏱️4 menit membaca
Bagikan:
  • Peneliti Christopher Domas mencatat rekor instruksi x86 paling lambat: 62 detik atau 198 miliar siklus
  • Instruksi fxrstor64 menjadi pemenang dengan memulihkan status register SIMD dari memori 512-byte
  • Metode menggunakan alat mmiotic dan teknik "starving the fabric" untuk memperlambat eksekusi
  • Rencana selanjutnya: instruksi AMX di Intel Sapphire Rapids dengan potensi 1 triliun siklus
  • Papan peringkat x86 live di GitHub, rencana perluasan ke ARM dan RISC-V
  • Aturan pengukuran: hanya satu instruksi, tanpa interupsi, tanpa emulasi, tanpa modifikasi hardware
  • CPU yang digunakan: Intel Core i7-8559U, AMD Ryzen 7 5800H, dan VIA Eden untuk rdmsr

Telset.id – Seorang peneliti hardware bernama Christopher Domas berhasil memecahkan rekor baru dalam proyek CPU Deoptimization dengan menemukan instruksi x86 paling lambat yang membutuhkan waktu 62 detik atau lebih dari 198 miliar siklus untuk dieksekusi. Temuan ini menjadi sorotan karena pendekatannya justru kebalikan dari upaya umum yang selalu berusaha membuat instruksi berjalan secepat mungkin.

Proyek yang dipublikasikan melalui akun GitHub @xoreaxeaxeax ini bertujuan mengukur instruksi Assembly dengan latensi tertinggi, bukan tercepat. Pemenangnya adalah instruksi fxrstor64 yang memakan waktu 62 detik untuk menyelesaikan tugasnya. Instruksi ini berfungsi memulihkan status register yang digunakan untuk perhitungan SIMD ke lokasi memori 512-byte.

Domas menggunakan alat bernama mmiotic untuk menemukan area latensi tinggi di internal PCIe fabric, kemudian memaksa CPU memuat status 512-byte dari MMIO (Memory-Mapped I/O). Proses ini memakan 74 miliar siklus atau sekitar 23 detik. Setelah itu, ia melangkah lebih jauh dengan “melaparkan fabric saat proses load berlangsung” menggunakan serangkaian pembacaan 4-byte dari register MMIO latensi tinggi lainnya, membanjiri PCIe root complex CPU dan memaksa pemulihan status mengantre di belakang operasi pembacaan yang tidak penting.

Langkah berikutnya dalam eksperimen ini adalah menggunakan instruksi AMX yang tersedia di Intel Sapphire Rapids untuk xrstore64. Area status yang diproses akan meningkat dari 512 byte menjadi 8KB, yang berpotensi membuat instruksi menggantung selama lebih dari 1 triliun siklus.

Aturan dan Metodologi Pengukuran

Papan peringkat x86 telah aktif di GitHub dan Domas juga berencana membuat papan peringkat serupa untuk arsitektur ARM dan RISC-V. Ada beberapa aturan yang diterapkan untuk setiap pengukuran. Domas menyatakan bahwa pengaturan apa pun diperbolehkan selama hanya eksekusi satu instruksi yang dinilai. Instruksi yang dapat diinterupsi tidak diizinkan, begitu pula instruksi emulasi yang dijalankan pada handler.

Semua waktu dinormalisasi berdasarkan clock dasar CPU, dan semua platform dijalankan tanpa modifikasi hardware. Karena ini berkaitan dengan kode assembly, peringkat yang dihasilkan lebih mencerminkan bagaimana instruksi digunakan daripada sekadar instruksi spesifiknya.

Domas terutama menggunakan dua CPU untuk pengujian: Intel Core i7-8559U dan AMD Ryzen 7 5800H (di dalam Trigkey S5). Untuk instruksi rdmsr, ia menggunakan chip VIA Eden, prosesor embedded dari awal tahun 2000-an. Perintah rdmsr digunakan untuk membaca model-specific register (MSR). Menurut Domas, VIA “menggunakan register yang tidak terdokumentasi di 0x133 yang memberikan waktu respons sangat tinggi.” Perintah tersebut memakan 202 mikrodetik atau 161.602 siklus untuk dieksekusi.

Ini bukan eksperimen liar pertama Domas dengan instruksi tingkat rendah. Proyek sebelumnya bernama movfuscator adalah kompiler C yang hanya menggunakan perintah mov (move). Eksperimen semacam ini menunjukkan bagaimana pemahaman mendalam tentang arsitektur prosesor dapat membuka wawasan baru, baik untuk optimasi maupun untuk memahami keterbatasan hardware. Bagi para penggemar teknologi, proyek ini menjadi bukti bahwa eksplorasi di luar kebiasaan tetap memiliki nilai riset yang signifikan.

Fenomena CPU deoptimization ini juga menarik untuk dicermati di tengah tren industri yang terus mendorong peningkatan performa. Sementara produsen besar berlomba menghadirkan prosesor tercepat, pendekatan Domas justru mengukur kebalikannya. Hal ini memberikan perspektif berbeda tentang bagaimana instruksi bekerja di level paling rendah dan bagaimana interaksi antara CPU, memori, dan komponen lain memengaruhi latensi secara keseluruhan.

Code on screen.

Hasil pengukuran yang dipublikasikan melalui akun Twitter Domas menunjukkan data lengkap: 198.002.498.236 siklus, 62 detik untuk instruksi x86 tunggal. Ia menyebut proyek ini sebagai “assembly hall of shame” dan mengundang publik untuk melihat langsung papan peringkatnya. Eksperimen ini juga membuka diskusi tentang bagaimana desain CPU modern, termasuk mekanisme seperti PCIe fabric dan manajemen memori, dapat menjadi celah untuk memperlambat eksekusi instruksi secara signifikan.

Meskipun terdengar kontraproduktif, proyek semacam ini memiliki implikasi praktis. Memahami latensi ekstrem membantu peneliti keamanan mengidentifikasi potensi serangan side-channel atau celah yang dapat dieksploitasi. Di sisi lain, pengembang perangkat lunak juga bisa belajar tentang perilaku CPU yang tidak terduga ketika berhadapan dengan beban kerja tertentu. Dengan kata lain, data dari CPU deoptimization bisa menjadi bahan berharga untuk pengujian dan validasi desain hardware di masa depan.

A hand holding the Ryzen 7 9850X3D.

Proyek ini juga mengingatkan bahwa dunia riset hardware tidak melulu tentang kecepatan. Eksperimen seperti yang dilakukan Domas menunjukkan bahwa pendekatan non-konvensional dapat menghasilkan temuan menarik yang mungkin terlewatkan oleh riset arus utama. Dengan rencana memperluas pengukuran ke arsitektur ARM dan RISC-V, komunitas teknologi akan mendapatkan gambaran yang lebih lengkap tentang perilaku berbagai desain prosesor di bawah kondisi ekstrem.

Bagi pembaca yang tertarik mengikuti perkembangan dunia hardware dan prosesor, proyek seperti ini menjadi pengingat bahwa inovasi bisa datang dari arah yang tidak terduga. Sementara industri fokus pada peningkatan performa, riset seperti CPU deoptimization memberikan kontribusi unik dalam memahami batas-batas teknologi yang ada.

Ikuti Telset.id di Google NewsFollow

Komentar

Belum ada komentar.