SMT'nin avantajları ve dezavantajları var, onu nasıl kontrol etmeliyiz?
Yazar | Matt Fleming
Çevirmen | Crescent Moon, Baş Editör | Tu Min
Aşağıdaki çeviridir:
Bu makaleyi hangi bilgisayarda okursanız okuyun, işletim sistemi tarafından görüntülenen CPU gerçek fiziksel işlemci olmayabilir. Bunun nedeni, çoğu modern işlemcinin, görevleri paralel olarak gerçekleştirerek performansı artırmak için eşzamanlı çoklu okuma (SMT) kullanmasıdır.
Intel'in SMT uygulaması, ilk olarak 2002 yılında Pentium 4 ve Zhiqiang CPU'ların saat frekansını artırmadan performansını artırmak için piyasaya sürülen hyperthreading olarak bilinir. Intel, 2008'de Nehalem mikro mimarisini piyasaya sürene kadar, Core ürün serisi dışındaki çoğu Intel CPU, Hyper-Threading Teknolojisini (HTT) destekledi. Son zamanlarda Intel, Core ürün serisinin artık hyperthreading kullanmayacağını duyurdu.
AMD aynı zamanda SMT ile de ilgilenmektedir Aşağıdaki şekil SMT'nin Zen mikro mimarisinde nasıl çalıştığını göstermektedir.
Yukarıdaki şekilde gösterildiği gibi, bazı bileşenler paylaşılırken bazı bileşenler her bir iş parçacığına adanmıştır. Hangi bölümler paylaşılıyor? Bu, uygulamaya bağlıdır ve farklı mikro mimariler aynı değildir. Ancak genellikle yürütme biriminin bir kısmı paylaşılır.
X86 mimarisi için, SMT iş parçacıkları genellikle çiftler halinde görünür ve bu iş parçacıklarının paylaşılan işlemci donanımına erişirken birbirleriyle rekabet etmesi gerekir. SMT, donanım kullanımındaki iş parçacıkları arasındaki doğal boşluktan etkili bir şekilde yararlanır. Veya Pekka Enberg'in dediği gibi:
SMT kullanmanın artıları ve eksileri vardır.
SMT'nin Faydaları
İşlemci kaynaklarını tamamen kopyalayarak karşılaştırıldığında, SMT uygulaması yonga boyutu ve güç tüketimi açısından çok daha verimlidir.
Intel, SMT'nin çok iş parçacıklı iş yüklerini işlemek için kullanılması durumunda,% 30'luk bir performans artışı karşılığında yonga boyutunun yalnızca% 5'ten daha az artırılması gerektiğini iddia ediyor.
Gerçek etki büyük ölçüde iş yüküne bağlıdır ve performansla ilgili tüm konularda olduğu gibi, verimlilik kazanımlarını belirlemenin tek yolu bunu kendiniz test etmektir.
SMT'yi desteklememin bir başka nedeni de modern x86 CPU'ların hepsinin SMT kullanmasıdır. Bu nedenle, performansı artırmanın en kolay yolu budur. BIOS yapılandırmasında SMT'nin açık olduğundan emin olmanız yeterlidir.
SMT'nin dezavantajları
SMT'nin en büyük avantajlarından ve en büyük dezavantajlarından biri, işletim sisteminin SMT'nin etkin olup olmadığını net bir şekilde göstermemesidir. Çoğu durumda, bu iyidir çünkü gereksiz müdahaledir. Ancak, kapasite planlama ve sistemi gerçek zamanlı yüklerle başa çıkacak şekilde ayarlama gibi konularda SMT'nin etkinleştirilip etkinleştirilmediğini bilmeleri gerekir.
Örneğin, sanal makinelere fiziksel CPU atarken, SMT'nin etkin olup olmadığını bilmiyorsanız, CPU sayısını ikiye katlamanın performansı ikiye katlayacağını düşünmek kolaydır, ancak çoğu durumda bu umut düşecektir çünkü bu CPU'lar Aslında SMT, işlemci kaynakları için birbirleriyle rekabet edecekler.
Modern x86 işlemcilerin birçok çekirdeği vardır (en son AMD Rome CPU'larda 64 En üst düzey Intel Core i9'un 18 çekirdeği vardır), SMT'yi etkinleştirmeniz gerekmese bile çok fazla performans elde edebilirsiniz.
Ancak SMT'ye elverişli olmayan en büyük ve en önemli neden, L1TF ve MDS dahil olmak üzere son yıllarda ortaya çıkan sonsuz güvenlik açıklarıdır.
Ağustos 2018'de OpenBSD, SMT'nin tamamen devre dışı bırakılmasını tavsiye etti ve SMT'nin daha fazla güvenlik açığına sahip olacağına inandığı için böyle bir tavsiyede bulunan ilk işletim sistemiydi. Gerçekler, bu yaklaşımın doğru olduğunu kanıtladı.
Geçen ay Açık Kaynak Zirvesi'nde yaptığı konuşmada Greg Kroah Hartman, OpenBSD'nin ileriye dönük yaklaşımını övdü ve OpenBSD projesine "saygı duyduğunu", çünkü performansla ilgili zor kararlar aldıklarını ve Güvenlik'te Güvenlik seçilir.
SMT nasıl devre dışı bırakılır
Birçok kullanıcı SMT'yi tamamen devre dışı bırakmayı düşünüyor. Devre dışı bırakılıp bırakılmayacağına gelince, kişisel koşullarınıza bağlıdır.
Ancak devre dışı bırakmak istiyorsanız, SMT'yi devre dışı bırakmanın performans üzerindeki etkisini anlamak için önce performans testi yapmalısınız. Diğer bir deyişle, SMT'yi etkinleştirmek veya devre dışı bırakmak için uygun bir yola ihtiyacınız var.
Genellikle BIOS ayarlarını değiştirmeniz gerekir, ancak BIOS'a erişemiyorsanız ve Linux kullanıyorsanız, SMT'yi devre dışı bırakmak için / sys / devices / system / cpu / smt / control dosyasında aşağıda gösterildiği gibi "off" seçeneğini belirleyebilirsiniz:
$ nproc 4 $ echo kapalı > / sys / devices / system / cpu / smt / control $ nproc 2SMT'yi yeniden etkinleştirmek isterseniz, aynı dosyada yalnızca "açık" seçeneğini belirlemeniz gerekir.
Öyleyse, SMT'yi tutmalı mıyız? Gelecekte yonga düzeyinde güvenlik açıklarının ortaya çıkmayacağını garanti edemeyiz, bu nedenle güvenlik sorunlarından endişeleniyorsanız, en güvenilir yol SMT'yi devre dışı bırakmaktır. Performans kaybı konusunda endişeleniyorsanız, performans testleri yapmanız gerekir.
Orijinal: https: // www .codeblueprint.co.uk / 2019/11/05 / does-smt-make-sense.html
Bu makale bir CSDN çevirisidir, lütfen yeniden basımın kaynağını belirtin.