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

SSE

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

SSE, Streaming SIMD Extensions, увяла рэгістры x86 XMM і спакаваныя аперацыі з плаваючай коскай адзінарнай дакладнасці. Гэта першы прадстаўнік паслядоўнасці незалежна ідэнтыфікаваных пашырэнняў SIMD.

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

SSE, Streaming SIMD Extensions, увяла рэгістры x86 XMM і спакаваныя аперацыі з плаваючай коскай адзінарнай дакладнасці. Гэта першы прадстаўнік паслядоўнасці незалежна ідэнтыфікаваных пашырэнняў SIMD.

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

Рэгістр XMM змяшчае 128 бітаў. Спакаваныя аперацыі адзінарнай дакладнасці працуюць з 4 32-бітнымі значэннямі з плаваючай коскай, тады як скалярныя формы працуюць з адным значэннем з паводзінамі для астатніх бітаў, спецыфічнымі для кожнай інструкцыі. SSE таксама ўвяла асяроддзе кіравання і стану MXCSR для выключэнняў і акругленняў SIMD з плаваючай коскай.

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

Працэдуры апрацоўкі графікі і аўдыя могуць прымяняць адну і тую ж аперацыю да некалькіх незалежных значэнняў. Элементы SIMD (lanes) - гэта элементы даных у межах інструкцыі, а не ядры працэсара ці патокі аперацыйнай сістэмы. Навакольная праграма па-ранейшаму апрацоўвае загрузкі, захаванні і выключныя значэнні.

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

CPUID.01H:EDX біт 25 указвае на SSE. АС павінна забяспечваць адпаведнае кіраванне станам XMM/MXCSR. У звычайным падтрымоўваным ABI x86-64 SSE і SSE2 з'яўляюцца базавымі сродкамі, але 32-бітная праграма мае ўласную базу для разгортвання.

Функцыя SIMD апісвае інструкцыі, а не дадатковыя ядры. Форма інструкцыі вызначае шырыню элемента, знакавасць, акругленне, выраўноўванне і тое, якія лініі (lanes) узаемадзейнічаюць. Праграмнае забеспячэнне павінна захоўваць стан рэгістраў ABI і выкарыстоўваць падтрымоўванае асяроддзе выканання.

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

SSE сама па сабе не пацвярджае наяўнасць цэлалікавых аперацый або аперацый падвойнай дакладнасці SSE2, больш позніх пашырэнняў SSE, AVX або палітыкі падтрымкі АС. Некаторыя састарэлыя інструкцыі патрабуюць пэўнага выраўноўвання памяці, якога праграміст павінен прытрымліваецца.

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

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

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

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

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

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

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

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

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў

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

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

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

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

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

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