Taky múže jít o podporu pro specifické zákazníky - tedy superpočítače. Tyto často mají specifické úpravy na úrovni mikrokódu.
+1
+1
-1
Je komentář přínosný?
Taky múže jít o podporu pro
Milan Bačík https://diit.cz/profil/mildaiv
16. 10. 2018 - 11:53https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseTaky múže jít o podporu pro specifické zákazníky - tedy superpočítače. Tyto často mají specifické úpravy na úrovni mikrokódu.https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195442
+
Tohle už je známé delší dobu, ale každopádně díky za článek. Nejpravděpodobnější vysvětlení je to (nebo se to aspoň v odborných kruzích říká), že plán AMD byl sjednotit instrukční sady s Intelem, ale v případě FMA4 narazili na problémy s kompatibilitou u špatně napsaného SW (který na AMD automaticky použil FMA4 místo detekce přes cpuid). Postupné vypuštění HW podpory pro FMA4 u dalších generací Zenu by dávalo smysl, protože by to umožnilo zjednodušit návrh kritické části jádra (3 porty do registrů místo 4) a tím zvýšit výkon (menší latence). Tohle byl taky zřejmě hlavní důvod, proč Intel přešel z FMA4 na FMA3 ještě před dokončením návrhu Haswellu.
+1
+2
-1
Je komentář přínosný?
Tohle už je známé delší dobu,
xR https://diit.cz/profil/m-k1
16. 10. 2018 - 12:01https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseTohle už je známé delší dobu, ale každopádně díky za článek. Nejpravděpodobnější vysvětlení je to (nebo se to aspoň v odborných kruzích říká), že plán AMD byl sjednotit instrukční sady s Intelem, ale v případě FMA4 narazili na problémy s kompatibilitou u špatně napsaného SW (který na AMD automaticky použil FMA4 místo detekce přes cpuid). Postupné vypuštění HW podpory pro FMA4 u dalších generací Zenu by dávalo smysl, protože by to umožnilo zjednodušit návrh kritické části jádra (3 porty do registrů místo 4) a tím zvýšit výkon (menší latence). Tohle byl taky zřejmě hlavní důvod, proč Intel přešel z FMA4 na FMA3 ještě před dokončením návrhu Haswellu.https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195451
+
FMA4 je optimalizovatelnější (takové pěkné slovo!). FMA3 dělá to samé, ale jeden registr zničí a přepíše výsledkem. V případě, kdy bych mohl a chtěl ten registr použít v další instrukci, musím ho tam znovu nasunout. Ve specifických výpočtech to může hrát roli. A taky je to přehlednější a kontrolovatelnější.
+1
0
-1
Je komentář přínosný?
FMA4 je optimalizovatelnější
VŠK https://diit.cz/profil/v-ch
16. 10. 2018 - 13:25https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseFMA4 je optimalizovatelnější (takové pěkné slovo!). FMA3 dělá to samé, ale jeden registr zničí a přepíše výsledkem. V případě, kdy bych mohl a chtěl ten registr použít v další instrukci, musím ho tam znovu nasunout. Ve specifických výpočtech to může hrát roli. A taky je to přehlednější a kontrolovatelnější.https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195499
+
FMA3 tohle resi tak, ze existuji vsechny mozne varianty te instrukce, takze pripadu, kdy je potreba vkladat MOVy je minimum a navic to nestoji zadny vykon (MOV mezi registry je free). S tou prehlednosti ale souhlasim. Z pohledu programatora je FMA4 urcite lepsi. Ale za ten nizsi vykon vsech zakladnich FP operaci to nestoji :).
+1
0
-1
Je komentář přínosný?
FMA3 tohle resi tak, ze
xR https://diit.cz/profil/m-k1
16. 10. 2018 - 13:44https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseFMA3 tohle resi tak, ze existuji vsechny mozne varianty te instrukce, takze pripadu, kdy je potreba vkladat MOVy je minimum a navic to nestoji zadny vykon (MOV mezi registry je free). S tou prehlednosti ale souhlasim. Z pohledu programatora je FMA4 urcite lepsi. Ale za ten nizsi vykon vsech zakladnich FP operaci to nestoji :).https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195517
+
" A tak se stalo, že když AMD vydala Zen a ve výčtu podporovaných instrukcí chyběla FMA4, bylo to většině lidí upřímně jedno. "
To bude tim, ze a) vetsina lidi netusi co FMA je a jaky ma prakticky prinos, a b) existuje FMA3 ktere odvede stejne dobrou praci.
Jinak zrovna FMA bych rekl ze je jedna z tech dulezitejsich instrukci poslednich 10 let. Cirou nahodou vykon GPU, kdyz se udava v GFLOPs, obvykle znamena prave GFLOPs ve FMA operaci, ne prumer ani nic jineho. Na vetsine GPU je taky FMA jedna z nejrychlejsich operaci (obvykle 1 clock cycle).
Jestli vas zajima proc je to tak dulezite, tak strucne: na CPU ani FPU nenajdete instrukce pro transcendentalni funkce (sin, cos, log, exp atd). Resp na GPU jsou ale s velmi omezenou presnosti. Tudiz pokud potrebujete pocitat neco s vyssi presnosti, tak to musite vypocitat softwarove (nejakym matematickym vzorcem), coz obvykle znamena polynomy, a prave polynomy umoznuje FMA pocitat o dost presneji.
+1
+2
-1
Je komentář přínosný?
" A tak se stalo, že když AMD
franzzz https://diit.cz/profil/franz-z
16. 10. 2018 - 12:32https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse" A tak se stalo, že když AMD vydala Zen a ve výčtu podporovaných instrukcí chyběla FMA4, bylo to většině lidí upřímně jedno. "
To bude tim, ze a) vetsina lidi netusi co FMA je a jaky ma prakticky prinos, a b) existuje FMA3 ktere odvede stejne dobrou praci.
Jinak zrovna FMA bych rekl ze je jedna z tech dulezitejsich instrukci poslednich 10 let. Cirou nahodou vykon GPU, kdyz se udava v GFLOPs, obvykle znamena prave GFLOPs ve FMA operaci, ne prumer ani nic jineho. Na vetsine GPU je taky FMA jedna z nejrychlejsich operaci (obvykle 1 clock cycle).
Jestli vas zajima proc je to tak dulezite, tak strucne: na CPU ani FPU nenajdete instrukce pro transcendentalni funkce (sin, cos, log, exp atd). Resp na GPU jsou ale s velmi omezenou presnosti. Tudiz pokud potrebujete pocitat neco s vyssi presnosti, tak to musite vypocitat softwarove (nejakym matematickym vzorcem), coz obvykle znamena polynomy, a prave polynomy umoznuje FMA pocitat o dost presneji.https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195466
+
Neplacej. FSIN, FTAN,... byly soucasti instrukcni sady FPU uz od 80287 v roce 1982
+1
0
-1
Je komentář přínosný?
Neplacej. FSIN, FTAN,... byly
tomo https://diit.cz/profil/tomas-marny1
16. 10. 2018 - 13:21https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseNeplacej. FSIN, FTAN,... byly soucasti instrukcni sady FPU uz od 80287 v roce 1982https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195496
+
To je pravda, ale kolega asi myslel neco, co je opravdu v HW a ne jen v mikrokodu. SSE ani AVX tyhle instrukce nemaji a navic FPU se uz v 64bit modu bezne nepouziva.
Jeste dodam, ze velky prinos FMA je krome polynomu take napr. pro vypocet vsemoznych maticovych transformaci a matematickych vypoctu obecne. Zvysuje to presnost i vykon (2 FP operace za cenu 1).
+1
0
-1
Je komentář přínosný?
To je pravda, ale kolega asi
xR https://diit.cz/profil/m-k1
16. 10. 2018 - 13:35https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuseTo je pravda, ale kolega asi myslel neco, co je opravdu v HW a ne jen v mikrokodu. SSE ani AVX tyhle instrukce nemaji a navic FPU se uz v 64bit modu bezne nepouziva.
Jeste dodam, ze velky prinos FMA je krome polynomu take napr. pro vypocet vsemoznych maticovych transformaci a matematickych vypoctu obecne. Zvysuje to presnost i vykon (2 FP operace za cenu 1).https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195511
+
Presne tohle jsem myslel. A kolega ma taky pravdu ze FPU se uz davno nepouziva, ma totiz (krome pomalosti) taky zopar zasadnich chybicek ktere SSE/AVX nemaji - napriklad ze vysledky nejakeho kodu ktery pouziva FPU muzou zaviset na tom, jak dobre dany kod kompilator zoptimalizuje. Coz je teda dost zasadni problem kdyz clovek chce reprodukovatelne a spolehlive vypocty. Z tohodle duvodu napr. GCC kompilator uz roky pouziva defaultne SSE na vsechny vypocty s float/double. Viz tady: https://gcc.gnu.org/wiki/x87note
+1
0
-1
Je komentář přínosný?
> SSE ani AVX tyhle instrukce
franzzz https://diit.cz/profil/franz-z
16. 10. 2018 - 15:35https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse> SSE ani AVX tyhle instrukce nemaji
Presne tohle jsem myslel. A kolega ma taky pravdu ze FPU se uz davno nepouziva, ma totiz (krome pomalosti) taky zopar zasadnich chybicek ktere SSE/AVX nemaji - napriklad ze vysledky nejakeho kodu ktery pouziva FPU muzou zaviset na tom, jak dobre dany kod kompilator zoptimalizuje. Coz je teda dost zasadni problem kdyz clovek chce reprodukovatelne a spolehlive vypocty. Z tohodle duvodu napr. GCC kompilator uz roky pouziva defaultne SSE na vsechny vypocty s float/double. Viz tady: https://gcc.gnu.org/wiki/x87notehttps://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1195538
+
Pokud se nepletu tak za mých mladých let se "FMA se třemi operandy" říkalo "akumulace". Jedná se o základní stavební kámen všelijakých "konvolučních" výpočetních algoritmů: filtrace časových řad a diskrétní Fourierova transformace (audio, měření a regulace, software-defined radio), dvourozměrná filtrace a komprese/dekomprese obrazu (DCT, wavelety) apod. Základní výbava všech DSPček - ačkoli tam možná "akumulátor" byl spíš jeden konkrétní registr s pevným účelem, tzn. možná nefiguroval v instrukcích jako explicitní operand... Ano tohle vše je podmnožinou "maticových operací".
+1
0
-1
Je komentář přínosný?
Pokud se nepletu tak za mých
frr https://diit.cz/profil/frr
19. 12. 2018 - 11:05https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskusePokud se nepletu tak za mých mladých let se "FMA se třemi operandy" říkalo "akumulace". Jedná se o základní stavební kámen všelijakých "konvolučních" výpočetních algoritmů: filtrace časových řad a diskrétní Fourierova transformace (audio, měření a regulace, software-defined radio), dvourozměrná filtrace a komprese/dekomprese obrazu (DCT, wavelety) apod. Základní výbava všech DSPček - ačkoli tam možná "akumulátor" byl spíš jeden konkrétní registr s pevným účelem, tzn. možná nefiguroval v instrukcích jako explicitní operand... Ano tohle vše je podmnožinou "maticových operací".https://diit.cz/clanek/zen-podporuje-fma4-instrukce/diskuse#comment-1216475
+
Taky múže jít o podporu pro specifické zákazníky - tedy superpočítače. Tyto často mají specifické úpravy na úrovni mikrokódu.
Tohle už je známé delší dobu, ale každopádně díky za článek. Nejpravděpodobnější vysvětlení je to (nebo se to aspoň v odborných kruzích říká), že plán AMD byl sjednotit instrukční sady s Intelem, ale v případě FMA4 narazili na problémy s kompatibilitou u špatně napsaného SW (který na AMD automaticky použil FMA4 místo detekce přes cpuid). Postupné vypuštění HW podpory pro FMA4 u dalších generací Zenu by dávalo smysl, protože by to umožnilo zjednodušit návrh kritické části jádra (3 porty do registrů místo 4) a tím zvýšit výkon (menší latence). Tohle byl taky zřejmě hlavní důvod, proč Intel přešel z FMA4 na FMA3 ještě před dokončením návrhu Haswellu.
FMA4 je optimalizovatelnější (takové pěkné slovo!). FMA3 dělá to samé, ale jeden registr zničí a přepíše výsledkem. V případě, kdy bych mohl a chtěl ten registr použít v další instrukci, musím ho tam znovu nasunout. Ve specifických výpočtech to může hrát roli. A taky je to přehlednější a kontrolovatelnější.
FMA3 tohle resi tak, ze existuji vsechny mozne varianty te instrukce, takze pripadu, kdy je potreba vkladat MOVy je minimum a navic to nestoji zadny vykon (MOV mezi registry je free). S tou prehlednosti ale souhlasim. Z pohledu programatora je FMA4 urcite lepsi. Ale za ten nizsi vykon vsech zakladnich FP operaci to nestoji :).
" A tak se stalo, že když AMD vydala Zen a ve výčtu podporovaných instrukcí chyběla FMA4, bylo to většině lidí upřímně jedno. "
To bude tim, ze a) vetsina lidi netusi co FMA je a jaky ma prakticky prinos, a b) existuje FMA3 ktere odvede stejne dobrou praci.
Jinak zrovna FMA bych rekl ze je jedna z tech dulezitejsich instrukci poslednich 10 let. Cirou nahodou vykon GPU, kdyz se udava v GFLOPs, obvykle znamena prave GFLOPs ve FMA operaci, ne prumer ani nic jineho. Na vetsine GPU je taky FMA jedna z nejrychlejsich operaci (obvykle 1 clock cycle).
Jestli vas zajima proc je to tak dulezite, tak strucne: na CPU ani FPU nenajdete instrukce pro transcendentalni funkce (sin, cos, log, exp atd). Resp na GPU jsou ale s velmi omezenou presnosti. Tudiz pokud potrebujete pocitat neco s vyssi presnosti, tak to musite vypocitat softwarove (nejakym matematickym vzorcem), coz obvykle znamena polynomy, a prave polynomy umoznuje FMA pocitat o dost presneji.
Neplacej. FSIN, FTAN,... byly soucasti instrukcni sady FPU uz od 80287 v roce 1982
To je pravda, ale kolega asi myslel neco, co je opravdu v HW a ne jen v mikrokodu. SSE ani AVX tyhle instrukce nemaji a navic FPU se uz v 64bit modu bezne nepouziva.
Jeste dodam, ze velky prinos FMA je krome polynomu take napr. pro vypocet vsemoznych maticovych transformaci a matematickych vypoctu obecne. Zvysuje to presnost i vykon (2 FP operace za cenu 1).
> SSE ani AVX tyhle instrukce nemaji
Presne tohle jsem myslel. A kolega ma taky pravdu ze FPU se uz davno nepouziva, ma totiz (krome pomalosti) taky zopar zasadnich chybicek ktere SSE/AVX nemaji - napriklad ze vysledky nejakeho kodu ktery pouziva FPU muzou zaviset na tom, jak dobre dany kod kompilator zoptimalizuje. Coz je teda dost zasadni problem kdyz clovek chce reprodukovatelne a spolehlive vypocty. Z tohodle duvodu napr. GCC kompilator uz roky pouziva defaultne SSE na vsechny vypocty s float/double. Viz tady: https://gcc.gnu.org/wiki/x87note
Pokud se nepletu tak za mých mladých let se "FMA se třemi operandy" říkalo "akumulace". Jedná se o základní stavební kámen všelijakých "konvolučních" výpočetních algoritmů: filtrace časových řad a diskrétní Fourierova transformace (audio, měření a regulace, software-defined radio), dvourozměrná filtrace a komprese/dekomprese obrazu (DCT, wavelety) apod. Základní výbava všech DSPček - ačkoli tam možná "akumulátor" byl spíš jeden konkrétní registr s pevným účelem, tzn. možná nefiguroval v instrukcích jako explicitní operand... Ano tohle vše je podmnožinou "maticových operací".
Pro psaní komentářů se, prosím, přihlaste nebo registrujte.