Mengapa produsen CPU berhenti meningkatkan kecepatan clock prosesor mereka? [Tutup]

63

Saya telah membaca bahwa produsen berhenti berkonsentrasi pada kecepatan clock yang lebih tinggi dan sekarang sedang mengerjakan hal-hal lain untuk meningkatkan kinerja.

Dengan

  • mesin Desktop lama dengan Intel® Xeon® Processor E3110 dengan kecepatan clock 3.0GHz
  • dan server baru dengan Prosesor AMD Opteron (TM) 6272 dengan kecepatan clock 2.1GHz

ketika dilakukan perbandingan enkripsi sederhana menggunakan (single threaded)

 openssl aes256c

kinerja desktop jauh lebih baik daripada server.

Jadi, bahkan dengan optimasi terbaru, mengapa prosesor dengan kecepatan clock yang lebih baik berkinerja lebih baik?

pelajar
sumber
57
Chip desktop adalah dual-core; server adalah CPU 16-core. Menggunakan tolok ukur single-threaded TIDAK cocok sama sekali.
MSalters
@learner - Karena kecepatan prosesor tidak dapat meningkat dengan meningkatnya jumlah tegangan yang mereka butuhkan yang mengurangi panas. Dengan berkonsentrasi pada konsumsi daya, mereka secara teori dapat meningkatkan kecepatan prosesor di masa depan.
Ramhound
1
Sebutkan kasus aktual 'pabrik' 'yang bahkan mengurangi' kecepatan jam (tanpa membandingkan apel dan jeruk) atau batasi judul pertanyaan Anda menjadi 'tidak bertambah'.
Jan Doggen
8
AMD vs Intel clock speed belum menjadi perbandingan yang adil sejak K6 / Pentium. AMD memasarkan prosesor Athlon sebagai 2500+ atau 3000+ ketika jam inti mereka masing-masing 1,8 atau 2,1, tetapi mereka biasanya masing-masing di-benchmark dengan chip Intel yang melakukan clock 2,5 atau 3GHz yang sebenarnya. Ada hanya cara terlalu banyak perbedaan antara arsitektur sekarang untuk membuat perbandingan hanya pada tingkat clock.
KeithS

Jawaban:

72

Alasan produsen berhenti berkonsentrasi pada peningkatan kecepatan clock adalah karena kita tidak bisa lagi mendinginkan prosesor dengan cukup cepat agar ini dapat berjalan. Semakin tinggi kecepatan clock, semakin banyak panas yang dihasilkan, dan kami sekarang telah mencapai tahap di mana tidak lagi efisien untuk meningkatkan kecepatan prosesor karena jumlah energi yang digunakan untuk mendinginkannya.

Jawaban lain menjelaskan secara rinci tentang bagaimana kecepatan clock yang lebih tinggi tidak berarti kinerja yang lebih baik di semua bidang.

Paul Hay
sumber
1
+1 Sepertinya saya telah membeli mesin saya saat dinding ini dipukul, P4 3,4 ghz saya yang berusia 8 tahun mungkin yang tercepat dalam hal kecepatan clock, ketika melihat sebagian besar pasar (non OC).
Karthik T
2
perhatikan bahwa konsumsi daya juga akan menjadi masalah. Jika Anda memiliki 16 inti 3.0GHz, itu mungkin akan mengkonsumsi 200+ watt, yang hampir tidak dapat didukung oleh catu daya paling umum dalam kombinasi dengan seluruh sistem.
Mixxiphoid
9
@Mixxiphoid Anda juga perlu memasukkan 200+ W ke dalam CPU, pada tegangan yang bisa ditangani oleh sirkuit. Itu sendiri merupakan tugas yang tidak sepele.
CVn
1
Tidak hanya itu, untuk menambah CPU Clock mereka perlu menambah pipeline, tetapi setiap kali Anda perlu fork code, mengubah konteks, melompat atau menghapus memori Anda menghapus seluruh pipeline, dan Anda perlu mengisinya lagi untuk memberikan sebuah hasil untuk instruksi itu, jadi lebih baik mengurangi pipeline dan frekuensi CPU, jadi setiap kali Anda perlu bercabang, ubah konteks, lompati Anda tidak perlu menunggu lama untuk mengisi pipeline lagi.
Lefsler
1
@demonofnight: Terlalu banyak untuk mengatakan "setiap kali Anda perlu (...) melompat". Cabang langsung tanpa syarat tidak menimbulkan bahaya kontrol sehingga mereka tidak dihitung dari cabang bersyarat ~ 95% -99% diprediksi oleh berbagai teknik (data berdasarkan beberapa kertas berdasarkan SPEC). Cabang langsung memang menimbulkan masalah jika targetnya belum terdaftar dan ada salah duga. Saya tidak yakin apa yang Anda maksud dengan 'fork the code' atau 'clear the memory' tetapi switch konteks sebaiknya tidak sering dieksekusi (mengganggu dan mungkin I / O).
Maciej Piechotka
37

