AMD CPU
Dan Lukes
dan at obluda.cz
Thu Apr 13 14:59:03 CEST 2006
Pav Lucistnik napsal/wrote, On 04/12/06 14:22:
> Jsou to instrukce, ktere vykonaji stejnou operaci nad 4 plovoucimi cisly
> zaroven. A kde se uplatni manipulace ctyrmi plovoucimi cisly? Vice mene
> jen v komplexni matematice
... ja bych rekl spis ve vektorove respektive maticove matematice
(primarne totiz byly navrzeny k urychleni 3D<->3D a 3D<->2D transformaci
a ty se provadeji pomoci maticovych operaci nad maticemi 4x4) - ale to
je asi jen profesni deformace ...
Dulezitejsi je druha poznamka - SSE je podstatne nejen pro zminene
operace (s 4xfloat cisly) ale GCC pouziva, kdyz s emu to dovoli,
prislusne registry i pro nektera porovnavani pripadne pro nektere
presuny pameti - coz uz je vec, ktera se vyskytuje i v beznem kodu.
> Prislusne casti libm, kde by se nejake to plovouci cislo dalo potopit,
> jsou pak dnes psany v assembleru.
... a tam se skutecne zjistuje, jestli procesor podporuje SSE
(lib/msun/i387|amd64/fenv.c)
Na druhou stranu, cela tahle informace se pouziva jen k tomu, aby se
pri obsluze vyjimek ulozily respektive obnovily take prislusne SSE registry.
Dalsi kod, ktery zna pojem SSE je libpmc - ale ani v tomto pripade se
dost dobre neda rict, ze system nebo world SSE pouzival.
Zbyva tak vlastne jen samotne gcc. To umoznuje zejmena deklarovat a
pouzivat vektorove promenne. Nemam ale dojem, ze by takovou vec world
pouzival. Zbyvaji tedy porovnavani float cisel a presuny pameti - tim
nemyslim ani tak na knihovni funkce tridy bcopy/memcpy jako spis presuny
vyvolane implicitne jinymi operacemi (prirazeni nebo tak neco).
Kolik je ale ve vyslednem prelozenem worldu SSE instrukci (kdyz se
povoli) a jaky maji realny dopad na vykon, to uz ale nevim.
Tak nevim, jestli jsem Romanovi odpovedel alespon trochu.
Dan
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz
More information about the Users-l
mailing list