Problém ARMu je v tom, že když se mu podaří dohnat výkon, dožene i všechny negativní vlastnosti x86 procesorů.
Na tom Snapdragonu 8cx je to krásně vidět. Velikost nějakých 110 mm2 na 7nm procesu. Teoretická výkonnost na úrovni 125 mm2 i5 na 14nm procesu. Praktická výkonnost hluboko pod ní. TDP 7W při špičkových 3 GHz. Pokud se zvedne frekvence, TDP vystřelí výrazně nahoru.
Co by mělo být tím hybatelem, který donutí jít zákazníky do ARMu? Výkonově to pravděpodobně svět x86 dotáhne, ale cena bude obdobná, spotřeba bude obdobná, zůstane však obrovská nevýhoda, a tou je kompatibilita.
Nie. Intel ma procesory s vysokým hrubým výkonom. Apple ma procesory, ktoré majú nižší hrubý výkon, ale zároveň majú specializované procesory napríklad video enkoder a dekoder, neural engine, grafickú kartu s Metal, ... . Takže ak môžu použiť hardvérove urýchlenie, tak ho použijú. Intel musí použiť hrubý výkon s neoptimalizovaným procesorom a vtedy rastie spotreba.
O Applu jsem nenapsal ani slovo. Psal jsem o Snapdragonu 8cx, který poráží tu i5 právě v hrubém výkonu. Je to podobné, jako v dobách Pentií, kdy se konkurence holedbala pěknými výsledky benchmarků, které běžely jen na INT výpočtech, ale v praxi se ukazovalo, že v FPU už se měřit nemůže atp.
Ale máte pravdu, že můžeme diskutovat o tom, co je to hrubý výkon. Má dvoujádrový Atom větší hrubý výkon, když dokáže přehrát 4K video levou zadní, než i7-2600K, která si na tom videu ani neškrtne?
Není problém do ARMu nacpat všechny vymoženosti instrukční sady x86 (potažmo x86-64), ale tím padne ta hlavní výhoda ARMu, tedy jednoduchost.
dfx:
Možná jste přehlédl, že píšu, že můžeme diskutovat o tom, co to hrubý výkon je. Když umí procesor AVX-512, má se to počítat nebo se to nemá počítat, protože to je nějaké speciálnost?
Univerzálnost je právě to, že to umí všechno. Tedy umí to přehrát video, má to nějaké ty vektorové výpočty typu AVX, má to případně nějakou tu podporu AI.
A co je tedy výkonnější? Nějaký současný Atom nebo stará dobrá i7-2600K? Ono jí k té univerzálnosti dneska už taky dost chybí, byť nějaké ty základní výpočty zvládá pořád celkem slušně.
Ten hruby vykon bude asi vzdy relativni prave kvuli zminovanym specializovanym instrukcim (ktere uz jsou specializovane, a ktere univerzalni?}. Na cem ale bude zaviset, je kompletni reseni, tedy optimalizace a provazanost HW se SW. Aneb koho zajima, jestli ma treba v mobilu 8GB RAM, nebo jen 3, pokud vse co instaluje funguje bez problemu?
Obecne se da rici, ze univerzalnejsi reseni je vzdy horsi z pohledu specializace, ale lepsi kdyz je treba sirsi zaber, nebo kdyz nezname vsechna vyuziti.
Radek Holeček: AVX-512 sú samozrejme špecializované inštrukcie. Nie je to súčasť univerzálneho procesora. Uz iba preto, lebo jedna inštukcia sa vykonáva nad viacerými dátami. Dáta sa musia najprv pripraviť a potom sa to celé spustí.
Neviem, s ktorým atomom to mam porovnať. Treba si pozriet nejaký benchmark, napriklad geekbench.
Specializovaný procesor by byl ten hardwarový blok pro dekódování/enkódování videa (to už nějaké API, ovladač a obsluhu potřebuje), DSP v Qualcommech, obvody pro zpracování obrázu z kamery, GPU.
Proti tomu jsou IMHO AVX-512 úplně standardní instrukce, dělají to jednotky které jsou napojené pod stejných schedulerem v CPU jako všechno ostatní, nepotřebuje to žádný ovladač nebo framework nebo speciální API, je to jedna z instrukcí x86. Sice není všude, ale to ani třeba SSE4. To, že je to SIMD, IMHO není rozhodující, SIMD by v žádném CPU nemělo chybět.
To, že program si nejdřív musí nějak nasypat hodnoty do SIMD registru, to bych nepovažoval za podstatné. Když chci FPU výpočet, tak taky nejdřív musím konvertovat datový formát z integeru, ale FPU už je neodmyslitelná součást CPU 25-30 let, byť se třeba v mikrořadičích dá odebrat.
Jako ne že by to nebyly instrukce používané pro speciální účely a ne úplně permanentně, ale pořád je to součást procesoru. Přes SIMD registry/instrukce se jinak dneska dělají i základní operace jako MEMCPY a to je už úplně běžná práce přítomná v jakémkoli programu.
Přes AVX-512 zrovna asi ještě ne kvůli malému rozšíření, ale jednou se to tak nejspíš používat bude, mezi SSE(2) a AVX-512 není nějaký principiální rozdíl, jen jsou to jiné registry a jiná šířka vektoru.