Prosesor AMD baru Ryzen keluar di pasaran dan sayangnya mereka tampaknya kurang dalam bermain game. Prosesor Intel jelas masih lebih cepat untuk bermain game. Orang-orang tentu saja tidak mendukung ini dan AMD membuat pernyataan yang mengatakan bahwa mereka memperbarui firmware atau perangkat lunak untuk mempercepat Ryzen untuk permainan.
Perbaiki saya jika saya salah tetapi prosesor harus memiliki firmware statis agar kompatibel dengan standar x64? Jika demikian, bukankah AMD harus mengoptimalkan game (perangkat lunak) untuk prosesor mereka yang jelas tidak mungkin? Apa yang terjadi di sana untuk mengatakan hal-hal seperti itu jika sepertinya tidak mungkin melihat kondisi yang mendasarinya?
Tapi saya mungkin salah (saya harap begitu) jadi Pertanyaannya adalah:
Apakah mungkin untuk mencapai speedup untuk prosesor tanpa mengubah perangkat keras yang mendasarinya? Jika memungkinkan, bagaimana ini dilakukan? Apakah ada perangkat lunak di samping firmware untuk prosesor?
Jawaban:
Prosesor modern jauh lebih rumit dari yang diperkirakan. Mereka sangat rumit, hampir di luar pemahaman satu orang. Memperluas komentar singkat dengan "horta", orang mungkin memiliki semua hal berikut:
Untuk memulainya, hampir semua perangkat keras internal dapat dikonfigurasi untuk sebagian besar. Ada ribuan register konfigurasi dengan miliaran bit individual yang harus disetel agar CPU dapat beroperasi. Semua beberapa lapisan interaksi cache-CPU memiliki jaringan pipa yang dapat dikonfigurasi, dan berbagai penundaan waktu jelas berpengaruh pada kinerja keseluruhan.
Ada ratusan fitur canggih yang diletakkan oleh arsitek bahwa teknik tidak punya waktu untuk memvalidasi, sehingga ratusan fitur dinonaktifkan atau diatur ke dalam konfigurasi gagal-aman dengan "bit ayam" . Tetapi mereka dapat disetel dan diaktifkan jika ditemukan fungsional dan berguna. Fitur-fitur peningkatan ini biasanya mendapatkan validasi mendalam dari waktu ke waktu, dan dapat secara bertahap diaktifkan selama masa pakai prosesor dengan berbagai patch mikrokode.
Semua CPU baru-baru ini memiliki beberapa unit internal yang dikendalikan oleh mikroprosesor independen yang tertanam di dalam chip CPU x86. Satu unit yang muncul secara publik adalah P-Unit. Prosesor modern tidak dapat berfungsi tanpa manajemen daya yang agresif, atau mereka akan meleleh. Namun, manajemen daya yang dalam bertentangan dengan kebijakan waktu keluar / masuk yang agresif, dan perubahan kebijakan sangat mempengaruhi kinerja sistem secara keseluruhan. Semua detail dikendalikan oleh Unit-P, dan dapat dioptimalkan / disetel dengan memuat patch mikrokode lain, seperti dijawab di sini.
Banyak aspek interkoneksi internal lainnya dikendalikan oleh berbagai prosesor tertanam tambahan, yang dapat diperbaiki dengan memuat patch mikrokode ke dalamnya, atau memutakhirkan BIOS jika memiliki akses ke sumber daya konfigurasi ini.
Singkatnya, sementara perangkat keras CPU memang bawaan, konfigurasi perangkat keras tersebut cukup menentukan kinerjanya, dan dapat disesuaikan untuk kinerja sistem yang lebih baik melalui pembaruan BIOS dan patch mikrokode tertanam.
sumber
Berbagai masalah perangkat lunak pada sistem operasi dan tingkat aplikasi menyebabkan kinerja yang tidak optimal.
Prosesor delapan-inti Ryzen terdiri dari dua inti kompleks (CCX) masing-masing dengan empat core dan 8 MB cache L3. Mengakses L3 cache pada CCX yang berbeda lebih lambat karena kebutuhan untuk memindahkan data lebih jauh di sepanjang Infinity Fabric (interkoneksi cache-koheren proprietary AMD), yang berarti bahwa memindahkan thread dari satu CCX ke CCX lain atau berkomunikasi antar core pada CCX yang berbeda menghasilkan mengurangi kinerja. Hukuman ini mengingatkan pada apa yang akan terjadi pada server multi-socket yang menjalankan sistem operasi yang tidak diketahui oleh NUMA .
Tampaknya Windows memiliki kecenderungan untuk hanya memindahkan proses di sekitar inti yang berbeda dan tidak mengenali hukuman komunikasi antar-CCX . Ini berarti bahwa Windows dapat menempatkan utas pada CCX yang berbeda bahkan ketika melakukannya tidak perlu , mengurangi kinerja.
Peninjau Jerman PC Games Hardware menguji Ryzen 7 1800X dengan jumlah core yang berbeda-beda dan menemukan bahwa memiliki dua CCX dengan dua core yang diaktifkan pada masing-masing menghasilkan kinerja yang lebih lambat daripada mengaktifkan satu CCX dengan semua core-nya tetap utuh:
Ini terlepas dari fakta bahwa hanya memiliki satu CCX diaktifkan berarti bahwa hanya 8 MB cache L3 tersedia, daripada 16 MB penuh. Dari artikel Hardware Game PC, via Google Translate (penekanan ditambahkan):
Artikel Perspektif PC ini menunjukkan bahwa ada latensi komunikasi yang substansial antar core pada CCX yang berbeda, tetapi latensi yang sangat sedikit ketika berkomunikasi dengan core di CCX yang sama. Perhatikan bahwa artikel ini menyarankan Windows mengetahui desain CCX dan menghindari utas penjadwalan pada CCX yang berbeda tetapi hasil yang bertentangan telah ditemukan oleh anggota komunitas.
Banyak (tapi tidak semua) tolok ukur permainan menunjukkan peningkatan kinerja ketika SMT dinonaktifkan. Namun, rumor yang menyatakan bahwa Windows menjadwalkan dengan tidak benar seolah-olah setiap utas perangkat keras sebagai intinya sendiri salah . Menurut AMD, ini disebabkan oleh kenyataan bahwa banyak aplikasi dioptimalkan hanya untuk prosesor Intel (yang tidak terduga mengingat AMD telah menjadi MIA dari pasar prosesor kelas atas selama sekitar lima tahun). AMD mengatakan bahwa mereka sedang bekerja dengan ratusan pengembang game untuk meningkatkan kinerja prosesor Ryzen. Namun, saya menduga bahwa pembaruan Windows masih dapat membantu dengan lebih baik menyetel penjadwal untuk karakteristik arsitektur Zen .
Contoh berikut dari Tom's Hardware menunjukkan kinerja yang menurun dengan SMT diaktifkan:
TechSpot melakukan analisis mendalam tentang kinerja game dengan SMT diaktifkan dan dinonaktifkan dan muncul dengan hasil yang sangat mirip:
Ada juga masalah manajemen daya yang terlibat dalam tes ini. Pernyataan AMD yang sama mencatat bahwa Windows tidak sepenuhnya menyadari fitur-fitur baru di Ryzen seperti parkir inti dan perpindahan frekuensi jam cepat. Ini konsisten dengan peningkatan kinerja yang dilaporkan oleh Tom's Hardware ketika menggunakan paket daya Kinerja Tinggi (lihat grafik di atas, HP = Kinerja Tinggi). Pembaruan untuk Windows dapat menambahkan dukungan untuk fitur-fitur ini dan meningkatkan kinerja.
sumber
http://wccftech.com/amd-ryzen-launch-aftermath-gaming-performance-amd-response/
Jadi pertanyaan sebenarnya bukan bagaimana pembaruan BIOS / firmware dapat membuat prosesor lebih cepat (dapat dilakukan, optimasi mikrokode, dll ...) lebih ... bagaimana lumpuh adalah CPU oleh kereta BIOS / firmware
sumber
BIOS umumnya dianggap sebagai firmware. BIOS dapat mengubah segala macam bit dalam perangkat keras untuk mengubah cara sistem berjalan
Jadi ya sepenuhnya layak bagi mereka untuk mengeluarkan firmware baru dan untuk hal-hal seperti kecepatan clock, atau apakah prefetch diaktifkan, atau apakah core tertentu — atau IIO — bisa mendapatkan preferensi tertentu ke cache yang berpotensi meningkatkan kinerja gaming karena untuk sebagian besar game yang dirancang secara single-threaded.
sumber
Tidak terlalu banyak pembaruan perangkat lunak akan membuat prosesor lebih cepat. Apa yang diharapkan semua orang adalah bahwa pembaruan perangkat lunak akan membuat perangkat lunak lebih cocok untuk arsitektur Ryzen, dan dapat meningkatkan kinerjanya dengan lebih baik.
Hampir. Ada perangkat lunak dalam CPU (mikrokode, seperti yang disebutkan di atas) dan itu dapat mempengaruhi kinerja. Pada dasarnya X86 hanya menentukan hasil operasi, bagaimana tepatnya CPU mencapai hasil tersebut adalah masalah para insinyur. Peluang tweak mikrokode memainkan peran utama dengan Ryzen sangat tipis, karena kesenjangan kinerja tampaknya berlaku sebagian besar untuk game yang menunjukkan CPU berkinerja baik, tetapi beberapa game khususnya tidak memanfaatkannya dengan baik.
Sistem Operasi bertanggung jawab untuk mencoba memastikan program tersebar di CPU secara efisien, yang dapat mempengaruhi kinerja, tetapi secara umum tidak satu pun dari faktor-faktor ini yang menjadi masalah utama untuk arsitektur baru. Sebagian besar peningkatan kinerja dalam kasus seperti ini terjadi karena pengembang menulis kode yang lebih sesuai dengan arsitektur baru. Hal ini cenderung tidak terjadi di antara generasi CPU Intel karena perubahan desain tidak terlalu signifikan, sehingga apa yang bekerja dengan baik pada satu kemungkinan akan bekerja dengan baik pada yang lain.
Namun Ryzen adalah desain baru, jadi semua yang telah ditulis sesuai dengan CPU lain secara definisi belum ditulis sesuai dengan Ryzen.
Untuk menyederhanakan situasi secara besar-besaran, bayangkan dua prosesor:
Processor One telah ada di pasaran beberapa saat, dan (untuk alasan apa pun) sangat cepat dalam menambahkan angka. Perangkat lunak dirancang untuk mencoba dan menggunakan tambahan sebanyak mungkin, untuk memanfaatkan kemampuan ini.
Prosesor yang bersaing mendarat di pasar dan lebih lemah di samping, tetapi lebih kuat di multiplikasi. Semua perangkat lunak yang dioptimalkan untuk menggunakan lebih banyak instruksi tambahan-berkinerja buruk pada prosesor baru, tetapi perangkat lunak yang belum dirancang untuk menggunakan banyak penambahan melakukan lebih kurang sama. Beberapa perangkat lunak mungkin sudah melakukan banyak perkalian, dan akan bekerja lebih baik pada CPU baru daripada pada Prosesor Satu, bahkan pada hari peluncuran.
Beberapa waktu setelah peluncuran, pengembang akan mulai beradaptasi, menggunakan lebih banyak perkalian dalam perangkat lunak mereka, atau bahkan merancang perangkat lunak mereka untuk beralih di antara jalur kode tambahan-berat, dan yang multiplikasi-berat tergantung pada arsitektur CPU yang digunakan.
Ini adalah apa yang terjadi dengan Ryzen - ini adalah arsitektur baru yang belum dioptimalkan oleh pengembang perangkat lunak sesuai dengan karakteristiknya. Jika diberi waktu, pengembang akan mulai mengubah perangkat lunak mereka agar kinerjanya lebih baik. Karena sebagian besar perangkat lunak telah dirancang untuk berkinerja baik pada CPU Intel (mereka sangat populer, setelah semua!), Mereka kemungkinan tidak akan mendapat manfaat dari perubahan ini sangat banyak.
Ada beberapa beban kerja yang membuat Intel tetap lebih cepat, dan beberapa yang Ryzen lebih cepat (dan akan semakin cepat) tergantung pada perilaku yang mendasarinya. Dalam situasi yang saya berikan di atas, sebuah perangkat lunak yang hanya perlu menambahkan hal-hal akan selalu berkinerja lebih baik pada prosesor pertama, dan perangkat lunak yang hanya harus melipatgandakan hal-hal akan selalu berkinerja lebih baik pada yang kedua - tetapi untuk sebagian besar perangkat lunak kompleks dan perbedaan-perbedaan ini akan sedikit keluar.
Perlu juga dicatat bahwa apa yang sebenarnya dikatakan AMD tentang kinerja game adalah bahwa mereka bekerja dengan pengembang untuk mendapatkan game yang dioptimalkan. Mereka mengirimkan sistem dev ke perusahaan (saat ini ada 300 di alam bebas, dan mereka menargetkan 1000 pada akhir tahun) dan berbicara dengan mereka yang permainannya berkinerja buruk untuk membantu mengatasi masalah ini. Sejauh yang saya tahu, tidak ada pernyataan yang dibuat bahwa AMD sendiri mengoptimalkan game.
Dalam kasus khusus ini Ryzen juga ditahan dalam beberapa keadaan oleh Windows membuat keputusan yang buruk tentang core mana yang harus diisi dengan pekerjaan, dan BIOS saat ini bermasalah karena alasan yang saya tidak akan pura-pura tahu. Namun masalah-masalah tersebut tidak dapat bertanggung jawab atas semua kesenjangan kinerja, karena ada beban kerja di mana Ryzen sudah mengungguli Intel secara meyakinkan, yang menunjukkan bahwa masalah ini setidaknya sebagian (jika tidak sebagian besar) turun ke program-program tertentu yang sedang dijalankan, daripada OS atau BIOS secara keseluruhan.
sumber
Tentu saja perangkat lunak dapat meningkatkan kinerja CPU atau bahkan GPU.
Salah satu cara pasti overclocking atau semacam mekanisme pengubah jam. Yang kedua adalah optimalisasi driver. Ini termasuk metode kompresi data yang lebih baik, algorythms decoding lebih cepat, dll ... pada dasarnya fitur yang membantu memanfaatkan lebih banyak perangkat keras dengan lebih baik. Fitur-fitur ini juga dapat diperbarui oleh pembaruan firmware, yang sebenarnya bukan perangkat lunak (biasa). Lalu ada perangkat lunak yang dapat mengontrol solusi pendinginan komputer Anda. Itu sangat berguna untuk CPU dan GPU yang memanfaatkan teknologi peningkatan kinerja seperti Intel Turbo boost dan Nvidia's GPU boost. Perangkat keras seperti itu memiliki batasan suhu tertentu, sehingga mereka menurunkan kinerjanya, ketika mereka berjalan terlalu panas dan overclock secara dinamis, ketika aplikasi menuntut daya komputasi yang lebih tinggi, selama mereka belum mencapai daya maksimum dan mereka
Ada opsi lain juga, tetapi sebagian besar menutupinya. Pada dasarnya, selama Anda tahu masalahnya dan secara programatik dapat memanipulasi cara data diproses (seperti memperkenalkan beberapa algoritma penguraian kata sandi pintar yang menggantikan jenis solusi "brute force") atau memanipulasi reaksi prosesor terhadap berbagai faktor kunci terhadap kinerjanya. (seperti meningkatkan pendinginan secara lebih agresif jika terjadi overheating atau memonitor permintaan sumber daya dari aplikasi dan secara dinamis melakukan overclocking sendiri ketika lebih banyak daya pemrosesan diperlukan), Anda dapat melakukan banyak hal untuk meningkatkan (atau memperburuk) kinerja unit pemrosesan.
Dalam kasus AMD, ini mungkin merupakan optimasi mekanisme peningkatan atau solusi pendinginannya. Salah satu atau keduanya mungkin telah diubah untuk bereaksi lebih agresif terhadap peningkatan beban atau suhu.
TL; DR: Ya, perangkat lunak dapat meningkatkan kinerja prosesor. Ada banyak cara yang dapat dilakukan, seperti optimasi driver dan firmware, overclocks, dll. Setiap perubahan perangkat lunak yang menyiapkan data sehingga lebih mudah untuk memproses atau membuat perangkat keras bereaksi lebih baik terhadap beban atau keterbatasannya sangat mungkin akan menyebabkan peningkatan kinerja.
sumber
Pembaruan perangkat lunak pasti dapat membuat sistem (termasuk prosesor) berjalan lebih cepat.
Contoh yang sangat ekstrem dari ini adalah komputer mainframe IBM yang besar: Anda dapat membeli lebih banyak waktu CPU secara online, dan yang Anda dapatkan hanyalah kunci lisensi yang harus Anda masukkan ke dalam OS Anda, dan boom !, sistem Anda berjalan lebih cepat. Caranya sederhana: OS scheduler kadang-kadang hanya menolak untuk menjadwalkan tugas dan meminta CPU untuk tidur, atau bahkan hanya menjalankan loop NO-OP untuk waktu yang singkat, untuk mencapai throughput rata-rata keseluruhan yang diberikan. Jika Anda membayar untuk lisensi yang lebih mahal, penjadwal kemudian menghapus NO-OP tersebut.
Atau, bahkan lebih drastis: jika Anda membeli sistem dengan hanya 4 atau 6 atau 8 CPU, biasanya akan ada sekitar 16-32 yang benar-benar diinstal. OS cukup mematikan beberapa dari mereka, dan dengan memasukkan kunci lisensi, Anda dapat menyalakannya.
Demikian pula, mainframe IBM membedakan antara berbagai jenis prosesor: prosesor Linux, prosesor Java, prosesor Transaksi, dll. Mereka sebenarnya semua prosesor yang sama, tetapi penjadwal OS akan menolak untuk menjadwalkan tugas-tugas Transaksi (yang merupakan yang paling penting) ke suatu Prosesor Java atau Linux. Hanya Java VMs yang dijadwalkan untuk prosesor Java dan hanya Linux VMs yang dijadwalkan untuk prosesor Linux. Jika Anda ingin mendapatkan kinerja Transaksi yang lebih tinggi, Anda harus membeli lisensi untuk lebih banyak prosesor Transaksi: sekali lagi, mereka adalah prosesor yang sama persis, satu-satunya perbedaan adalah bendera konfigurasi dalam penjadwal yang mengatakan "jangan menjadwalkan tugas transaksi ke prosesor tersebut." ".
Contoh lain, tidak terlalu ekstrem, adalah edisi Windows yang berbeda. Edisi Windows yang berbeda mendukung jumlah core CPU yang berbeda dan jumlah memori yang berbeda pula. Jika Anda memiliki memori yang besar dan sejumlah besar CPU, Anda dapat membuat sistem Anda lebih cepat, hanya dengan memutakhirkan ke edisi Windows yang "lebih besar". Perhatikan bahwa edisi memiliki kode yang sama persis; hanya ada beberapa saklar konfigurasi di suatu tempat yang mengatakan "Anda adalah Edisi Rumah, Anda hanya mendukung 1 CPU dan 128 GiByte".
sumber