Ada lebih banyak kecepatan pemrosesan daripada laju jam.

  • CPU yang berbeda dapat melakukan jumlah yang berbeda dalam jumlah siklus clock yang sama, karena varian yang berbeda pada pengaturan pipa dan memiliki beberapa unit komponen (adders dan sebagainya) di setiap core. Sementara dalam pengujian Anda bukan itu masalahnya, Anda sering menemukan chip "lebih lambat" dapat melakukan lebih dari yang cepat (diukur dengan clock rate saja) karena mampu melakukan lebih banyak per tick.

  • Tes yang Anda lakukan mungkin sangat sensitif terhadap perbedaan dalam arsitektur CPU: itu dapat dioptimalkan untuk arsitektur tertentu, Anda mungkin menemukan kinerjanya berbeda tidak hanya antara chip Intel dan yang AMD tetapi antara chip Intel (atau AMD) dari keluarga yang berbeda. Kemungkinan menggunakan satu utas juga sehingga tidak mengambil keuntungan dari beberapa core CPU.

  • Ada langkah untuk menurunkan laju clock karena alasan manajemen daya dan panas: meningkatkan laju clock tidak memiliki efek linier pada penggunaan daya dan output panas.

  • Karena hubungan non-linear di atas, jauh lebih efisien untuk persyaratan saat ini untuk memiliki beberapa unit pemrosesan daripada mendorong kecepatan satu unit yang lebih tinggi. Ini juga memungkinkan trik pintar untuk menghemat daya seperti mematikan inti individu ketika tidak digunakan dan menghidupkannya kembali karena permintaan meningkat lagi. Tentu saja banyak core tidak membantu algoritma single-threaded tentu saja, meskipun itu akan terjadi jika Anda menjalankan dua atau lebih dari itu secara bersamaan.

David Spillett
sumber
Jadi apa hubungan antara clock rate dan penggunaan daya?
user84207
$ P = CV ^ 2f $. Anda mungkin juga ingin membaca ini .
zakkak
19

Menurut Anda mengapa produsen sebenarnya menurunkan kecepatan clock dengan hanya membandingkan dua prosesor?

  1. The 6272 memiliki Turbo Speed of 3GHz. Kecepatan dasar yang lebih rendah hanya untuk menurunkan watt rata-rata dan menjaga TDP yang dapat diterima untuk workloard ketika semua core ditekan.
  2. Chip kinerja tinggi AMD berikutnya untuk desktop, FX-9590 akan mencapai 5 Ghz.

Juga kecepatan-jam tidak sama dengan kinerja per siklus-jam. Anda dapat memiliki 3,8 Ghz P4 vs satu 3,2 Ghz inti dari i7-3930K, tetapi itu tidak berarti inti P4 lebih cepat.

Semua yang dikatakan di sini tentang konsumsi daya juga sangat valid dan benar untuk desain 16 inti, di mana Anda secara alami menjadi lebih peduli tentang masalah TDP.

Juga metode benchmark Anda hanya menguji openssl agak sederhana untuk memberikan angka dunia nyata. Mungkin Anda harus mencoba suite benchmark crypto.

s1lv3r
sumber
3
Hanya dengan menambahkan analogi pada clock-speed = fallacy kinerja. Bayangkan satu orang mengambil langkah sangat kecil tetapi sangat cepat (kecepatan clock tinggi), vs orang lain mengambil langkah sangat besar dengan kecepatan sedikit lebih lambat (frekuensi clock lebih rendah). Orang yang mengambil langkah besar bisa bergerak lebih cepat.
Martin Konecny
@MartinKonecny: Visualisasi hebat!
Zach Latta
2
@ MartinKonecny ​​Pemahaman saya adalah bahwa sebagian besar instruksi assembler (ADD, MOV, IMUL, dll) dilakukan dalam satu siklus. Jadi dengan prosesor baru ini, apakah banyak instruksi dilakukan dalam satu siklus tunggal?
nialsh
4
@nialsh Itu tidak benar sama sekali untuk komputer CISC (pada kenyataannya salah satu hal yang menentukan CISC adalah instruksi mengambil beberapa siklus), jika semua instruksi mengambil satu siklus maka instruksi paling lambat akan mengambil jumlah waktu yang sama untuk mengeksekusi sebagai yang tercepat petunjuk.
Scott Chamberlain
x86 CPU digunakan untuk membutuhkan beberapa siklus clock per instruksi, tetapi hari ini mereka dapat menjalankan banyak instruksi per siklus clock.
Oskar Skog
13

