AVX-512
AVX-512 е семейство от x86 векторни разширения с регистри за маски на операции (opmask) и поддръжка за 512-битови операции. Неговата основа и отделните подмножества трябва да се проверяват отделно; един-единствен етикет AVX-512 не представлява пълна спецификация за съвместимост.
Какво трябва да знаете
AVX-512 е семейство от x86 векторни разширения с регистри за маски на операции (opmask) и поддръжка за 512-битови операции. Неговата основа и отделните подмножества трябва да се проверяват отделно; един-единствен етикет AVX-512 не представлява пълна спецификация за съвместимост.
Как работи
Архитектурата добавя ZMM векторен статус и k регистри за маскиране на операции (opmask). Маскираните операции могат да избират отделни ленти (lanes), със специфично за инструкциите поведение на обединяване (merging) или зануляване (zeroing). AVX512F е основата; AVX512BW, DQ, CD и VL покриват различни допълнителни възможности. AVX512VL позволява съответните операции върху по-тесни вектори, така че кодът за AVX-512 не обработва задължително 512 бита при всяка инструкция.
Къде е полезно
Маскиран числов цикъл може да обработи своя финален частичен вектор без отделна скаларна опашка, когато избраните инструкции поддържат необходимата семантика за маскиране. Приложение, използващо байтови операции, откриване на конфликти или конкретен аритметичен формат, трябва да изисква точно тези подмножества. AVX-512 VNNI и AVX-VNNI използват различно кодиране и изброяване.
Как се проверява поддръжката и активирането
След проверките за AVX проверете конкретните битове за характеристики в leaf 7 на CPUID, необходими за програмата. За състоянието на AVX-512 XCR0 трябва да активира състоянието за XMM, YMM, opmask, горен ZMM и висок ZMM: битове 1, 2, 5, 6 и 7. Често използваната маска е E6H. Проверете OSXSAVE преди XGETBV и използвайте диспечер, който проверява всяко необходимо подмножество.
Програмата трябва както да съдържа подходяща реализация, така и да я избира по време на изпълнение. Изброяването на хардуера, активираното от ОС състояние на регистрите и компилираната базова версия на двоичния файл са отделни проверки. Виртуалната машина може умишлено да предоставя по-малко функции от своя хост, а контейнерът не добавя инструкции към процесора на хоста.
Какво не гарантира тази функция
Не подразбирайте всяко подмножество на AVX-512 от AVX512F, име на поколение процесори или x86-64-v4. Честотата, консумацията на енергия и пропускателната способност на изпълнение варират според реализацията и работното натоварване. Обозначение в база данни само по себе си не може да установи дали фърмуерът, политиката за хибридни ядра или хипервайзорът предоставят използваема функция на текущия процес.
Съвместимост и производителност на практика
Измервайте пълното работно натоварване с представителни данни. По-широките вектори могат да намалят броя на инструкциите, като оставят непроменени трафика към паметта, синхронизацията или разходите за преобразуване. Латентността на инструкциите, пропускателната способност и енергийното поведение зависят от точната микроархитектура и условията на работа.
Практически контролен списък за проверка
- Запишете точния модел на процесора или платформата, както и използваните версии на приложението, операционната система и средата за изпълнение. Запазете точния текст на действителната грешка или изискване.
- Проверете документацията от производителя за този точен модел, след което инспектирайте действителните възможности и активираното състояние в средата, където работи програмата.
- Сравнете всяко изискване на избрания двоичен файл или бекенд. Подобно наименувана функция, псевдоним или общ технологичен етикет не са достатъчни.
- Потвърдете, че приложението е избрало планираната реализация. Използвайте неговата документирана диагностика и поддържан резервен вариант, когато изискванията не са изпълнени.
- Правете по една поддържана промяна наведнъж и повтаряйте същото работно натоварване. Запазете достъпни оригиналната конфигурация и плана за възстановяване.
Ако функцията е посочена, но софтуерът не може да я използва
Започнете с точния компонент, който дава грешка. Хардуерната база данни описва записаните възможности; операционната система или хипервайзорът могат да предоставят различна ефективна среда. Грешка за невалидна инструкция (illegal-instruction) също изисква разследване на действителната сриваща се инструкция и компилацията на двоичния файл, тъй като повреда или несвързана неподдържана инструкция може да предизвика подобен симптом.
Инсталирайте версията на приложението, драйвера или средата за изпълнение, която се поддържа за точната платформа, и използвайте документираната от производителя базова или резервна компилация, ако е необходимо. Софтуерна актуализация не може да създаде инструкция, която липсва в процесора. Промените във фърмуера и политиките за сигурност трябва да следват процедурата на производителя на системата и план за възстановяване, а не общи съвети за оптимизация.
Източници и обхват на това обяснение
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux ядро: използване на XSTATE функции в потребителското пространство · x86-64 psABI: нива на процесорна архитектура и микроархитектура
Тези източници установяват архитектурното поведение и софтуерните изисквания. Те не проверяват независимо всяка стойност на параметър на свързана страница за хардуерен модел. За поддръжка на даден модел използвайте данните от производителя на съответната страница и проверете ефективната системна конфигурация. Тази статия не предоставя бенчмарк, сертификация или дата на независим преглед.
Източници и проверка
Редакционна собственост: Feex. Не е записана дата на независим преглед. Как проучваме.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Томове 1 и 2 описват посочените семейства инструкции и CPUID; Том 3 описва състоянието, страницирането, VMX и контролите за защита. Документацията за архитектурата не гарантира поддръжка за конкретен модел.
- Linux ядро: използване на XSTATE функции в потребителското пространство · Активирано от ОС векторно състояние, динамично активирано състояние на блокове, изисквания към сигналния стек и процес за разрешение на AMX. Специфичното за Linux поведение не представлява обещание за друга операционна система.
- x86-64 psABI: нива на процесорна архитектура и микроархитектура · Машинен интерфейс, процесорна архитектура: базова и кумулативна таблица с функции за v2/v3/v4, проверки на състоянието на ОС и препоръки за внедряване.
Беше ли полезна тази статия?
Достатъчно е "да" или "не". Изберете причина, ако желаете, или добавете кратка бележка.
Благодарим ви. Това ни помага да подобрим тази страница.