İşlemci üreticileri neden işlemcilerin saat hızını yükseltmeyi bıraktı? [kapalı]


63

Üreticilerin daha yüksek saat hızlarına odaklanmayı bıraktıklarını ve şimdi performansı iyileştirmek için başka şeyler üzerinde çalıştıklarını okudum.

İle

  • 3.0 GHz saat hızında Intel® Xeon® İşlemci E3110 ile eski bir Masaüstü makinesi
  • ve 2.1 GHz saat hızında AMD Opteron ™ İşlemci 6272 ile yeni bir sunucu

kullanarak basit bir şifreleme karşılaştırması yapıldığında (tek dişli)

 openssl aes256c

Masaüstü, sunucudan çok daha iyi bir performans gösterdi.

Öyleyse en son optimizasyonla bile, daha iyi saat hızına sahip işlemci neden daha iyi performans gösteriyor?


57
Masaüstü yongası çift çekirdeklidir; sunucu 16 çekirdekli bir işlemcidir. Tek iş parçacıklı bir kıyaslama kullanmak hiç uygun değil.
MSalters

Öğrenci - İşlemcilerin hızı, ısıyı azaltan, ihtiyaç duydukları voltaj miktarını artırarak artamaz. Güç tüketimine odaklanarak teorik olarak gelecekte işlemcinin hızını arttırabilirler.
Ramhound

1
Lütfen 'üreticilerin' gerçek durumlarını ve saat hızlarını (elma ve portakalları karşılaştırmadan) düşürdüğünü belirtin ya da soru başlığınızı 'artmamak' ile sınırlandırın.
Jan Doggen

8
AMD vs Intel saat hızları K6 / Pentium günlerinden bu yana adil bir karşılaştırma olmamıştır. AMD, çekirdek saatlerinin sırasıyla 1.8 veya 2.1 olabileceği durumlarda Athlon işlemcilerini 2500+ veya 3000+ olarak pazarladı, ancak genellikle gerçek 2.5 veya 3GHz yapan Intel yongalarıyla kıyaslanmıştı. Basitçe vardır yolu saat oranları üzerinde sadece bir karşılaştırma yapmak için şimdi mimarileri arasında birçok farklılık.
KeithS

Yanıtlar:


72

Üreticilerin saat hızını arttırmaya odaklanmamasının nedeni, işlemcileri artık bunun yaşanması için yeterince hızlı bir şekilde soğutamayacağımızdır. Saat hızı ne kadar yüksek olursa, o kadar fazla ısı üretilir ve şimdi onu soğutmaya giden enerji miktarı nedeniyle işlemci hızını artırmanın artık verimli olmadığı bir aşamaya geldik.

Diğer cevaplar, yüksek saat hızının tüm alanlarda daha iyi performans anlamına gelmediği konusundaki ayrıntılara giriyor.


1
+1 Bu duvara çarptığımda makinemi satın almış gibiyim, 8 yaşındaki P4 3.4 ghz, piyasanın büyük bir kısmına bakarken (OK dışı) saat hızı bakımından muhtemelen en hızlısı.
Karthik T

2
Güç tüketiminin de sorun olacağını unutmayın. 16 çekirdekli bir 3.0GHz'iniz varsa, bu en yaygın güç kaynaklarının sistemin geri kalanıyla birlikte zorlukla destekleyebileceği 200'den fazla watt tüketecektir.
Mixxiphoid

9
@Mixxiphoid Ayrıca bu 200+ W'yi bir şekilde işlemcinin kullanabileceği bir voltajda CPU'ya sokmanız gerekir. Bu başlı başına önemsiz bir görevdir.
CVn

1
Sadece bu değil, CPU Saatini arttırmak için boru hattını arttırmaları gerekir, ancak kodu her zaman doldurmanız, içeriği değiştirmeniz, hafızanızı atlamanız veya hafızayı boşaltmanız gerektiğinde, tüm satırları temizlemeniz gerekir. bu talimat için bir sonuç, bu yüzden boru hattını ve CPU frekansını azaltmak daha iyidir, bu nedenle her bir zaman çatallamanız, bağlamı değiştirmeniz, zıplamanız gerekir; boru hattını tekrar doldurmak için uzun süre beklemeniz gerekmez.
Lefsler

