Intel dodaje nowe instrukcje wektorowe i x86 dla przyszłych procesorów

Intel ujawnił dwa zestawy rozszerzeń dołączanych do architektury zestawu instrukcji x86, jeden w celu zwiększenia wydajności kodu ogólnego przeznaczenia, a drugi w celu zapewnienia wspólnego zestawu instrukcji wektorowych dla przyszłych układów.

Niektóre szczegóły zostały ujawnione na stronie internetowej Intela dla deweloperów, pokazując rozszerzenia Advanced Performance Extensions (Intel APX) poszerzające zestaw instrukcji x86 o dostęp do większej liczby rejestrów i innych funkcji mających na celu poprawę wydajności ogólnego przeznaczenia. Tymczasem Advanced Vector Extensions 10 (Intel AVX10) jest opisywany jako „nowoczesna architektura zestawu instrukcji wektorowych”, która ma być obsługiwana przez przyszłe procesory Intela.

APX reprezentuje to, co Intel przedstawia jako duży krok w kierunku przyszłości swojej architektury. Jego główną cechą jest podwojenie liczby rejestrów ogólnego przeznaczenia z 16 do 32. Większa liczba rejestrów oznacza mniejszą potrzebę żonglowania wartościami i jest to jeden ze sposobów, w jaki Intel twierdzi, że zwiększy to wydajność.

W szczególności pozwoli to kompilatorowi na przechowywanie większej liczby wartości w rejestrach, dzięki czemu kod korzystający z APX może wymagać o 10 procent mniej obciążeń z pamięci i potencjalnie o ponad 20 procent mniej zapisów niż ten sam kod skompilowany dla istniejącego zestawu instrukcji, twierdzi Intel.

Oznacza to, że procesor spędza więcej czasu na wykonywaniu obliczeń zamiast na przenoszeniu danych, podczas gdy dostęp do rejestru jest również szybszy i zużywa mniej energii niż złożone operacje ładowania i przechowywania.

APX dodaje również warunkowe formy instrukcji ładowania, przechowywania i porównywania/testowania, mające na celu zwalczanie spadku wydajności aplikacji, który może wynikać z warunkowego błędnego przewidywania rozgałęzień. Są one implementowane za pomocą rozszerzeń prefiksu EVEX istniejących starszych instrukcji.

Według Intela, deweloperzy mogą skorzystać z APX poprzez rekompilację kodu, przy czym zmiany w kodzie źródłowym nie będą wymagane.

AVX10, według Intela, jest pierwszą dużą aktualizacją zestawu instrukcji wektorowych od czasu wprowadzenia AVX-512. Ma on zapewnić wspólny, konwergentny zestaw instrukcji wektorowych we wszystkich architekturach Intela, a tym samym będzie obsługiwany przez wszystkie przyszłe procesory, w tym wydajne rdzenie (rdzenie P) i energooszczędne rdzenie (rdzenie E).

AVX10 bazuje na zestawie funkcji Intel AVX-512 i będzie obsługiwać wszystkie długości wektorów instrukcji (128, 256 i 512), a także instrukcje skalarne i opmask.

Wygląda jednak na to, że ” ujednolicona ” wersja AVX10, która będzie wspólna dla wszystkich procesorów Intela, będzie miała maksymalną długość wektora 256 bitów i 32-bitowe rejestry opmask. Jest to określane jako Intel AVX10/256.

Obsługa 512-bitowych rejestrów wektorowych i 64-bitowych rejestrów opmask będzie nadal oferowana w niektórych procesorach z rdzeniem P „dla ciężkich wektorowych aplikacji obliczeniowych, które mogą wykorzystać dodatkową długość wektora”. Jest to określane jako Intel AVX10/512.

Choć może to brzmieć nieco zagmatwanie, wygląda na to, że Intel chce uprościć wsparcie deweloperów dla instrukcji wektorowych poprzez posiadanie podstawowego poziomu wsparcia we wszystkich układach dla kodu, który z tego korzysta, takiego jak przetwarzanie sztucznej inteligencji.