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