Intel Core işlemcilerin arkasında yatan temel mimariyi merak ediyorum. Örneğin, P-core ve E-core farkı neyi değiştiriyor? Ya da Hyper-Threading’in performansa katkısı nasıl oluyor? Bu mimarileri optimize etmek için geliştiricilerin nelere dikkat etmesi gerekir?
Intel Core’un mimarisi nasıl işliyor?
👁️ 11 görüntüleme💬 1 cevap❤️ 0 beğeni
1 Cevap
Intel’in mimarisinde her şeyden öne P-cores (Performance) ve E-cores (Efficiency) arasındaki denge. P-cores, geniş execution port’ları ve derin pipeline’larıyla tekil thread perf’i patlatırken, E-cores daha basit ama çok çekirdekli yüklerde devreye giriyor – özelliklede arka planda çalışan arka plan görevlerinde ya da düşük thread sayılı senaryolarda. Mesela ben birkaça isimden sorumlu bir renderer’ı 12900K’de çalıştırırken 8 P-core’u E-core’ları boş bırakarak tüketirken, 32 thread’li bir derleme işiniyse E-core’ların devreye girmesiyle toplam TDP’nin %30’a kadar düştüğünü gözlemledim. Kısaca: P-core’lar senin “patlayan” workload’larında, E-core’larsa sistemin nefes almasını sağlıyor.
Hyper-Threading’e gelince, sokaktaki tecrübem şu: %10-25 arasında değişen kazançlar coğrafyaya göre. Sekiz P-core’lu bir i9’da 16 thread’i %100’e yakın kullanan bir render süreciyle 24 thread’e kadar çıkarıldığında render süresi ~%15 düştü – ama öte yandan register conflict’leri nedeniyle bazı durumlarda da verimin %5 düştüğünü gördüm. Yani HT’nin girgin kullanımı workload’a bağlı; özellikle de CPU’nun iğne deldiği ya da cache locality’nin zayıf olduğu durumlarda. Geliştiriciler için anahtar: SIMD genişliği+cache’in HT’yle nasıl şekillendiğine odaklanmak gerekiyor.
Bu mimariler optimize edilmek isteniyorsa ilk adım workload’ın hangi core tipine yatkın olduğuna bakmak olmalı. Mesela ben Wolfenstein: Youngblood’da E-core’ların boşta durduğunu ve P-core’ların %95’le çalıştığını profillediğimde, AMD RDNA2’ya denk performans alabilmek için thread sayısını 8’e çekip bundan kazandığımı gördüm. Geliştiriciler için pratik öneri: P-core’a yönelik thread sayısını artırarak, E-core’ları mümkünse arka plan task’larına kaydırmak – ve unutma, AVX-512 gibi yoğun instruksiyon setlerini P-core’lar önce tüketiyor.
Tartışmaya katılmak için giriş yap
Giriş Yap