Bug ve Windows 10 zřejmě brzdí Ryzen
V pondělním článku „Co Ryzenu jde, co ne a jak to bude ve hrách“, jsme si shrnuli, v jakých úlohách se novému procesoru daří a kde jsou zatím rezervy. Z testů vyplynulo, že v úlohách zaměřených na procesorový výkon, které dokážou dobře využít všech 16 vláken, je výkon velmi dobrý; v průměru srovnatelný s osmijádrovými procesory architektury Broadwell-E, někdy i vyšší. Pokud ovšem dojde na hry, je situace horší - paradoxně je často výkon nižší pod DirectX 12, která využívají více vláken, než pod DirectX 11, která soustředí většinu zátěže do jediného vlákna.
V minulém článku jsem si dovolil vyslovit domněnku, že v případě Ryzenu dochází k chybnému přidělování vláken jednotlivým procesorovým jádrům a namísto toho, aby každé jádro dostalo ke zpracování jedno vlákno a teprve po jejich obsazení došlo k využití SMT / HT (druhého vlákna), jsou nejdříve prvnímu jádru přidělena dvě vlákna, následně dvě vlákna druhému a tak dále. V důsledku toho nemá žádné vlákno k dispozici výkon celého jádra a dostupné hardwarové prostředky se tříští, aniž by to bylo ku prospěchu (naopak je to ke škodě).
V Linuxu funguje Ryzen v rámci normálu (test: ComputerBase)
Podle aktuálních informací tato teorie nemusí být příliš vzdálená od reality. Scheduler Windows 10 údajně nedokáže rozlišit, která vlákna náleží fyzickému jádru procesoru a která jsou virtuální - zkrátka všechna vidí jako rovnocenná a nemůže proto prioritně přiřazovat úlohy jádrům fyzickým. Tento problém by se měl týkat Windows 10. Není jasno, zda Windows 8, ale zcela jistě ne Windows 7 a Linuxu. To by vysvětlovalo, proč redakci ComputerBase vyšel Ryzen v Linuxových testech jako plně srovnatelný s desetijádrovým Core i7-6950X, zatímco ve Windows 10 byl o 8 % pomalejší než osmijádrový Core i7-6900K. Zároveň by to vysvětlovalo, proč ve hrách, které podporují jak DirectX 11, tak DirectX 12, vycházely horší výsledky v DirectX 12. Zatímco v DirectX 11, kde aplikace soustředí většinu nároků do jediného vlákna, které pak zpracovává fyzické jádro, je v DirectX 12 většina zátěže rozložena do 6-8 vláken, z nichž jen polovina vyjde na fyzická jádra, druhá polovina na virtuální (SMT / HT) a zbývající polovina jader procesoru zůstane prakticky nevyužitá.
Podle některých uživatelů, kteří v diskusích zveřejnili testy srovnávající výkon ve Windows 7 a Windows 10 skutečně některé hry vykazují poměrně velké výkonnostní rozdíly ve prospěch Windows 7. Snímková frekvence v některých situacích dosahuje hodnot o 10-20 % vyšších. Tato čísla je samozřejmě třeba brát jako orientační, alespoň dokud je neověří nějaký nezávislý test. Poměrně dobře ale korespondují s nevhodným nakládáním s prostředky procesoru.
Paradox na závěr: Alespoň v tuto chvíli sedí Ryzenu lépe straré nepodporované Windows 7, než doporučené a podporované Windows 10.