1
@demonofnight: "Her atlayışında (...) atlamana gerek yok" demek çok fazla olurdu. Koşulsuz doğrudan dallar kontrol tehlikesi oluşturmaz, bu nedenle koşullu dallardan sayılmazlar ~% 95-99'u çeşitli tekniklerle tahmin edilir (SPEC'e dayanan bazı kağıtlara dayanan veriler). Doğrudan şubeler, hedef henüz kayıt altına alınmamışsa ve yanlış tahmin edilmişse sorun yaratır. 'Kodu çatalla' ya da 'hafızayı sil' ile ne demek istediğinizi tam olarak bilmiyorum ancak bağlam anahtarları çok sık çalıştırılmamalıdır (kesintiler ve muhtemelen G / Ç).
Maciej Piechotka

37

İşlem hızından saat hızından çok daha fazlası var.

  • Farklı CPU'lar, boru hattı düzenlemesindeki farklı değişkenler ve her bir çekirdekte birden fazla bileşen ünitesine (toplayıcılar ve benzerleri) sahip olması nedeniyle aynı saat döngüsünde farklı miktarlar yapabilir. Testinizde durum böyle olmamakla birlikte, sık sık "yavaş" bir çipin, her bir kene başına daha fazlasını yapabilmesinden dolayı hızlı olanlardan daha fazlasını yapabileceğini (yalnızca saat hızı ile ölçülen) bulabilirsiniz.

  • Yaptığınız test CPU mimarisindeki farklılıklara karşı çok hassas olabilir: belirli bir mimari için optimize edilmiş olabilir, yalnızca Intel yongaları ve AMD olanlar arasında değil, farklı ailelerin Intel (ya da AMD) yongaları arasında farklı performans gösterdiğini fark edebilirsiniz. Tek bir iş parçacığı kullanılması da muhtemeldir, bu nedenle CPU'ların çoklu çekirdeğinden faydalanmıyordur.

  • Güç ve ısı yönetimi nedenlerinden dolayı düşük saat hızlarına bir hareket vardır: saat hızının yükseltilmesi güç kullanımı ve ısı çıkışı üzerinde doğrusal bir etkiye sahip değildir.

  • Yukarıdaki doğrusal olmayan ilişki nedeniyle, günümüzün gereklilikleri için çoklu işlem birimlerine sahip olmak, bir birimin hızını daha da yükseltmek için olduğundan çok daha etkilidir. Bu aynı zamanda akıllı hilelerin kullanımda olmadıklarında bireysel çekirdeklerin kapatılması ve talep tekrar arttıkça geri çevrilmesi gibi güçten tasarruf etmelerini sağlar. Tabii ki, birden fazla çekirdek aynı anda iki veya daha fazla örneği çalıştırıyor olsanız da, elbette tek iş parçacıklı bir algoritmaya yardımcı olmaz.


Peki saat hızı ve güç kullanımı arasındaki ilişki nedir?
user84207

$ P = CV ^ 2f $. Ayrıca okumak isteyebilirsiniz bu .
zakkak

19

Neden üreticilerin sadece iki işlemciyi karşılaştırarak saat hızını düşürdüğünü düşünüyorsunuz?

  1. 6272 3GHz bir Turbo Speed vardır. Düşük taban hızı, sadece ortalama vat miktarı düşürmek ve tüm çekirdeğin gerilmesi durumunda bir çalışan için kabul edilebilir bir TDP sağlamak içindir.
  2. AMD'nin masaüstündeki bir sonraki yüksek performanslı yongası olan FX-9590 , 5 GHz'e ulaşacak.

Ayrıca saat hızı, saat döngüsü başına performansla aynı değildir. Bir i7-3930K'dan bir 3.8 Ghz P4'e karşı bir 3.2 Ghz çekirdeğe sahip olabilirsiniz, ancak bu P4 çekirdeğinin daha hızlı olduğu anlamına gelmez.

Burada güç tüketimi hakkında söylenen her şey, TDP konularında daha fazla endişelenmeniz gereken 16 çekirdekli bir tasarım için de kusursuz ve geçerlidir.

Ayrıca, benchs yönteminiz sadece openssl'yi test etmek, gerçek dünya numaralarını vermek için biraz basittir. Belki herhangi bir kripto kıyaslama paketini denemelisin.


3
Sadece saat hızına bir benzetme eklemek için = performans yanlışlığı. Bir kişinin çok küçük adımlar attığını ancak çok hızlı (yüksek saat hızı), başka bir kişinin biraz daha yavaş bir hızda çok daha büyük adımlar attığını (düşük saat frekansı) düşünün. Büyük adımlar atan kişi çok daha hızlı hareket edebilir.
Martin Konecny

@ MartinKonecny: Harika görselleştirme!
Zach Latta

