Перайсці да змесціва

AVX-512

Архітэктурны даведнікFeex

AVX-512 - гэта сямейства вектарных пашырэнняў x86 з рэгістрамі маскі аперацый (opmask) і падтрымкай 512-бітных аперацый. Яго базавую частку (foundation) і асобныя падмноства неабходна правяраць паасобку; адно толькі пазначэнне AVX-512 не з'яўляецца поўнай спецыфікацыяй сумяшчальнасці.

Што вам трэба ведаць

AVX-512 - гэта сямейства вектарных пашырэнняў x86 з рэгістрамі маскі аперацый (opmask) і падтрымкай 512-бітных аперацый. Яго базавую частку (foundation) і асобныя падмноства неабходна правяраць паасобку; адно толькі пазначэнне AVX-512 не з'яўляецца поўнай спецыфікацыяй сумяшчальнасці.

Як гэта працуе

Архітэктура дадае вектарны стан ZMM і рэгістры масак аперацый k. Маскаваныя аперацыі могуць выбіраць асобныя каналы з паводзінамі аб'яднання або абнулення, спецыфічнымі для канкрэтнай інструкцыі. AVX512F з'яўляецца асновай; AVX512BW, DQ, CD і VL ахопліваюць розныя дадатковыя магчымасці. AVX512VL дазваляе выконваць адпаведныя аперацыі над вузейшымі вектарамі, таму код AVX-512 не абавязкова апрацоўвае 512 бітаў пры кожнай інструкцыі.

Дзе гэта карысна

Маскаваны лікавы цыкл можа апрацоўваць свой фінальны няпоўны вектар без асобнага скалярнага хваста, калі выбраныя інструкцыі падтрымліваюць неабходную семантыку маскавання. Праграма, якая выкарыстоўвае байтавыя аперацыі, выяўленне канфліктаў або пэўны арыфметычны фармат, павінна запытваць менавіта гэтыя падмноства. AVX-512 VNNI і AVX-VNNI выкарыстоўваюць розныя кадаваньні і спосабы пераліку.

Як праверыць падтрымку і актыўнасць

Пасля праверак AVX праверце спецыфічныя біты магчымасцей ліста 7 CPUID, неабходныя праграме. Для стану AVX-512 рэгістр XCR0 павінен уключаць станы XMM, YMM, opmask, верхні ZMM і высокі ZMM: біты 1, 2, 5, 6 і 7. Звычайна выкарыстоўваецца маска E6H. Праверце OSXSAVE перад XGETBV і выкарыстоўвайце дыспетчар, які правярае кожнае патрабаванае падмноства.

Праграма павінна як змяшчаць адпаведную рэалізацыю, так і выбіраць яе падчас выканання. Пералічэнне апаратных сродкаў, стан рэгістраў, уключаны АС, і скампіляваны базавы ўзровень бінарнага файла - гэта асобныя праверкі. Віртуальная машына можа наўмысна паказваць менш функцый, чым яе хост, а кантэйнер не дадае інструкцый працэсару хоста.

Чаго гэта функцыя не гарантуе

Не рабіце выснову аб наяўнасці кожнага падмноства AVX-512 толькі на падставе AVX512F, назвы пакалення працэсара або x86-64-v4. Частата, энергаспажыванне і прапускная здольнасць выканання адрозніваюцца ў залежнасці ад рэалізацыі і рабочай нагрузкі. Адзін толькі запіс у базе даных не дазваляе вызначыць, ці прашыўка, палітыка гібрыдных ядраў або гіпервізар робяць прыдатную для выкарыстання магчымасць даступнай для бягучага працэсу.

Сумяшчальнасць і прадукцыйнасць на практыцы

Вымярайце нагрузку цалкам з рэпрэзентатыўнымі данымі. Больш шырокія вектары могуць паменшыць колькасць інструкцый, але пакінуць нязменнымі трафік памяці, сінхранізацыю або затраты на пераўтварэнне. Затрымка інструкцый, прапускная здольнасць і энергаспажыванне залежаць ад канкрэтнай мікраархітэктуры і ўмоў эксплуатацыі.

Практычны чэк-ліст для праверкі

  1. Зафіксуйце дакладную мадэль працэсара або платформы, а таксама задзейнічаныя версіі праграмы, АС і асяроддзя выканання. Захавайце дакладную фармулёўку памылкі або патрабавання.
  2. Звярніцеся да дакументацыі вытворцы для гэтай канкрэтнай мадэлі, затым праверце фактычныя магчымасці і ўключаны стан у асяроддзі, дзе выконваецца праграма.
  3. Супастаўце кожнае патрабаванне выбранага выканальнага файла або бэкэнда. Аналагічнай назвы функцыі, псеўданіма або агульнай назвы тэхналогіі недастаткова.
  4. Пацвердзіце, што праграма выбрала патрэбную рэалізацыю. Выкарыстоўвайце яе задакументаваныя сродкі дыягностыкі і падтрымліваемы запасны варыянт, калі патрабаванні не выконваюцца.
  5. Уносьце па адным падтрымліваемым змяненні за раз і паўтарайце тую ж нагрузку. Захоўвайце зыходную канфігурацыю і магчымасць адкату.

Калі функцыя пазначана, але праграмнае забеспячэнне не можа яе выкарыстоўваць

Пачніце з канкрэтнага кампанента, які выклікае збой. Апаратная база даных апісвае зафіксаваныя магчымасці; аперацыйная сістэма або гіпервізар могуць прадастаўляць іншае фактычнае асяроддзе. Памылка недапушчальнай інструкцыі (illegal instruction) таксама патрабуе даследавання канкрэтнай інструкцыі, якая выклікала збой, і зборкі бінарнага файла, паколькі пашкоджанне даных або іншая непадтрымліваемая інструкцыя могуць выклікаць аналагічны сімптом.

Усталюйце версію праграмы, драйвера або асяроддзя выканання, якая падтрымліваецца для дадзенай платформы, і пры неабходнасці выкарыстоўвайце задакументаваную вытворцам базавую або запасную зборку. Абнаўленне ПЗ не можа стварыць інструкцыю, якой няма ў працэсары. Змяненні ў мікрапраграме (firmware) і палітыках бяспекі павінны адпавядаць працэдурам вытворцы сістэмы і плану аднаўлення, а не агульным рэцэптам аптымізацыі.

Крыніцы і межы прымянення гэтага тлумачэння

Intel 64 and IA-32 Architectures Software Developer's Manual · Ядро Linux: выкарыстанне функцый XSTATE у прасторы карыстальніка · x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў

Гэтыя даведнікі вызначаюць архітэктурныя паводзіны і патрабаванні да праграмнага забеспячэння. Яны не пацвярджаюць незалежна кожнае значэнне функцыі на звязанай старонцы мадэлі абсталявання. Для праверкі падтрымкі мадэллю выкарыстоўвайце даныя вытворцы на адпаведнай старонцы і правярайце фактычную канфігурацыю сістэмы. Гэты артыкул не змяшчае вынікаў тэсціравання (benchmark), сертыфікацыі або даты незалежнага агляду.

Крыніцы і праверка

Рэдакцыйная прыналежнасць: Feex. Дата незалежнай праверкі не зафіксавана. Як мы даследуем.

Ці быў гэты артыкул карысным?

Дастаткова адказаць "так" або "не". Выберыце прычыну, калі хочаце, або дадайце кароткую нататку.

Ці быў гэты артыкул карысным?