reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

AMD se vyjádřilo k problémům Threadripperů s plánovačem ve Windows

15.1.2019, Jan Vítek, aktualita
AMD se vyjádřilo k problémům Threadripperů s plánovačem ve Windows
Nedávno jsme se podívali na to jak s plánovačem procesů ve Windows válčil Wendell z LevelOneTechs, který zjistil, že výkonnostní problémy 24 a 32jádrových Threadripperů nelze svádět jen na způsob napojení pamětí. 
V různých úlohách se totiž ukazovaly výkonnostní propady Threadripperů vybavených čtyřmi čipy Zeppelin, což jsou 24 a 32jádrové modely. Svádělo se to na onen fakt, že dvě ze čtyř jader nekomunikují s paměťmi přímo, ale prostřednictvím ostatních jader, což mělo prodlužovat odezvu a snižovat výkon. V řadě případů to však bylo až nesmyslné snížení výkonu na polovinu a Wendell si všiml především toho, že pod Linuxem na rozdíl od Windows může být výkon mnohem vyšší. Logicky si tak vyvodil, že problém nebude v procesoru, ale v OS. Navíc se ukázalo, že stejným problémem jsou ve Windows postiženy také procesory EPYC a ty, jak dobře víme, mají už pro každé jádro vyhrazeny dva paměťové kanály.  
 
pouze dva Zeppeliny jsou v 32jádrovém Threadripperu napojeny přímo na paměti a PCIe
 
Jeremym Collakem z Bitsumu byla vytvořena utilita CorePrio, která v podstatě opravuje práci plánovače procesů ve Windows, respektive jde o jeho reset, přičemž v té době nebylo ani autorům tohoto programu jasné, jakou chybu to celé vůbec řeší. Nám zase může být divné, že jsme od samotného AMD nic podobného dosud neslyšeli a přitom kdo jiný než samotný výrobce procesoru by se měl postarat o to, aby ve spolupráci s Microsoftem takovou věc řešil? 
 
Závěr byl doposud takový, že v NUMA prostředí plánovač Windows přiřazuje aplikacím "ten nejlepší NUMA uzel". NUMA uzel je seskupení procesorových jader a příslušné paměti v jednotku tak, aby jádra z očividných důvodů vždy využívala ty paměťové moduly, na něž jsou ve skutečnosti opravdu fyzicky napojena. Plánovač pak je naprogramovaný k tomu, aby přesunoval prioritní procesy do onoho nejlepšího NUMA uzlu a dělá to tak důsledně, že když nějaká aplikace využije třeba všech 64 dostupných vláken 32jádrového Threadripperu, všechna vlákna mají stejný nárok na nejlepší NUMA uzel, takže se do něj neustále přesunují, a tím i vzájemně vyhazují. Není pak divu, že jde výkon i o polovinu dolů. 
 
 
A proč se to neděje už v případě 16jádrových Threadripperů? Jde v podstatě o dva procesory v jednom a ukázalo se, že Microsoft má plánovač pro dvouprocesorové systémy upraven tak, že ten ono pravidlo "nejlepšího NUMA uzlu" nepoužívá, ale to už se netýká 3 a víceprocesorových systémů. Čili tento problém tu musel být už od nástupu prvních procesorů EPYC, jen to asi nevyplynulo na povrch, když jde o serverové procesory. 
 
Z toho všeho to vypadá, že řešení by mělo být snadné, ale co k tomu může říci AMD? To sděluje, že o problému ví a spolupracuje na něm s Microsoftem. Zmiňuje také, že Wendell se dobral velice blízko jádru onoho problému, ale zároveň nechce sdělovat žádné další podrobnosti. Aktuálně si také inženýři z AMD vyměňují zkušenosti s autorem utility CorePrio.
 
Kdy ale přijde náprava? To záleží na "řadě faktorů" spolupráce s Microsoftem, ale až se řešení dostane na svět, AMD to oficiálně ohlásí a slibuje další funkce pro optimalizace výkonu vícečipových procesorů. 
 
Zdroj: Anandtech


reklama