AVX2
AVX2 пашырае вектарную апрацоўку x86 256-бітнымі цэлалікавымі аперацыямі і дадатковымі інструкцыямі перамяшчэння даных. Сумяшчальны працэсар, уключаны стан AVX і праграмнае забеспячэнне, якое сапраўды выбірае шлях кода AVX2, з'яўляюцца неабходнымі ўмовамі.
Што вам трэба ведаць
AVX2 пашырае вектарную апрацоўку x86 256-бітнымі цэлалікавымі аперацыямі і дадатковымі інструкцыямі перамяшчэння даных. Сумяшчальны працэсар, уключаны стан AVX і праграмнае забеспячэнне, якое сапраўды выбірае шлях кода AVX2, з'яўляюцца неабходнымі ўмовамі.
Як гэта працуе
AVX2 пераносіць шмат упакаваных цэлалікавых аперацый на 256-бітныя рэгістры YMM і дадае такія магчымасці, як цэлалікавыя выбаркі (gathers), зменныя зрухі і больш шырокія перастаноўкі. 256-бітны цэлалікавы вектар можа змяшчаць 32 байты, 16 слоў, 8 двайных слоў або 4 чацвярныя словы; інструкцыя вызначае інтэрпрэтацыю канала. Некаторыя аперацыі дзейнічаюць незалежна ў межах 128-бітных палоў, таму шырокі рэгістр не азначае неабмежаванае перамяшчэнне паміж кожным каналам.
Дзе гэта карысна
Бібліятэка апрацоўкі выяў можа апрацоўваць 32 байтавыя кампаненты ў вектары, пакуль ядро базы даных параўноўвае 8 32-бітных цэлых лікаў. Гэта ілюструе ёмістасць даных, а не абяцанае паскарэнне. Выбаркі па-ранейшаму залежаць ад лакальнасці памяці, і цыкл можа заставацца абмежаваным промахамі кэша, галінаваннямі або пераўтварэннем даных, а не арыфметычнай шырынёй.
Як праверыць падтрымку і актыўнасць
Спачатку выканайце праверкі абсталявання AVX і OSXSAVE/XCR0. Затым пераканайцеся, што CPUID падтрымлівае ліст 7, і праверце біт 5 у CPUID.07H.00H:EBX. Правядзіце тэставанне ўнутры рэальнага асяроддзя разгортвання ў гасцявой АС або кантэйнеры і выкарыстоўвайце падтрымоўваны інтэрфейс дыягностыкі праграмы, дзе ён даступны.
Праграма павінна як змяшчаць адпаведную рэалізацыю, так і выбіраць яе падчас выканання. Пералічэнне апаратных сродкаў, стан рэгістраў, уключаны АС, і скампіляваны базавы ўзровень бінарнага файла - гэта асобныя праверкі. Віртуальная машына можа наўмысна паказваць менш функцый, чым яе хост, а кантэйнер не дадае інструкцый працэсару хоста.
Чаго гэта функцыя не гарантуе
AVX2 не ўключае FMA як аўтаматычнае архітэктурнае следства. Ён таксама сам па сабе не пацвярджае наяўнасць AVX-512, апаратнага паскарэння штучнага інтэлекту або адпаведнасць патрабаванням x86-64-v3. Зборка, скампіляваная глабальна для AVX2, можа збоіць яшчэ да запуску рэзервовага дыспетчара, калі код ініцыялізацыі ўжо змяшчае непадтрымоўваныя інструкцыі.
Сумяшчальнасць і прадукцыйнасць на практыцы
Вымярайце нагрузку цалкам з рэпрэзентатыўнымі данымі. Больш шырокія вектары могуць паменшыць колькасць інструкцый, але пакінуць нязменнымі трафік памяці, сінхранізацыю або затраты на пераўтварэнне. Затрымка інструкцый, прапускная здольнасць і энергаспажыванне залежаць ад канкрэтнай мікраархітэктуры і ўмоў эксплуатацыі.
Практычны чэк-ліст для праверкі
- Зафіксуйце дакладную мадэль працэсара або платформы, а таксама задзейнічаныя версіі праграмы, АС і асяроддзя выканання. Захавайце дакладную фармулёўку памылкі або патрабавання.
- Звярніцеся да дакументацыі вытворцы для гэтай канкрэтнай мадэлі, затым праверце фактычныя магчымасці і ўключаны стан у асяроддзі, дзе выконваецца праграма.
- Супастаўце кожнае патрабаванне выбранага выканальнага файла або бэкэнда. Аналагічнай назвы функцыі, псеўданіма або агульнай назвы тэхналогіі недастаткова.
- Пацвердзіце, што праграма выбрала патрэбную рэалізацыю. Выкарыстоўвайце яе задакументаваныя сродкі дыягностыкі і падтрымліваемы запасны варыянт, калі патрабаванні не выконваюцца.
- Уносьце па адным падтрымліваемым змяненні за раз і паўтарайце тую ж нагрузку. Захоўвайце зыходную канфігурацыю і магчымасць адкату.
Калі функцыя пазначана, але праграмнае забеспячэнне не можа яе выкарыстоўваць
Пачніце з канкрэтнага кампанента, які выклікае збой. Апаратная база даных апісвае зафіксаваныя магчымасці; аперацыйная сістэма або гіпервізар могуць прадастаўляць іншае фактычнае асяроддзе. Памылка недапушчальнай інструкцыі (illegal instruction) таксама патрабуе даследавання канкрэтнай інструкцыі, якая выклікала збой, і зборкі бінарнага файла, паколькі пашкоджанне даных або іншая непадтрымліваемая інструкцыя могуць выклікаць аналагічны сімптом.
Усталюйце версію праграмы, драйвера або асяроддзя выканання, якая падтрымліваецца для дадзенай платформы, і пры неабходнасці выкарыстоўвайце задакументаваную вытворцам базавую або запасную зборку. Абнаўленне ПЗ не можа стварыць інструкцыю, якой няма ў працэсары. Змяненні ў мікрапраграме (firmware) і палітыках бяспекі павінны адпавядаць працэдурам вытворцы сістэмы і плану аднаўлення, а не агульным рэцэптам аптымізацыі.
Крыніцы і межы прымянення гэтага тлумачэння
Intel 64 and IA-32 Architectures Software Developer's Manual · Ядро Linux: выкарыстанне функцый XSTATE у прасторы карыстальніка · x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў
Гэтыя даведнікі вызначаюць архітэктурныя паводзіны і патрабаванні да праграмнага забеспячэння. Яны не пацвярджаюць незалежна кожнае значэнне функцыі на звязанай старонцы мадэлі абсталявання. Для праверкі падтрымкі мадэллю выкарыстоўвайце даныя вытворцы на адпаведнай старонцы і правярайце фактычную канфігурацыю сістэмы. Гэты артыкул не змяшчае вынікаў тэсціравання (benchmark), сертыфікацыі або даты незалежнага агляду.
Крыніцы і праверка
Рэдакцыйная прыналежнасць: Feex. Дата незалежнай праверкі не зафіксавана. Як мы даследуем.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Тамы 1 і 2 апісваюць названыя сямействы інструкцый і CPUID; Том 3 апісвае стан, старонкавую арганізацыю памяці, VMX і элементы кіравання абаронай. Архітэктурная дакументацыя не пацвярджае падтрымку канкрэтнай мадэлі.
- Ядро Linux: выкарыстанне функцый XSTATE у прасторы карыстальніка · Уключаны аперацыйнай сістэмай вектарны стан, дынамічна ўключаны стан плітак, патрабаванні да стэка сігналаў і працэс атрымання дазволаў AMX. Спецыфічныя для Linux паводзіны не гарантуюць таго ж у іншай АС.
- x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў · Machine Interface, Processor Architecture: табліца базавых і кумулятыўных магчымасцей v2/v3/v4, праверкі стану АС і рэкамендацыі па разгортванні.
Ці быў гэты артыкул карысным?
Дастаткова адказаць "так" або "не". Выберыце прычыну, калі хочаце, або дадайце кароткую нататку.
Дзякуй. Гэта дапамагае нам паляпшаць гэтую старонку.