Dostawcy ARM często twierdzą, że SMT wnosi ryzyko bezpieczeństwa, powoduje nieprzewidywalność wydajności dzięki wspólnym rywalizacji zasobów oraz napędza dodatkowe koszty i energię potrzebne do wdrożenia SMT. Co ciekawe, Arm robi Wspieraj wielokrotność w swoim Procesor klasy Neoverse E1 Rodzina do wbudowanych zastosowań, takich jak motoryzacyjny. Biorąc pod uwagę te niezgodności, ten blog zamierza zapewnić nieco większą przejrzystość, aby pomóc klientom w oceny, jakie atrybuty wydajności i wydajności naprawdę przyniosą im wartość dla ich krytycznych obciążeń.
Co to jest SMT?:
Jednoczesne multitreading (SMT) to technologia, która umożliwia jednoczesne wykonywanie rdzenia procesora. Od samego początku SMT został wdrożony w wielu nowoczesnych procesorach o różnej liczbie wątków. Najczęstszym podejściem jest dwustronne SMT, w którym dwa wątki wykonują jednocześnie na rdzeń procesora-wraz z każdym wątkiem działającym do zakończenia seryjnie-jak pokazano powyżej. Ten blog koncentruje się na dwustronnym SMT, wdrożonym w rdzeni procesorów AMD „Zen”.
Korzyści z korzystania z SMT:
SMT jest popularną funkcją procesora, ponieważ oferuje kilka korzyści wydajności i wydajności:
- Ulepszone wykorzystanie zasobów podstawowych: SMT utrzymuje rdzenie zajęte poprzez dynamiczne przeplatanie instrukcji z dwóch wątków w ramach wspólnych zasobów wykonawczych. Idealnie byłoby, gdyby rdzeń procesora nieustannie wykonywał instrukcje bez przerwy, ale w rzeczywistości podstawowe stragany często występują, na przykład podczas oczekiwania na dane z pamięci po panowaniu pamięci podręcznej lub podczas błędnego wprowadzania oddziału. SMT pomaga wypełnić te luki, umożliwiając drugi wątek korzystanie z wspólnych zasobów podstawowych, podczas gdy drugi wątek jest zatrzymany lub w inny sposób czeka na dane.
- Zwiększona przepustowość: Jednoczesne wykonywanie dwóch wątków umożliwia równolegle więcej instrukcji przechodzących przez rurociągi rdzeniowe, co prowadzi do zwiększonych instrukcji na cykl (IPC) i lepszej ogólnej wydajności.
- Efektywność energetyczna: SMT może poprawić wydajność bez znacznego zwiększenia ogólnego zużycia energii procesora. W przypadku wielu obciążeń przekłada się to na znaczne przyrosty efektywności energetycznej.
- Zdolność do zwiększenia wydajności lub pojemności bez ponoszenia dodatkowych fizycznych podstawowych kosztów licencji.
- Obsługa oprogramowania: SMT istnieje już od ponad 20 lat, w tym czasie ekosystem oprogramowania przyjął go i wspierał od gier po oprogramowanie do przedsiębiorstw i chmury. Wszystkie nowoczesne systemy operacyjne są budowane w celu obsługi SMT i robienia tego skutecznie, poprzez optymalne dystrybucję wątków na podstawie każdej organizacji podstawowej i domen NUMA. Twórcy oprogramowania mogą zoptymalizować swoje oprogramowanie i wydobyć dodatkową wydajność i efektywność energetyczną z SMT, ale nie ma wysiłku niezbędnego do jego obsługi. SMT działa po wyjęciu z pudełka i jest przezroczysty dla oprogramowania na wysokim poziomie.
- Elastyczność: SMT można włączyć/wyłączyć za pośrednictwem systemu systemu BIOS w celu uzyskania bardziej stałych zmian lub w czasie wykonywania w Linux, co pozwala administratorowi wybrać ustawienie, które najlepiej spełnia potrzeby związane z obciążeniem.
Wyzwania projektowe SMT:
Podczas gdy SMT dodaje znacznej wydajności do rdzenia, przedstawia także wyzwania związane z projektowaniem sprzętu dla krzemowych i dostawców systemu, aby rozwiązać:
- Rosnąca powierzchnia ataku: Praktycznie każda cecha dowolnego elementu dowolnego systemu musi być uważana za powierzchnię ataku, a dostawcy półprzewodników i systemu inwestują znaczne zasoby w całym cyklu życia produktu, aby zrozumieć potencjalne luki. Funkcje, które współpracują z wysoce uprzywilejowanymi zasobami systemowymi, uzyskują najwyższy poziom kontroli i testowania, a SMT jest jedną z takich funkcji, w których umożliwia udostępnianie zasobów podstawowych między dwoma wątkami, co czyni go kuszącym celem exploitów, takich jak ataki w kanale bocznym. W trakcie 20-letniego istnienia SMT dostawcy procesorów i systemów zidentyfikowali i złagodzili takie zagrożenia poprzez aktualizacje oprogramowania układowego i poprawki do podstawowych projektów, aby wyeliminować je w kolejnych pokoleniach. . AMD Infinity Guard Zawiera funkcje bezpieczeństwa, które pomagają w łagodzeniu ataków w kanale bocznym przez SMT, takie jak bezpieczna wirtualizacja wirtualizacja za pomocą zagnieżdżonych stronicowania (SEV-SNP). Ponadto AMD stale współpracuje ze społecznością oprogramowania w celu identyfikacji i rozwiązania wszelkich nowych potencjalnych luk w zabezpieczeniach w całym zestawie funkcji procesora.
- Uczciwe udostępnianie podstawowych zasobów dla obu wątków: Kolejnym wyzwaniem jest zapewnienie dobrej wydajności obu wątków, przy jednoczesnym zapewnieniu uczciwego udziału podstawowych zasobów. Architekci procesorów muszą zdecydować, które zasoby będą udostępniane i jak skutecznie zaplanować instrukcje z obu wątków podczas udostępniania zasobów rdzenia.
Oryginalny „Zen” został zaprojektowany od podstaw jako rdzeń gotowy do SMT, a kolejne pokolenia opierają się na tych samych zasadach:
- 1) Uruchamianie wątku otrzymuje wszystkie zasoby, gdy drugi wątek śpi.
- 2) Każdy wątek może w pełni wykorzystywać zasoby rurociągów, gdy drugi wątek jest zatrzymany.
- 3) Gdy SMT jest włączony, większość zasobów rdzenia jest konkurencyjnie udostępniana między dwoma wątkami.
Jak pokazano na poniższym schemacie, muszą istnieć kontrole, aby spełnić te zasady. Aby zapobiec głód i zapewnić uczciwość, kolejki na zamówienie są statycznie podzielone, podczas gdy części kolejek poza zamówieniem i przewidywanie oddziału są znaczane dla każdego wątku, a reszta jest konkurencyjna.
Jak „drogie” jest wdrożenie SMT?
Z perspektywy klienta końcowego nie ma materiału „kosztu” korzystania z SMT-jest to wbudowana funkcja, którą większość klientów X86 może swobodnie włączać lub wyłączać. Ale w bardzo praktycznych kategoriach ekonomii półprzewodnikowej wszystko, co zużywa obszar tranzystorowy na silikonie chip lub energię konsumencką podczas biegania, stanowi koszty. Pod względem kosztów wdrożenia SMT koszt ten jest niewielki, łatwo zrównoważyć zyski, które umożliwia. Weźmy na przykład, że wdrożenie jednoczesnego wielowy (SMT) zajmuje mniej niż 5% głównego obszaru w najnowszych rdzeniach AMD „Zen 4” i „Zen 5”.
Obejmuje to całą niezbędną logikę, aby umożliwić dwóm wątkowi udostępnienie zasobów rdzenia. W łatwej „Matematyce menedżera” SMT umożliwia maksymalnie 384 nici, jednocześnie spożywając mniej obszarem krzemu niż 10 rdzeni fizycznych – to jest silny ROI. Ponadto w przypadkach, w których oprogramowanie jest licencjonowane na podstawie liczby rdzeni fizycznych w systemie, możliwość włączenia dodatkowej wydajności i pojemności przez dostępność rdzeni/wątków wirtualnych Znaczne oszczędności kosztów! Teraz rozwiąż ten nieznośny mit zużycia energii.
SMT umożliwia wydajność i wydajność
Procesory AMD EPYC ustaliły setki wydajności i wydajności rekordy świata. Należą do nich obciążenia, które znacząco korzystają z wieloczynnego i SMT oraz liczba, która nie, takich jak szereg aplikacji HPC i technicznych aplikacji obliczeniowych. Załóżmy, że chcemy osobnej szerokiej oceny, gdzie SMT przynosi wartość i jak AMD dostarcza towary. Niezależny dom testowy Phoronix wykonał być może najbardziej kompletną i spójną analizę wartości SMT. Najnowsze wyniki testów dla procesorów AMD EPYC 9005 opartych na „Zen 5” wykazały duże wzrosty wydajności na szerokim zestawie testowanych obciążeń, w tym baz danych, kryptografii i obciążeń kompresji – jak pokazano poniżej.
Te wyniki nie są zaskakujące, biorąc pod uwagę, że wcześniej Analiza Phoronix SMT przy użyciu platform AMD EPYC 9754 z poprzedniej generacji zidentyfikowało podobne korzyści wydajności i wydajności energetycznej. Dla osób zainteresowanych obciążeniami poza domenami podsumowanymi na tym wykresie, zwróć uwagę na to ta strona Zapewni dość kompleksową szczegółową analizę 170 różnorodnych testów. Przekonasz się, że chociaż kilka obciążeń w zakresie obliczeń technicznych i wysokowydajnych wydaje się preferować wyłączne korzystanie z wszystkich fizycznych zasobów podstawowych, wiele obciążeń zyskuje przyrostową wydajność dzięki włączonym SMT.
Co ważne, gdy Phoronix przetestował procesory EPYC 4. i 5. generacji na szerokiej gamie obciążeń, mierzył również minimalną różnicę w zużyciu energii, gdy SMT jest włączony w porównaniu z wyłączonym.
„W przypadku obciążeń, które mogą skorzystać z SMT, nadal jest to wyraźna wygrana Procesory AMD EPYC 9005. Patrząc na całe zużycie energii procesora w 170+ testach porównawczych, które zajmują ~ 13 godzin, dane tutaj nie wykazują ogólnej różnicy zużycia energii w zakresie włączenia SMT.
Znaczące zyski z wydajności SMT (często w zakresie 30-50%) w połączeniu z praktycznie brakiem lub minimalnym zmianą zużycia energii oznacza, że efektywność energetyczna zyskuje wzrost-wydajność na wat! SMT jest głównym czynnikiem przyczyniającym się do efektywności energetycznej nowoczesnych procesorów X86 Superscalar, takich jak AMD EPYC, wraz z zarządzaniem energią i dynamiczną skalowaniem częstotliwości. Poniższe komentarze podsumowują korzyści: „SMT włączono w AMD EPYC 9575F Średnio doprowadziło do wzrostu zużycia energii procesora o 2 wat.
Dlaczego widzimy wydajność? Gdy rdzeń jest w normalnym stanie operacyjnym (C0) wykonywanie instrukcji, utknięcie wątku podczas oczekiwania na dane nie przenosi go do stanu niższego zasilania, aby zaoszczędzić zasilanie, ale posiadanie drugiego wątku do wypełnienia luk może mieć duży wpływ na wydajność. Zwiększona przepustowość instrukcji może nieznacznie zwiększyć zużycie energii, jednocześnie wydajność energetyczna poprawia znacznie więcej.
AMD EPYC i SMT: Wciąż zapewniają wielką wartość po tylu latach
Jednoczesne multitreading został opracowany w czasie, gdy podstawowe zasoby były dość cenne – jeden, dwa lub 4 rdzenie na gniazdo – i konieczne było, aby klienci mogli wycisnąć z nich jak najwięcej przetwarzania. W czasach, w których procesory AMD EPYC oferują do 192 fizycznie wysokowydajne rdzenie Zen 5 na gniazdo, może wydawać się naturalne pytanie, czy zasoby te są nadal tak cenne i czy SMT nadal ma wartość. Jeśli poprosisz dowolnego menedżera IT, który walczy o zrównoważenie niesamowitego wzrostu popytu na zasoby obliczeniowe i budżety, prawdopodobnie usłyszysz, jak „tak”.
Chociaż rdzenie fizyczne są teraz dość obfite, są one również dość cenne, ponieważ często jest wiele do osiągnięcia i znaczące inne koszty rozwiązań IT – koszty licencji na oprogramowanie – często powiązane z liczbą rdzeni fizycznych na serwerze hosta! Typowy sklep IT musi jak najlepiej wykorzystać każdy zasób – i mieć elastyczność w zakresie przyrostowej pojemności obliczeniowej i wydajności z jak najwięcej zasobów sprzętowych, jak to możliwe, może zapewnić potężny ROI. SMT jest przekonującą opcją: umożliwiając stosunkowo „bezpłatny” wzrost wydajności, w którym może dodać wartość, ale także łatwo wyłączyć tam, gdzie nie.
Odniesienia:
Badanie wydajności Zen 5 SMT z AMD EPYC 9755 „Turyn” CPU – Phoronix
SMT pozostaje bardzo korzystny dla recenzji wydajności EPYC 5. generacji – Phoronix
SMT dowodzi wartościowej opcji 128 -core EPYC AMD „Bergamo” przegląd procesorów – Phoronix