11 lipca 2017 r. firma Intel oficjalnie wprowadziła na rynek nową rodzinę procesorów serwerowych 14 nm Intel Xeon Scalable Processor (Skylake-SP). Ta rodzina zastępuje poprzednią generację procesorów 14 nm Intel Xeon E7 v4 i 14 nm Intel Xeon E5 v4 (Broadwell-EX i Broadwell-EP).
Marka i ceny
Intel nazywa tę całą rodzinę nową „platformą konwergentną”, która jest podzielona na cztery odrębne linie produktów o nazwach Intel Xeon Platinum, Intel Xeon Gold, Intel Xeon Silver i Intel Xeon Bronze. W przypadku użycia SQL Server tylko linie Platinum i Gold mają sens, jeśli zależy Ci na uzyskaniu najlepszej wydajności dla każdej licencji na rdzeń procesora SQL Server.
W przeciwieństwie do poprzedniej generacji procesorów Xeon, nowe procesory Xeon Platinum mają do 28 fizycznych rdzeni i mogą być używane w serwerach z dowolną liczbą gniazd, niezależnie od tego, czy jest to maszyna dwu-, cztero-, czy ośmioprocesorowa. Procesory Xeon Gold mają do 22 rdzeni fizycznych i mogą być używane w maszynach dwu- lub czteroprocesorowych.
Firma Intel stosuje nową konwencję oznaczania marki i numerowania produktów, która została szczegółowo opisana na rysunku 1. W przeciwieństwie do nowych procesorów AMD EPYC, firma Intel prowadzi w tym asortymencie wiele działań związanych z marketingiem i segmentacją produktów w oparciu o rentowność, co utrudnia zrozumienie i utrudnia trudniej jest wybrać odpowiedni procesor do swojego obciążenia.
Rysunek 1:Konwencja numerowania produktów w zakresie skalowalnych procesorów Intel Xeon
Jednym z najlepszych przykładów tej szkodliwej segmentacji produktów są procesory SKU „M” (modele procesorów z sufiksem M), które obsługują 1,5 TB pamięci na gniazdo, w przeciwieństwie do 768 GB pamięci na gniazdo w przypadku modeli SKU innych niż „M”. Intel pobiera około 3000,00 USD premii (na procesor) za tę dodatkową obsługę pamięci, co jest dość dużym wzrostem, szczególnie w przypadku tańszych procesorów. Ośmiordzeniowy procesor Intel Xeon Gold 6134 kosztuje 2214,00 USD za sztukę, a ośmiordzeniowy procesor Intel Xeon Gold 6134M kosztuje 5217,00 USD za sztukę. Wszystkie pozostałe specyfikacje (i wydajność) są identyczne dla tych dwóch procesorów. W przypadku użycia SQL Server może być sensowne opłacenie tej premii, aby uzyskać dwukrotnie większą pojemność pamięci na gniazdo (szczególnie biorąc pod uwagę koszty licencji SQL Server i ogólne koszty pamięci), ale nie podoba mi się fakt, że Intel robi pewną cenę żłobienie tutaj.
Zmiany architektury
Skylake-SP ma inną architekturę pamięci podręcznej, która zmienia się z modelu współdzielonego rozproszonego używanego w Broadwell-EP/EX na model prywatny-lokalny używany w Skylake-SP. Jak ta zmiana wpłynie na obciążenia SQL Server, dopiero się okaże.
W Broadwell-EP/EX każdy rdzeń fizyczny miał 256 KB prywatnej pamięci podręcznej L2, podczas gdy wszystkie rdzenie współdzieliły większą pamięć podręczną L3, która mogła mieć nawet 60 MB (zwykle 2,5 MB na rdzeń). Wszystkie wiersze w pamięci podręcznej L2 dla każdego rdzenia były również obecne w dołączanej, współdzielonej pamięci podręcznej L3.
W Skylake-SP każdy rdzeń fizyczny ma 1 MB prywatnej pamięci podręcznej L2, podczas gdy wszystkie rdzenie współdzielą większą pamięć podręczną L3, która może mieć nawet 38,5 MB (zwykle 1,375 MB na rdzeń). Wszystkie wiersze w pamięci podręcznej L2 dla każdego rdzenia nie mogą być obecny w nieobejmującej, współdzielonej pamięci podręcznej L3.
Większa pamięć podręczna L2 zwiększa współczynnik trafień z pamięci podręcznej L2, co skutkuje mniejszym efektywnym opóźnieniem pamięci i mniejszym zapotrzebowaniem na pamięć podręczną L3 i połączenie typu mesh. Pamięć podręczna L2 jest zwykle około 4 razy szybsza niż pamięć podręczna L3 w Skylake-SP. Rysunek 2 przedstawia szczegóły nowej architektury pamięci podręcznej w Skylake-SP.
Rysunek 2:Porównanie architektur pamięci podręcznej
Kolejnym nowym ulepszeniem architektury jest Intel Ultra Path Interconnect (UPI), który zastępuje poprzednią generację Intel Quick Path Interconnect (QPI). Intel UPI to spójne połączenie dla systemów zawierających wiele procesorów w jednej współdzielonej przestrzeni adresowej. Procesory Intel Xeon obsługujące Intel UPI zapewniają dwa lub trzy łącza Intel UPI do łączenia się z innymi procesorami Intel Xeon przy użyciu szybkiej ścieżki o niskim opóźnieniu do innych gniazd procesora. Intel UPI ma maksymalną szybkość transmisji danych 10,4 GT/s (giga-transferów/sekundę) w porównaniu z maksymalną szybkością transmisji danych wynoszącą 9,6 GT/s dla Intel QPI używanej w najszybszych procesorach Broadwell-EP/EX.
Kolejną ważną nową funkcją w Skylake-SP jest włączenie obsługi AVX-512, która umożliwia obliczanie wektorów o szerokości 512 bitów, co znacznie poprawia szybkość w porównaniu ze starszymi zestawami instrukcji wektorowych, takimi jak AVX2, AVX i SSE. Te zestawy instrukcji są zwykle używane do takich rzeczy, jak kompresja i szyfrowanie.
AVX-512 ma również znacznie lepszą wydajność energetyczną pod względem GFLOPS/Watt i GFLOPS/GHz w porównaniu ze starszymi zestawami instrukcji, dzięki czemu Intel nie musi zmniejszać szybkości zegara wszystkich rdzeni, jeśli kod AVX działa na którymkolwiek z rdzenie, a także mogą mieć każdy rdzeń działający z inną prędkością w zależności od rodzaju kodu AVX działającego na tym rdzeniu.
Obsługa sprzętu SQL Server
W SQL Server 2016 firma Microsoft wprowadziła obsługę instrukcji SSE i AVX obsługiwanych przez procesor w celu poprawy wydajności przestawiania wierszy w indeksach magazynu kolumn i wstawiania zbiorczego. Dodali także obsługę sprzętową szyfrowania AES-NI. O tym, jak ta nowa obsługa oprogramowania dla konkretnego sprzętu jest mapowana na różne generacje procesorów, pisałem tutaj. Mamy nadzieję, że Microsoft rozszerzy ten typ kodu, aby obejmował obsługę AVX-512 w SQL Server 2017.
Kolejną nową funkcją w Skylake-SP jest obsługa Intel Speed Shift, która pozwala rdzeniom procesorów na znacznie efektywniejszą zmianę ich stanów p i c (co pozwala rdzeniom procesora znacznie szybciej „przyśpieszać”). Ta funkcja opiera się na rozwiązaniu Hardware Power Management (HWPM) wprowadzonym w Broadwell z nowym trybem, który umożliwia współpracę HWPM i systemu operacyjnego, zwanym trybem natywnym. Tryb natywny jest obsługiwany w jądrze Linux 4.10 i Windows Server 2016.
Według niektórych wczesnych testów, które widziałem, te procesory Skylake-SP mają około 10% poprawę IPC w porównaniu z rdzeniami Broadwell-EP działającymi z tą samą częstotliwością zegara. Oprogramowanie wykorzystujące określone nowe funkcje (takie jak AVX-512 i FMA) może znacznie zwiększyć wydajność.
Jeśli chodzi o obciążenia SQL Server 2017 OLTP, 27 czerwca 2017 r. firma Lenovo przedstawiła wynik testu TPC-E dla dwuprocesorowego serwera Lenovo ThinkSystem SR650 z dwoma 28-rdzeniowymi procesorami Intel Xeon Platinum 8180. Wynik surowy dla tego systemu wyniósł 6598,36. Dzieląc ten wynik przez 56 fizycznych rdzeni, otrzymujemy wynik/rdzeń równy 117,83 (co jest miarą jednowątkowej wydajności procesora).
Dla porównania, Lenovo przedstawiło wynik testu TPC-E dla dwuprocesorowego serwera Lenovo System x3650 M5 z dwoma 22-rdzeniowymi procesorami Intel Xeon E5-2699 v4. Surowy wynik dla tego systemu wyniósł 4938,14. Dzieląc ten wynik przez 44 rdzenie fizyczne, otrzymujemy wynik/rdzeń równy 112,23. System Skylake-SP jest o około 5% szybszy w przypadku wydajności jednowątkowej, ale należy pamiętać, że dotyczy to wstępnej wersji SQL Server 2017.
Jeśli chcesz uzyskać jeszcze bardziej szczegółowy widok konkretnych zmian i ulepszeń w rodzinie procesorów Intel Xeon Scalable w porównaniu z poprzednią generacją procesorów Xeon, możesz przeczytać o tym tutaj.