Procesor w Twoim urządzeniu wykonuje miliony obliczeń na sekundę i odpowiada za działanie Twojego komputera. Z procesorem pracuje jednostka przetwarzania arytmetycznego (ALU), która odpowiada za zadania matematyczne i jest sterowana mikrokodem procesora.
Teraz ten mikrokod procesora nie jest statyczny i można go ulepszyć, a jednym z takich ulepszeń był zestaw instrukcji AVX-512 firmy Intel. Jednak Intel zamierza zabić AVX-512, na dobre usuwając jego funkcjonalność z procesorów. Ale dlaczego? Dlaczego Intel zabija AVX-512?
Jak działa ALU?
Przed zapoznaniem się z zestawem instrukcji AVX-512, konieczne jest zrozumienie, jak działa jednostka ALU.
Jak sama nazwa wskazuje, Jednostka Przetwarzania Arytmetycznego służy do wykonywania zadań matematycznych. Zadania te obejmują operacje, takie jak dodawanie, mnożenie i obliczenia zmiennoprzecinkowe. Aby wykonać te zadania, jednostka ALU wykorzystuje obwody cyfrowe specyficzne dla aplikacji, które są sterowane sygnałem zegara procesora.
Dlatego szybkość zegara procesora określa szybkość, z jaką instrukcje są przetwarzane w jednostce ALU. Tak więc, jeśli twój procesor działa z częstotliwością zegara 5 GHz, ALU może przetworzyć 5 miliardów instrukcji w ciągu jednej sekundy. Z tego powodu wydajność procesora poprawia się wraz ze wzrostem szybkości zegara.
To powiedziawszy, wraz ze wzrostem prędkości zegara procesora wzrasta ilość ciepła generowanego przez procesor. Z tego powodu zaawansowani użytkownicy używają ciekłego azotu podczas podkręcania swoich systemów. Niestety, ten wzrost temperatury przy wysokich częstotliwościach uniemożliwia producentom procesorów zwiększenie częstotliwości taktowania powyżej pewnego progu.
Jak więc procesor nowej generacji oferuje lepszą wydajność w porównaniu ze starszymi iteracjami? Cóż, producenci procesorów wykorzystują koncepcję równoległości, aby zwiększyć wydajność. Ten paralelizm można osiągnąć, stosując architekturę wielordzeniową, w której kilka różnych rdzeni przetwarzających jest używanych do poprawy mocy obliczeniowej procesora.
Innym sposobem na poprawę wydajności jest użycie zestawu instrukcji SIMD. Mówiąc prościej, instrukcja Single Instruction Multiple Data umożliwia jednostce ALU wykonanie tej samej instrukcji w różnych punktach danych. Ten rodzaj równoległości poprawia wydajność procesora, a AVX-512 to instrukcja SIMD używana do zwiększenia wydajności procesora podczas wykonywania określonych zadań.
Jak dane docierają do jednostki ALU?
Teraz, gdy mamy podstawową wiedzę na temat działania jednostki ALU, musimy zrozumieć, w jaki sposób dane docierają do jednostki ALU.
Aby dotrzeć do jednostki ALU, dane muszą przechodzić przez różne systemy pamięci masowej. Ta podróż danych jest oparta na hierarchii pamięci systemu komputerowego. Krótki przegląd tej hierarchii znajduje się poniżej:
- Pamięć drugorzędna: Pamięć pomocnicza w urządzeniu komputerowym składa się z trwałego urządzenia pamięci masowej. To urządzenie może przechowywać dane na stałe, ale nie jest tak szybkie jak procesor. Z tego powodu procesor nie może uzyskać dostępu do danych bezpośrednio z dodatkowego systemu pamięci masowej.
- Pamięć podstawowa: Podstawowy system pamięci masowej składa się z pamięci o dostępie swobodnym (RAM). Ten system pamięci masowej jest szybszy niż dodatkowy system pamięci masowej, ale nie może trwale przechowywać danych. Dlatego po otwarciu pliku w systemie przenosi się on z dysku twardego do pamięci RAM. To powiedziawszy, nawet pamięć RAM nie jest wystarczająco szybka dla procesora.
- Pamięć podręczna: Pamięć podręczna jest wbudowana w procesor i jest najszybszym systemem pamięci w komputerze. Ten system pamięci jest podzielony na trzy części, a mianowicie Pamięć podręczna L1, L2 i L3. Wszelkie dane, które muszą zostać przetworzone przez ALU, są przenoszone z dysku twardego do pamięci RAM, a następnie do pamięci podręcznej. To powiedziawszy, ALU nie może uzyskać dostępu do danych bezpośrednio z pamięci podręcznej.
- Rejestry procesora: Rejestr procesora w urządzeniu obliczeniowym ma bardzo mały rozmiar iw oparciu o architekturę komputera rejestry te mogą przechowywać 32 lub 64 bity danych. Gdy dane zostaną przeniesione do tych rejestrów, jednostka ALU może uzyskać do nich dostęp i wykonać bieżące zadanie.
Co to jest AVX-512 i jak to działa?
Zestaw instrukcji AVX 512 jest drugą iteracją AVX i trafił do procesorów Intela w 2013 roku. Skrót od Advanced Vector Extensions, zestaw instrukcji AVX został po raz pierwszy wprowadzony w procesorach Intel Xeon Architektura Phi (Knights Landing), a później trafiła na procesory serwerowe Intela w Skylake-X Procesory.
Ponadto zestaw instrukcji AVX-512 trafił do systemów konsumenckich z architekturą Cannon Lake, a później był obsługiwany przez architektury Ice Lake i Tiger Lake.
Głównym celem tego zestawu instrukcji było przyspieszenie zadań obejmujących kompresję danych, przetwarzanie obrazu i obliczenia kryptograficzne. Oferując dwukrotnie większą moc obliczeniową w porównaniu ze starszymi iteracjami, zestaw instrukcji AVX-512 oferuje znaczny wzrost wydajności.
Jak więc Intel podwoił wydajność swoich procesorów przy użyciu architektury AVX-512?
Cóż, jak wyjaśniono wcześniej, ALU może uzyskać dostęp tylko do danych znajdujących się w rejestrze CPU. Zestaw instrukcji Advanced Vector Extensions zwiększa rozmiar tych rejestrów.
Dzięki temu wzrostowi rozmiaru, ALU może przetwarzać wiele punktów danych w jednej instrukcji, zwiększając wydajność systemu.
Pod względem rozmiaru rejestru, zestaw instrukcji AVX-512 oferuje trzydzieści dwa 512-bitowe rejestry, co jest dwukrotnie większe w porównaniu ze starszym zestawem instrukcji AVX.
Dlaczego firma Intel kończy AVX-512?
Jak wyjaśniono wcześniej, zestaw instrukcji AVX-512 oferuje kilka zalet obliczeniowych. W rzeczywistości popularne biblioteki, takie jak TensorFlow, wykorzystują zestaw instrukcji, aby zapewnić szybsze obliczenia na procesorach obsługujących zestaw instrukcji.
Dlaczego więc Intel wyłącza AVX-512 na swoich najnowszych procesorach Alder Lake?
Cóż, procesory Alder Lake różnią się od starszych produkowanych przez Intela. Podczas gdy starsze systemy wykorzystywały rdzenie działające w tej samej architekturze, procesory Alder Lake używają dwóch różnych rdzeni. Te rdzenie w procesorach Alder Lake są znane jako Rdzenie P i E i są zasilane przez różne architektury.
Podczas gdy rdzenie P wykorzystują mikroarchitekturę Golden Cove, rdzenie E wykorzystują mikroarchitekturę Gracemont. Ta różnica w architekturach uniemożliwia prawidłowe działanie programu planującego, gdy określone instrukcje mogą działać w jednej architekturze, ale nie w drugiej.
W przypadku procesorów Alder Lake zestaw instrukcji AVX-512 jest jednym z takich przykładów, ponieważ rdzenie P mają sprzęt do przetwarzania instrukcji, ale rdzenie E nie.
Z tego powodu procesory Alder Lake nie obsługują zestawu instrukcji AVX-512.
To powiedziawszy, instrukcja AVX-512 może działać na niektórych procesorach Alder Lake, w których Intel fizycznie ich nie połączył. Aby zrobić to samo, użytkownicy muszą wyłączyć E-rdzeni podczas BIOS-u.
Czy AVX-512 jest potrzebny na chipsetach konsumenckich?
Zestaw instrukcji AVX-512 zwiększa rozmiar rejestru procesora, aby zwiększyć jego wydajność. Ten wzrost wydajności umożliwia procesorom szybsze przetwarzanie danych, umożliwiając użytkownikom uruchamianie algorytmów kompresji wideo/audio z większą szybkością.
To powiedziawszy, ten wzrost wydajności można zaobserwować tylko wtedy, gdy instrukcja zdefiniowana w programie jest zoptymalizowana do działania w zestawie instrukcji AVX-512.
Z tego powodu architektury zestawów instrukcji, takie jak AVX-512, są bardziej odpowiednie do obciążeń serwerowych, a chipsety klasy konsumenckiej mogą działać bez złożonych zestawów instrukcji, takich jak AVX-512.