Kasing uji Anda (enkripsi aes-256) sangat sensitif terhadap pengoptimalan khusus prosesor.

Ada berbagai CPU yang memiliki instruksi khusus yang dimaksudkan untuk mempercepat operasi enkripsi / dekripsi. Instruksi khusus ini tidak hanya hadir di desktop Anda - mungkin saja CPU AMD memiliki instruksi khusus yang berbeda. Juga, openssl mungkin mendukung instruksi khusus ini hanya untuk CPU Intel. Apakah Anda memeriksa apakah itu masalahnya?

Untuk mengetahui sistem mana yang lebih cepat, coba gunakan rangkaian benchmark "tepat" - atau lebih baik, gunakan saja beban kerja Anda.

jakob
sumber
Di mana terjemahan ke instruksi khusus itu terjadi? Saya tidak yakin apakah ada kompiler yang berbeda untuk set instruksi yang berbeda.
Shubham
Compiler memang memiliki opsi untuk menargetkan set instruksi yang berbeda, dan / atau "fungsi intrinsik" khusus yang memetakan secara dekat ke instruksi spesifik CPU. Ada kemungkinan untuk satu executable untuk memeriksa keluarga CPU yang menjalankannya, dan memilih jalur kode yang berbeda berdasarkan itu.
Russell Borogove
10

Sederhana: Chip AMD jauh, jauh lebih cepat karena merupakan chip 16 inti. Pada 115 Watt, itu berarti setiap inti menghasilkan ~ 7 Watt. Ini tidak akan mungkin tercapai jika setiap core beroperasi pada 3 Ghz. Untuk mencapai angka 7 Watt itu, AMD menurunkan frekuensi clock. Menurunkan frekuensi clock sebesar 10% mengurangi konsumsi daya sebesar 20%, yang pada gilirannya memungkinkan Anda untuk menempatkan 25% core ekstra pada sebuah chip.

MSalters
sumber
10

Seperti yang dikatakan orang lain, kita tidak bisa lagi mendinginkan CPU secara efektif jika kita mendorong tegangan yang diperlukan untuk peningkatan laju jam relatif yang sama di masa lalu. Ada suatu masa (era P4 dan sebelumnya) ketika Anda dapat membeli CPU baru dan melihat kecepatan "langsung" adalah kecepatan karena laju jam meningkat secara signifikan dibandingkan dengan generasi sebelumnya. Sekarang kita telah menabrak dinding termal.

Setiap generasi prosesor baru yang modern sedikit meningkat dalam clock rate, tetapi ini juga relatif terhadap kemampuan untuk mendinginkannya dengan tepat. Pembuat chip, seperti Intel, terus-menerus berfokus pada penyusutan ukuran die CPU untuk membuat keduanya lebih hemat daya dan menghasilkan lebih sedikit panas pada jam yang sama. Sebagai catatan, ukuran die yang menyusut ini membuat prosesor modern lebih rentan mati karena over-volting daripada overheating. Ini berarti bahwa itu juga membatasi laju clock ceiling dari setiap CPU generasi saat ini tanpa optimasi lain yang dibuat oleh pembuat chip.

Area lain yang sedang sangat difokuskan oleh pembuat chip adalah meningkatkan jumlah core pada chip. Ini memang faktor dalam peningkatan yang signifikan dalam daya komputasi, tetapi hanya ketika menggunakan perangkat lunak yang mengambil keuntungan dari beberapa core. Perhatikan perbedaan antara daya komputasi dan kecepatan di sini. Sederhananya, kecepatan mengacu pada seberapa cepat komputer dapat menjalankan satu instruksi, sedangkan kekuatan komputasi mengacu pada berapa banyak komputasi yang dapat dibuat komputer dalam jumlah waktu tertentu. Sistem operasi modern, dan banyak perangkat lunak modern memang memanfaatkan banyak inti. Masalahnya adalah bahwa pemrograman bersamaan / paralel lebih sulit daripada paradigma pemrograman linier standar. Ini meningkatkan waktu yang dibutuhkan untuk banyak program di pasar untuk mengambil keuntungan penuh dari kekuatan prosesor yang lebih baru ini karena banyak pengembang tidak terbiasa menulis program dengan cara ini. Masih ada beberapa program di pasaran saat ini (baik yang modern maupun yang lama) yang tidak memanfaatkan multi core atau multi-threading. Program enkripsi yang Anda kutip adalah salah satu contohnya.

