richie08 píše:2)Implementace SSE je vždy ruční záležistot programátora v assembleru.
Ono s SSE to zase neni tak tragicke, kdyz ho chces pouzit na zakladni operace. Bohuzel ne v kazdym jazyku a rozhodne bez assembleru nedokazes vyuzit vsechny moznosti.
Kdyz pouzivas Javu mas smulu. (nebo aspon o nicem nevim)
Kdyz pouzivas .NET, tak Mono obsahuje knihovny pro vektorove typy. Bohuzel vektorove vypocty probihaji jenom pokud je assembly spustena pod Monem, microsofti framework je neoptimalizuje a pocita normalne :/
Druha moznost pod .NET je Microsofti C++ a mixed mode assembly.
C/C++ obecne:
Inline assembler. Kod neni tak slozity, jelikoz je to vzdycky par radku na naplneni a vypocet v SSE a zbytek v C.
Navic se snad daji sehnat makra, ktera ASM kod obsahuje a pak je to jenom pouzivani funkci s parametry.
Microsoft C++ compiler. Celkem velka sada compiler specific typu a maker pro praci s SSE. Navic se zda, ze pro jdou zkompilovat i pod GCC (se zapnutou kompatibilitou), ale netusim jestli je to pak pocita vektorove.
Intel C++ ma automatickou vektorizaci, takze kod co chces pocitat vektorove staci psat jako operace cyklem na polich hodnot a ono je to automaticky provede prez SSE. (hlavne nepouzivat moc rucni optimalizace jinak to nepozna)
richie08 píše: Navíc x87 je 80bit zatímco SSE je 64bit, takže i přesnost je menší
Neni x86(7) CPU podporuji stadardem definovane typy pro 32 (single precision), 64 (double precision) a 80 (extended precision) bit cisla v plovouci carce. At provedes operaci na 64bit cisle v jakykoliv FPU tak podle standartu musi vyjit stejne. (ve IEEE754 jsou definovany i zpusoby zaokrouhlovani v pripade ztraty presnosti).
richie08 píše: 3,4)
Podle me proste vyvoj K10 trval tak dlouho a nabral takovy zpozdeni, ze zacal v dobe kdy se o SSE4 moc neuvazovalo (ani puvodni Intel CORE je neumelo). U K10.5 bylo nutne pracovni sily zamerit uplne jinam. Kvuli novim instrukcim by bylo nutne prekopat ALU/FPU a sebrali by se inzenyri z vyvoje ty monstrozni FPU co bude v Bulldozeru.
Takze proste sepsali co slo udelat v mikrokodu a udelali SSE4a