2
@MartinKonecny ​​Anladığım kadarıyla çoğu montajcı talimatları (ADD, MOV, IMUL, vb.) Tek bir döngüde gerçekleştirilir. Öyleyse bu yeni işlemcilerle, tek bir döngüde birden fazla talimat mı uygulanıyor?
nialsh

4
@nialsh CISC bilgisayarları için hiç de doğru değildir (aslında CISC'nin tanımlayıcı özelliklerinden biri komutların birden fazla döngü almasıdır ), eğer tüm talimatlar bir döngü aldıysa, en yavaş komut en hızlı şekilde çalışmak için aynı süreyi alır. talimat.
Scott Chamberlain,

x86 CPU'lar komut başına birden fazla saat döngüsü gerektiriyordu, ancak bu günlerde saat döngüsü başına birden fazla talimat çalıştırabilirler.
Oskar Skog,

13

Test durumunuz (aes-256 şifreleme) işlemciye özgü optimizasyonlara karşı çok hassastır.

Şifreleme / şifre çözme işlemlerini hızlandırmak için özel talimatlara sahip çeşitli CPU'lar vardır. Bu özel talimatlar yalnızca masaüstünüzde bulunmaz, AMD CPU'nun farklı özel talimatları da olabilir. Ayrıca openssl bu özel talimatları yalnızca Intel CPU için destekleyebilir. Durumda olup olmadığını kontrol ettin mi?

Hangi sistemin daha hızlı olduğunu bulmak için "uygun" bir benchmark takımı kullanmayı deneyin - veya daha iyisi, sadece tipik iş yükünüzü kullanın.


Bu özel talimatın çevirisi nerede gerçekleşir? Farklı komut setleri için farklı derleyiciler olup olmadığından emin değilim.
Shubham

Derleyiciler, farklı komut setlerini ve / veya CPU'ya özel talimatlarla yakından eşlenen özel "özgün fonksiyonları" hedefleme seçeneklerine sahiptir. Tek bir çalıştırıcının hangi CPU ailesinde çalıştığını kontrol etmesi ve buna göre farklı bir kod yolu seçmesi mümkündür.
Russell Borogove

10

Basit: AMD çipi 16 çekirdekli bir çip olduğundan çok daha hızlı. 115 Watt'ta, her bir çekirdeğin ~ 7 Watt ürettiği anlamına gelir. Her bir çekirdeğin 3 GHz'de çalışması durumunda, bu mümkün olmazdı. Bu 7 Wattlık rakamı elde etmek için AMD, saat frekansını düşürdü. Saat frekansını% 10 düşürmek güç tüketimini% 20 azaltır, bu da bir yongaya% 25 fazladan çekirdek koymanızı sağlar.


10

Diğerlerinin de söylediği gibi, geçmişte aynı göreli saat hızı artışları için gereken voltajı zorlarsak, artık CPU'ları etkili bir şekilde soğutamıyoruz. Yeni bir CPU satın alabileceğiniz ve "ani" bir kazanç gördüğünüzde bir zaman (P4 dönemi ve önceki) vardı, çünkü saat hızı önceki nesle kıyasla önemli ölçüde artmıştı. Şimdi bir çeşit termal duvara çarptık.

Her yeni modern nesil işlemci, saat hızında çok az artmaktadır, ancak bu aynı zamanda onları uygun şekilde soğutma yeteneğine de bağlıdır. Intel gibi yonga üreticileri sürekli olarak hem güçlerini daha verimli hale getirmek hem de aynı saatlerde daha az ısı üretmek için CPU'nun kalıp boyutunu küçültmeye odaklanıyorlar. Bir yandan not olarak, bu daralan kalıp boyutu, modern işlemcileri aşırı ısınmak yerine aşırı voltaja karşı daha eğilimli hale getirir. Bu, yonga üreticisi tarafından yapılan diğer iyileştirmeler olmadan, mevcut nesil CPU'ların tavan saati hızını da sınırlandırdığı anlamına gelir.

Yonga üreticileri tarafından yoğun şekilde odaklanan bir diğer alan ise chip üzerindeki çekirdek sayısını arttırıyor. Bu, hesaplama gücünde önemli artışlara neden olur, ancak yalnızca çoklu çekirdeklerden yararlanan yazılımı kullanırken. Buradaki işlemsel güç ve hız arasındaki farka dikkat edin. Basitçe söylemek gerekirse, hız bir bilgisayarın tek bir talimatı ne kadar hızlı gerçekleştirebildiğini belirtirken, hesaplama gücü bir bilgisayarın belirli bir süre içinde kaç tane hesaplama yapabileceğini belirtir. Günümüz işletim sistemleri ve birçok modern yazılım, birden çok çekirdekten faydalanıyor. Sorun, eşzamanlı / paralel programlamanın standart, doğrusal programlama paradigmasından daha zor olmasıdır. Bu, piyasadaki birçok programın bu yeni işlemcilerden tam anlamıyla yararlanabilmesi için gereken süreyi arttırdı, çünkü birçok geliştirici bu şekilde programlar yazmak için kullanılmıyordu. Bugün piyasada halen çok sayıda çekirdekten veya çoklu iş parçacığından faydalanmayan bazı programlar var (modern ya da eski). Aldığınız şifreleme programı böyle bir örnektir.

Yonga üreticileri tarafından odaklanan bu iki alan özünde birbirine bağlıdır. Bir çipin hem kalıp boyutunu hem de güç tüketimini azaltarak daha sonra bahsedilen çip üzerindeki çekirdek sayısını artırabilirler. Nihayetinde, bu da bir duvara çarparak başka, daha sert, paradigma kaymasına neden olacak.

Bu paradigma kaymasının sebebi, çip üretimi için bir temel malzeme olarak silikon sınırlarına yaklaşmamızdan kaynaklanıyor. Bu, Intel ve diğerlerinin bir süredir çözmek için çalıştığı bir şey. Intel, çalışmalarında silikonun bir alternatifi olduğunu belirtti ve 2017'den sonra bir süre görmeye başlayacağız. Bu yeni malzemeye ek olarak, Intel ayrıca "işlem gücünü etkili bir şekilde üçe katlayabilecek" 3D transistörlere de bakıyor. Her iki fikirden de bahseden bir makale: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm


2
  • Isı kayıpları H 4. derece frekansa eşittir f.

    H ~ f ^ 4

    Bu nedenle, küçük frekans artışı, yüksek ısı kayıplarına neden olur.

  • Daha uzak minyatürleştirme

    Daha yüksek frekans daha uzak kristal küçültülmesine yol açar. Şu anda nanometre ölçekli malzemelerle etkin bir şekilde çalışacak teknolojimiz yok ve nanometreler sınırdır.


2
-1 Dördüncü güç kısmı doğru değil. CPU'larda güç (saniye başına üretilen ısı) P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ) gibi saat frekansıyla doğrusal olarak orantılıdır . Verilen voltaj saat hızına bağlıdır (zorunlu olarak doğrusal olmasa da). Bakınız: physics.stackexchange.com/questions/34766 İşlemci tarafından üretilen güç, 1,6 GHz - 5 GHz aralığında saat hızında kabaca doğrusaldır. (F ^ 4'e destek olmaz).
dr jimbob