Kedua area fokus pembuat chip ini secara intrinsik terhubung. Dengan mengurangi ukuran die dan konsumsi daya sebuah chip, mereka kemudian dapat meningkatkan jumlah core pada chip tersebut. Namun akhirnya, ini juga akan menabrak dinding, menyebabkan perubahan paradigma yang lebih drastis.

Alasan pergeseran paradigma ini adalah karena kita mendekati batas silikon sebagai bahan dasar untuk produksi chip. Ini adalah sesuatu yang telah diselesaikan oleh Intel dan lainnya untuk beberapa waktu. Intel telah menyatakan bahwa ia memiliki alternatif untuk silikon dalam karya, dan kami mungkin akan mulai melihatnya beberapa waktu setelah 2017. Selain bahan baru ini, Intel juga melihat ke dalam transistor 3D yang dapat "secara efektif tiga kali lipat kekuatan pemrosesan". Berikut ini adalah artikel yang menyebutkan kedua ide ini: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm

PseudoPsyche
sumber
2
  • Kehilangan panas H sama dengan frekuensi ke-4 f.

    H ~ f ^ 4

    Jadi, peningkatan frekuensi yang kecil menyebabkan hilangnya panas yang tinggi.

  • Miniaturisasi lebih jauh

    Frekuensi yang lebih tinggi mengarah ke minimalisasi kristal yang lebih jauh. Saat ini kami tidak memiliki teknologi untuk bekerja secara efektif dengan bahan skala nano-meter dan batasnya adalah nano-meter.

Ahli sihir
sumber
2
-1 Bagian kekuatan keempat tidak benar. Daya (panas yang dihasilkan per detik) dalam CPU (secara kasar) sebanding dengan frekuensi clock seperti P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). Tegangan yang diberikan tergantung pada kecepatan clock (meskipun tidak harus linier). Lihat: physics.stackexchange.com/questions/34766 Intinya, daya yang dihasilkan oleh CPU kira-kira linear ke kuadrat pada clockspeed di kisaran 1,6 GHz - 5 GHz. (Tidak mendukung f ^ 4).
dr jimbob
2

Seperti yang dinyatakan dalam beberapa jawaban lain, produsen CPU ingin menjaga kecepatan clock turun untuk mengontrol konsumsi daya dan pembuangan panas. Untuk melakukan lebih banyak pekerjaan pada kecepatan clock yang sama, beberapa strategi digunakan.

Tembolok besar pada chip memori dapat menyimpan lebih banyak data "dekat" dengan CPU, tersedia untuk diproses dengan penundaan minimal, sebagai lawan dari memori utama, yang jauh lebih lambat untuk mengirimkan data ke CPU.

Instruksi CPU yang berbeda membutuhkan jumlah siklus clock yang berbeda untuk diselesaikan. Dalam banyak kasus, Anda dapat menggunakan sirkuit sederhana untuk mengimplementasikan operasi selama beberapa siklus clock, atau sirkuit yang lebih kompleks untuk melakukannya dalam lebih sedikit.

Contoh paling dramatis dari hal ini dalam evolusi Intel adalah pada Pentium 4, yang merupakan outlier besar dalam kecepatan clock, tetapi tidak bekerja secara proporsional dengan baik. Instruksi pemindahan bit, yang pada chip sebelumnya dapat menggeser 32 bit dalam satu siklus tunggal, menggunakan sirkuit yang jauh lebih sederhana dalam Pentium 4, yang membutuhkan siklus tunggal untuk setiap perubahan bit. Harapannya adalah bahwa arsitektur Pentium 4 akan terukur dengan kecepatan clock yang jauh lebih tinggi karena kesederhanaannya, tetapi itu tidak berhasil, dan sirkuit shift yang cepat dan kompleks kembali pada Core dan arsitektur selanjutnya.

Russell Borogove
sumber
2

Dari IEEE:

Jadi mengapa tidak mendorong jam lebih cepat? Karena itu tidak lagi sepadan dengan biaya dalam hal konsumsi daya dan panas yang hilang. Intel menyebut pengorbanan kecepatan / daya sebagai "teorema dasar prosesor multi inti" —dan itulah alasan mengapa menggunakan dua atau lebih area pemrosesan, atau inti, pada satu chip.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

Azevedo
sumber