Valve o problémech procesorů s více jádry
zdroj: Archiv
Hardware

Valve o problémech procesorů s více jádry

8. 11. 2006 10:10 | autor: Redakce Games.cz |

Procesory s více jádry jsou budoucností výpočetní techniky.

O tom žádná. Jenomže jak to udělat, aby z více jader těžily i typické jedno vláknové aplikace jako jsou hry? Valve Software pořádalo už svůj třetí "hardware editor's day" a tam informovali, jak podporu pro více jádrové procesory budou řešit v jejich Source enginu. Ve srovnání se softwarem jsou totiž tuhle chvíli procesory ve svém vývoji o hodně napřed a je potřeba s tím něco udělat, aby se nemrhalo výkonem.
První možností (kromě toho zůstat u single-threadingu a nedělat nic) je tzv. Coarse Threading (též známý jako Multiple Single Threads). Je trošičku složitější než single-threading, ale ne o moc. Spočívá v tom, že celý systém je šoupnut na jedno jádro. Typicky rendering je svěřen jádru 0, umělá inteligence je svěřena jádru 1, fyziku dělá jádro 2 a tak dále. Problém nastane, když vývojář spotřebuje všechna jádra a zbude mu ještě nějaká úloha a už jí nemá kam umístit. Navíc výsledky, hlavně co se týká výkonu, nejsou nijak ohromující. Proto Valve Software nebudou tuto metodu v Source enginu používat. Nicméně, protože jí považují za důležitou, budou s ní dále experimentovat. Vylepšení výkonu tato metoda vykazuje asi 1,2 násobku single-threadingu (zřetězení).

Takže to chce něco jiného. Možná by bylo vhodné použít Fine Grained Threading. Ten je mnohem náročnější než Coarse Threading a spočívá v tom, že se vezme každá jednotlivá úloha (operace s daty) a rozdělí se napříč všemi jádry. Tím pádem když máte například 1000 operací, které musí být dokončeny, tak je v případě čtyřjádrového procesoru rozdělíte na 4 části po 250 a necháte každé jádro, aby dokončilo těch 250 operací. To je dobrá zpráva, protože až budou 8 nebo 16 jádrové procesory, bude mít tahle metoda slušné výkonnostní přírůstky. Problém je drsná náročnost. Vývojář si musí být jist, že je každá jednotlivá operace na každém jádru dokončena právě včas a že výsledná data z těchto operací jsou dostupná v momentě, kdy je potřebuje nějaké další jádro. I když tato metoda slibuje perfektní výkon, je v praxi téměř nepoužitelná a nebude jí používat ani Valve. Tedy alespoň ne v této podobě.

Poslední metoda, kterou se Valve skutečně rozhodlo používat v Source enginu, se nazývá Hybrid Threading. Je to metoda nejnáročnější, protože mixuje obě metody předešlé. Pro použití hybridního zřetězení hovoří fakt, že je to metoda dobře škálovatelná, využívající maximum potenciálu CPU a má znatelné nárůsty výkonu. Podle prvních měření je to asi + 34 procent výkonu oproti jednomu jádru. Inu, lepší než nic. Valve tuhle metodu používá tak, že nechá například zpracování zvuku na jednom samostatném jádru, protože to při počítání zvuku nepotřebuje přímo spolupracovat s ostatními jádry. Jakmile je to jen trochu možné, tak se o zbylé úlohy, jako je AI, rendering, fyzika atd., jádra dělí podle potřeby a přesně podle pravidel Fine Grained Threadingu. Více na TweakTownu.

zdroj: TweakTown

cappy

Nejnovější články