Pro procesor optimalizuje kompilátor. Proto se taky Intel v této oblasti angažuje. AMD na to nemá prostředky, tak to nechává na jiných.
Samotnému programátorovi ve vyšších programovacích jazycích (tedy naprosté většině) je asi celkem jedno, na čem jeho program běží. Optimalizuje spíš na úrovni algoritmu, než na úrovni procesoru.
On to zdá se už chystal loni v létě, ale asi čekal, jak to vyzraje/ozkouší se. Tady podle tohohle https://www.realworldtech.com/forum/?threadid=186584&curpostid=186630 to vypadá, že chtěl původně 3950X (na který se muselo čekat do podzimu) a pak přišel Treadripper tak zase asi čekal, jestli se nobjeví nějaký chyby v něm...
"Kdyby kompiloval na serveru,"
.. Mit workstation ma svoje vyhody, zvlaste, pokud se treba zdroje na serveru sdileji. Nemluve, ze z dlouhodobeho hlediska to muze vyjit i levneji nez treba pronajem. Ja jsem se na sdilenych serverech napracoval dost na ruznych projektech a je to zvlaste vyhoda, pokud potrebuji centralizovat nejakou tymovou praci a pouzivat tymove nastroje. Celkove se snizuje administraiva na udrzbu. Na druhou stranu pokud si sudla neco u sebe je jednodussi to mit i u sebe.
Měl jsem na mysli hlavně programátory her. Kde intel má navrch i přes to že AMD jej porazí ve všech syntetických testech. Nejsou to ani tak optimalizace jako spíš chyby.
Které programátor opraví, jen v případě když se projeví na jeho PC(intel). Když se bug projeví jen na AMD, tak se oprava objeví až jako update, který zlepšuje stabilitu. A to jen někdy. Každopádně už by se neměla opakovat situace kdy na Ryzen nebylo možno nainstalovat Ubuntu.
Z toho, co jste vyjmenoval, nevidím nic, co by mělo žrát nějak výrazně procesorový výkon. Web server či SQL server má nainstalovaný jen proto, aby odpovídali jednomu uživateli, tedy jemu, takže nevím, co by tam ty servery měly kutit tak náročného. Mongo jsem si musel najít co je, ale opět nějaká databáze, kde asi není důvod, aby to pořád vytěžovalo procesor, možná jednou při importu dat bude chvíli trvat indexace, ale jinak nevím.
Virtuálky samy o sobě žerou hlavně paměť, aby žraly procesorový výkon, tak by v nich muselo něco náročného běžet.
Jak funguje kompilace ve VS se přiznám netuším, ale čekal bych, že se snad nepřekládá pořád všechno, takže se přeloží jen to, co zrovna dělám a všechny ostatní knihovny se přeložej jen jednou za čas, kdy si zvolím nějaké to kompletní sestavení. Ale je pravda, že programátora už roky nedělám, takže se můžu mýlit.
Je vtipné, jak napíšete, že AMD porazí Intel ve všech syntetických testech, přičemž myslíte jen a pouze syntetické testy využívající naplno všechna jádra, což je situace na hony vzdálená hrám.
S tím Ubuntu apod. je chyba, jestli se to dá nazvat chybou, v tom, že AMD si ty své procesory dost hlídá a nedává je k dispozici před vydáním. Intel u svých procesorů nejdříve rozjede zkušební výrobu, z které vyleze mraky čipů, které dostávají vývojáři, a které se pak objevují v různých benchmarcích dlouhé měsíce před vydáním. AMD možná někde vyzkouší pár kousků, ale většina úniků se objevuje až tehdy, když má finální produkt. A pak se hrozně diví, že Windows neumí přidělovat úlohy správně mezi vlákna nebo Ubuntu an nejde nainstalovat.
Při stejném taktu AMD porazí intel ve všech testech. I těch jednovlaknovych.
Hry na intelu mají menší propady FPS.
Protože bugy ladil programátor na intelu.
Brzy se to otočí a za rok, dva tu budou hry, ktere budou na AMD šlapat lépe. Takové jsou i dnes. AMD jednu hru sponzorovala, a vysledek se dostavil. Bohužel si nevzpomenu na jméno.
Co se tak (pravda, už matně) pamatuju:
- kompilace FreeBSD jádra někdy kolem roku 1995-6 trvala na 486 celou noc.
- kompilace Linuxového kernelu 2.0.3x trvala na MIPSu LE v roce 1999 několik hodin.
- kompilace Linux jádra 2.4 v roce 2004 na tehdejším P4 Xeonu trvala cca hodinu, celé Gentoo 1st stage pak několik hodin.
- kompilace jádra 2.6 o pár let později cca 30-40 minut.
Kompilovat poslední jádra verze 4 a 5 jsem nezkoušel, už to není dnes moc potřeba. Nicméně s ohledem na nárůst velikosti kódu a výkonu bych si tipnul, že běžnému modernímu CPU to bude trvat i tak minuty, nikoli pod minutu. A to je i tak poměrně dlouhý čas, pokud jsi vývojář a ladíš chybu (Gentooistům už to samozřejmě bude jedno, ti mají svůj vymazlený set portage vlaječek a budou kompilovat jen jednou)
Radek Holeček: Někdy se programátorům hodí aby se mohli roztahovat. Je to komfortnější a rychlejší. Avšak těžce změřitelné. Např. mít několik současně spuštěných aplikačních serverů pro Javu, DB server, Eclipse a debugování na serveru. Do toho se může zamotat i webový klient v Angularu, VS code, email klient, webový prohlížeč s více taby a pak ještě virtuálky. 4 jádra jsou málo. 10 už je OK, ale 16 nebo víc jsou poměrně dobrý komfort. A pak samozřejmě co nejvíc RAM a SSD.
Tak tak, v tomhle případě jsou ten důvod hlavně ty kompilování. Když chcete testovat změny (jestli se to úspěšně přeloží, jestli to projde nějakými regresními testy a pak třeba otestovat vliv na výkon), tak těch překladů může být dělanejch spousta a tudíž (u těch velkejch projektů, u malých to asi dlouho netrvá) čím kratší dobu jeden trvá, tím líp.
1) LukSHA-256 tu nadhodil, že TR je pro programátory jako zjevení. Vy argumentujete jedním programátorem, co dělá opravdu velký projekt (zdrojáky jádra Linuxu mají cca 1 GB v cca 70 tisících souborech). Takové projekty opravdu běžný programátor nedělá.
2) Třetina času je pojem dost relativní, tedy že ušetříte dvě třetiny času si někdy ani nevšimnete, zatímco jindy ano.
3) Třetina času u Linuse nemusí být známkou toho, že je procesor 3x výkonnější. Ono při práci s desítkami tisíc souborů bude záležet i na jiných částech počítače (schválně si jen zkuste, za jak dlouho ty zdrojáky linuxového kernelu rozbalíte a sledujte u toho, jak moc máte vytížený procesor).
4) Ty buildy se dělají jednou za čas (třeba ani ne každý den). Většinu času se kompiluje jen ta jedna věc, na které člověk pracuje. Tedy jejich rychlost není pro programátora moc omezující.
Samuel až něco opravdu poběží lépe na AMD tak já už možná nebudu hrát hry vůbec.
Tohle se říkalo I o AMD GPU pamatuji na BF3 a jak to dopadlo. A to se nebaví o CF neboli pracovní dvou gpu. Vždy jsem říkal a říkat budu zlatá ATI taková škoda že to padlo do rukou AMD. Intel sice teď hodně ubral nebo jak bych to řekl zazmatkoval a zasekl se na 14nm ale v NB je Intel v serverech taky a rekordní zisky k tomu. AMD to vše staví jen na počtu jader ale na co to. Jediné plus že to pohlo s Intelem a nemáme zde pořád 4 jádra.
To máte těžké. Když budeme posuzovat vlastnosti jednotlivě, třeba podle výkonu na jedno vlákno na stejné frekvenci, tak rázem zjistíme, že Ice Lake vyhraje nad Ryzenem. Ale k čemu mu to je, když frekvenčně končí výrazně níže. A opačně. Ryzen porazí Comet Lake na stejné frekvenci, ale k čemu mu to je, když ho frekvenčně nedotáhne.
Nebo proč bychom to měli vztahovat zrovna na stejnou frekvenci? Proč ne třeba na stejný počet tranzistorů? Tam by Ryzen dostal nakládačku o desítky procent. Nebo na stejnou spotřebu? Tam by záleželo na tom, jak velkou bychom porovnávali. Ve vyšších by byl Intel poražen na hlavu, u nižších by v pohodě vyhrál, protože AMD nemá moc vychytané úsporné stavy.
Proto asi nemá smysl řešit co by kdyby a dívat se na to, co aktuálně funguje a jak to funguje.
Na to, aby AMD porazilo Intel ve hře, stačí jediné. Stačí, aby ta hra více využívala procesorový výkon. Pak Intel nemá šanci.
@Olsan: Kompiluje sa vzdy len jeden subor, ten na ktorom prave clovek pracuje (preto mimochodom multijadro k hovnu). Potom sa linkuju uz hotove .o/.obj prekompilovane subory s tymto jedinym, zmodifikovanym a nanovo prekompilovanym, co je mimochodom zase jednovlakno a netrva velmi dlho (typicky par sekund). Viac, az cely projekt treba prekompilovat len vtedy ak sa zmeni nejaka struktura a posunu sa indexy, alebo offsety premennych v nej. Potom treba samozrejme prekompilovat vsetky subory, kde je pouzita. No i to je obvykle len par suborov, malokedy cely projekt.