Czym są i za co odpowiadają instrukcje AVX-512?
Zanim przejdziemy do meritum, najpierw tradycyjnie wyjaśnijmy sobie, czym dokładnie są instrukcje AVX-512. Nie jest to wcale coś nowego, a dzieło z późnych lat 10. obecnego wieku, które ma swoje korzenie w projekcie Intel Larrabee. Ten miał na celu stworzenie procesora graficznego, ale upadł w 2009 roku i finalnie dał życie Xeon Phi, który został już wycofany z rynku. Za swoich czasów konkurował na rynku z procesorami Tesla od NVIDIA, czy Radeon Instinct od AMD.
Czytaj też: Windows Terminal stanie się domyślną konsolą Windows 11. Przypominamy komendy, które warto znać
Intel mógł powalczyć z tymi dwoma gigantami m.in. przez ciekawy element mikroarchitektury Larrabee, sięgającej 2006 roku. To tam Intel wprowadził specjalny zestaw instrukcji AVX z 512-bitowym rejestrem, dzięki któremu te mogły realizować maksymalnie szesnaście 32-bitowych obliczeń całkowitych. Oczywiście takie liczby nie wzięły się znikąd i mają swoją genezę w tym, że typowy stosunek operacji na teksel dla procesora graficznego wynosi zwykle 16:1.
Można powiedzieć, że AVX-512, to 512-bitowe rozszerzenia 256-bitowych instrukcji SIMD Advanced Vector Extensions dla architektury x86 (ISA). Trzeba też wiedzieć, że nie ma tylko “jednych instrukcji AVX-512”. Ich rozszerzeń jest znacznie więcej i każda z nich ma coś specjalnego do zaoferowania.
Więcej bardziej rzeczowych i konkretnych informacji na temat AVX-512 udostępnił sam Intel w swoim opracowaniu:
Dzięki możliwości przeprowadzania 512-bitowych działań wektorowych technologia Intel AVX-512 jest w stanie obsłużyć nawet najbardziej wymagające zadania obliczeniowe.Aplikacje obsługują nawet 32 operacje obliczeń zmiennoprzecinkowych o podwójnej precyzji i 64 operacje obliczeń zmiennoprzecinkowych o pojedynczej precyzji na cykl zegara w ramach wektorów 512-bitowych oraz osiem 64-bitowych i szesnaście 32-bitowych obliczeń całkowitych, przy maksymalnie dwóch 512-bitowych jednostkach Fused-Multiply-Add (FMA), co oznacza dwukrotne zwiększenie pojemności rejestrów danych, liczby rejestrów i jednostek FMA w porównaniu z technologią Intel Advanced Vector Extensions 2 (Intel AVX2).
Czytaj też: Wydajność zużytego SSD. Wykończyliśmy dysk, żebyście Wy nie musieli
Jednak na długo przed porzuceniem Xeon Phi (miało to miejsce w 2020 roku) Intel postanowił wprowadzić instrukcje AVX-512 do procesorów przeznaczonych do zastosowań profesjonalnych. Mowa zarówno o rynku HEDT (patrz Skylake-X), jak i serwerowym (Xeon), ale ich obsługa nie jest problemem również dla zwykłych procesorów. Pokazuje to świetnie przykład Core 12. generacji, które choć AVX-512 wspierają (posiadają fizyczne elementy krzemowe z nimi związane), to Intel chce wyciąć je siłą po to, aby sztucznie napędzać sprzedaż droższych sprzętów.
Samą rolę AVX-512 świetnie tłumaczy przykład firmy AMD. Ta firma tego typu instrukcji nie wspiera w swoich produktach, bo w zastosowaniach profesjonalnych skupia się na wykorzystaniu zarówno procesora centralnego, jak i graficznego (CPU i GPU) do obliczeń, którym wyjdzie to na dobre. Nie bez powodu instrukcje AVX-512 mają swoje korzenie w GPU i dlatego tak wątpliwe jest, czy przetrwają przez najbliższą dekadę, jako że Intel planuje wprowadzenie na rynek solidnych procesorów graficznych. Czyżby to znaczyło, że jednak twórca Linuxa przewidział przyszłość?
Mam nadzieję, że AVX-512 umrze bolesną śmiercią, a Intel zacznie rozwiązywać prawdziwe problemy, zamiast próbować tworzyć magiczne instrukcje, by następnie tworzyć benchmarki, w których dobrze wypada. Wolałbym, aby “budżet tranzystorów” został wykorzystany do innych rzeczy, które są znacznie bardziej odpowiednie. Nawet jeżeli mają to być obliczenia zmiennoprzecinkowe lub większa liczba rdzeni (z dobrą wydajnością pojedynczego rdzenia, ale bez śmieci typu AVX-512), jak w przypadku AMD.– napisał w przeszłości Linux Torvalds, komentując instrukcje Intel AVX-512.
Karty graficzne Intela mogą raz na zawsze zrzucić odpowiedzialność z barków tych kontrowersyjnych instrukcji, bo te mają zarówno zalety, jak i wady, które jednak w architekturze Alder Lake najwyraźniej zostały wyeliminowane. Gracze i nawet profesjonalni twórcy nie wycisną z AVX-512 za wiele. Te instrukcje są bowiem przeznaczone do obliczeń związanych ze sztuczną inteligencją i zastosowań związanych z HPC (High Performance Computing).
Intel Advanced Vector Extensions 512 (Intel AVX-512) to zestaw nowych instrukcji, które zwiększają wydajność obciążeń roboczych i zastosowań, takich jak symulacje naukowe, analizy finansowe, sztuczna inteligencja/głębokie uczenie, modelowanie i analizy 3D, przetwarzanie obrazu i audio-wideo, kryptografia i kompresja danych– czytamy w opracowaniu Intela.
To więc jasno sugeruje, że nie powinniśmy aż tak przejmować się tym, co robi Intel… choć firma zdecydowanie dba bardziej o swoją kieszeń, niż klientów. Dlaczego?
Zamieszanie z AVX-512 wokół Alder Lake
Z procesorami Intel Core 12. generacji było ciekawie w dniu premiery. Wcześniej Intel jasno wskazywał, że nie mamy co marzyć o wsparciu zestawu AVX-512 na tych procesorach przeznaczonych do segmentu konsumenckiego, aż tu nagle okazało się, że jednak skorzystać z nich możemy. Wystarczy tylko aktywować odpowiednią opcję w BIOSie i dezaktywować rdzenie Efficient (na bazie architektury Gracemont), które rzeczywiście tych instrukcji nie wspierają. Nie to co bazujące na architekturze Golden Cove rdzenie Performance, które mogą zrobić z AVX-512 użytek.
Zapewne Intel czekał z taką decyzją aż do premiery procesorów, które w większości nie będą posiadały w sobie dwóch rodzajów rdzeni (układy spoza linii -K), bo z nimi użytkownik nie straci kilku dodatkowych wątków (funkcjonalnych rdzeni E) aktywując instrukcje AVX-512. Te z kolei (o ile są wykorzystywane w danych obciążeniach) znacząco poprawiają wydajność w porównaniu do standardowo obsługiwanego zestawu instrukcji AVX2. Swoją drogą, wokół nich jest zresztą kolejny cyrk, który może odbić się Intelowi czkawką, bo nawet w odblokowanych procesorach -K, mają one swoje limity.
Zacznijmy jednak od tego, że świat niedawno obiegła informacja (via Igor’s Lab), wedle której Intel rozkazał producentom płyt głównych opracowanie BIOSu, dezaktywującego wsparcie dla AVX-512. Rozumiemy, że dotknie to zarówno płyty z chipsetem Z690, jak i nadchodzące z B660 oraz H610. Obejść można to więc dosyć łatwo w przypadku Z690, pozostając na wcześniejszych wersjach BIOSu i żegnając się z poprawkami stabilności i kompatybilności albo stosując jego nieoficjalne wersje, co zawsze grozi ryzykiem awarii. Wybór dla tych, którzy nie korzystają z AVX-512 jest prosty. Dla tych drugich już nieco mniej.
Czytaj też: Odkryto lukę bezpieczeństwa dysków SSD. Złośliwe oprogramowanie może nigdy nie zostać wykryte
Zwłaszcza że mający być ciągle dostępny dla procesorów zestaw AVX2, czyli swojego rodzaju poprzednik AVX-512, ma mały problem z taktowaniem. Mowa o ograniczeniu zegara do poziomu 5,1 GHz podczas wykonywania instrukcji AVX2, czego Intel nadal nie wytłumaczył. Pewne jest jednak, że to celowe ograniczenie, choć powód jego wprowadzenia (domysły wskazują na bezpieczeństwo) pozostaje tajemnicą. Są na szczęście sposoby obejścia tego limitu w niektórych BIOSach np. płyt głównych z serii Maximus od Asusa.
Wedle testów Igor’s Lab Intel nie bez powodu chce zadbać o to, aby zarobić na AVX-512 możliwie najwięcej. Firma zwyczajnie ulepszyła ich implementacje w procesorach nowej generacji, które wiele na nich zyskują i to nawet po dezaktywacji rdzeni E. To z kolei sugeruje, że przed AVX-512 może być jeszcze świetlana przyszłość, choć jak już wspomnieliśmy, to trudna kwestia na tle nadchodzących GPU Intela.
Pozbawienie dostępu do tych instrukcji na konsumenckich procesorach uniemożliwi co sprytniejszym klientom bazowanie na nich przy kompletowaniu sprzętu do zastosowań profesjonalnych. Tam AVX-512 rzeczywiście się opłaca na tle operowania na AVX2. W grach bowiem nie mają nadal większego sensu (patrzcie powyższe wykresy).