2

Diğer birkaç cevapta da belirtildiği gibi, CPU üreticileri güç tüketimini ve ısı dağılımını kontrol etmek için saat hızlarını düşük tutmak istiyor. Aynı saat hızında daha fazla iş yapmak için çeşitli stratejiler kullanılır.

Büyük çipli bellek önbellekleri, CPU'ya veri iletmek için çok daha yavaş olan ana belleğin aksine, en az gecikmeyle işlenebilecek CPU'lara "yakın" olarak daha fazla veri tutabilir.

Farklı CPU komutları tamamlamak için farklı saat döngüleri sayısı alır. Pek çok durumda, birkaç saat döngüsü boyunca bir işlem gerçekleştirmek için basit bir devre veya daha az sayıda bunu yapmak için daha karmaşık bir devre kullanabilirsiniz.

Intel'in evriminde bunun en çarpıcı örneği saat hızında büyük bir payanda olan ancak orantılı olarak iyi performans gösteremeyen Pentium 4'tür. Önceki yongalardaki tek bir döngüde 32 bit kaytabilecek bit değiştirme talimatları, Pentium 4'te her bit kaydırma için tek bir döngü gerektiren çok daha basit bir devre kullandı. Beklenti, Pentium 4 mimarisinin sadeliği nedeniyle çok daha yüksek saat hızlarına ölçeklendirilebilmesiydi, ancak bu işe yaramadı ve Çekirdek ve daha sonraki mimarilerde geri dönen hızlı, karmaşık kayma devresi.


2

IEEE’den:

Öyleyse neden saati daha hızlı zorlamıyorsun? Çünkü artık tüketilen enerji ve ısı dağıtımı açısından maliyete değmez. Intel, hız / güç değişimini “çok çekirdekli işlemcilerin temel teoremi” olarak nitelendiriyor - ve bu, tek bir yonga üzerinde iki veya daha fazla işleme alanı veya çekirdeği kullanmanın mantıklı olmasının nedeni.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.