Apple M1 çipinin bellek erişim yöntemi
(lemire.me)"M1'in tek çekirdeği belleği 28 aşamadan fazla paralel işliyor"
-
Bellek erişimi, hesaplama işlemlerinden daha maliyetlidir
-
Teorik olarak x'e erişirken yakındaki x+1 gibi verilerin ücretsiz okunabileceğini varsayan saf model makul görünebilir, ancak performansı öngörmek mümkün değildir
-
Bu performans tahmini ne zaman başarısız olur? CPU çekirdeği aynı anda belleğin birden fazla noktasına erişmeyi dener
-
Aynı anda 7 bellek erişimi yapılırsa, tek bir erişimden daha yavaş olacaktır; peki 7 kat daha mı yavaş olur?
-
Bir benchmark programıyla kaç eşzamanlı erişimin (
lane, bağımsız pointer takip rutini) mümkün olduğu test ediliyor
→ Eşzamanlı erişim performansının hangi noktada düşmeye başladığına bakarak kaç lane olduğu tahmin ediliyor
- Apple M1'in tek bir çekirdeğinde 28
lane'in üzerine çıkıldığında performansın düştüğü görüldüğü için sayının 28 olduğu tahmin ediliyor
→ Bu yüzden, yüksek düzeyde paralel işleme nedeniyle bu saf modelin maliyet tahmini başarısız oluyor
5 yorum
CPU konusu her açıldığında
https://ridibooks.com/books/443000037
bu kitap bana çok yardımcı oluyor. En başından itibaren takip etmek isteyenler için, bu kitabı okuyup sonra okursanız biraz daha rahat takip edilebilir gibi görünüyor.
Ridibooks tanıtımı yapıyormuşum gibi görünmesin diye (...) kitabın adı şu: Programcının Bilmediği Çok Çekirdekli CPU Hikâyeleri. Neden özellikle Ridibooks derseniz, basılı kitap tükenmiş durumda. E-kitapta ise kalan tek mağaza Ridibooks olduğu için mecburen bunu paylaştım.
Kim Min-jang'ın böyle bir kitap da yazmış olması ilginçmiş... Şimdiden 10 yıl olmuş, zaman gerçekten ne kadar çabuk geçiyor ^^;
Bu gerçekten zor bir nokta. Genelleştirmesi zor çünkü. Ama günümüzde CPU mimarilerinin ve paralel işlemenin arttığı bir ortamda oldukça etkili olabilir gibi görünüyor. Donanım mimarisini geliştirmeye yönelik epey deney de yapılıyor anlaşılan.
Bunu bir bilgisayar bilimi profesörü yazdığı için olsa gerek, tam olarak yalnızca kendisinin tespit ettiği gerçekleri yazmış..
İlgili yazının yorumlarıyla HN yorumlarını birlikte okuyunca https://news.ycombinator.com/item?id=25659615
Temelde, M1’in 28 veya daha fazla paralelleştirme ve L1 cache boyutu gibi etkenler sayesinde, birden çok yere rastgele erişim yapılsa bile mükemmel performans gösterdiği şeklinde anlamak doğru görünüyor.