Jak na APU zrychlit GPGPU výpočty o 20 % bez přetaktování?

0

Zkratka APU se stala synonymem pro procesory s integrovaným grafickým jádrem z dílen AMD vhodné na nenáročné kancelářské úlohy či občasné hraní. Slovo Accelerated, které se skrývá pod prvním písmenem, ale mělo původně označovat něco trochu jiného. APU, Fusion, Heterogenous System Architecture… ať už tomu říkáte jakkoliv, měly to být procesory, které si k vysokému výkonu v paralelizovatelných úlohách dopomohou výpočetní silou grafického jádra.

Aplikace využívající rozhraní CUDA nebo OpenCL existují už dnes, ale vlastně není rozdíl v tom, jestli je grafické jádro v jednom čipu s procesorem, nebo má podobu karty do slotu PCI Express. To se ale konečně může změnit. Vědci z North Carolina State University údajně přišli na to, jak zužitkovat přítomnost CPU i GPU v jednom čipu a zvýšit tak výkon v GPGPU aplikacích o 20 %. Výzkum byl sponzorován společností AMD a jako spoluautor výsledného článku je uveden i Mike Mantor, senior fellow architect u AMD. Poznatky lze ale aplikovat na jakýkoliv čip, třeba i od Intelu, za předpokladu, že bude mít sdílenou L3 cache, do které budou mít přístup procesorová jádra i grafický akcelerátor.

„Jádra CPU a GPU stále zpracovávají téměř výhradně oddělené funkce. Jen výjimečně spolupracují na zpracování jakéhokoliv programu a proto nejsou tak účinná, jak by mohla být. To je problém, který se snažíme vyřešit,“ prohlásil Huiyang Zhou, jeden ze spoluautorů výzkumu.

Řešení, které vědci navrhují, je nechat GPU provádět výpočty a CPU použít k nahrávání dat (prefetch) z hlavní paměti. „Tento přístup je efektivnější, protože používá CPU i GPU k tomu, v čem jsou dobrá. GPU je dobré na zpracování výpočtů, CPU je dobré na rozhodování a flexibilní nalezení potřebných dat“, vysvětluje Zhou.

V praxi to vypadá tak, že CPU provádí „předzpracovací“ program, který běží vůči GPU napřed a obsahuje pouze instrukce nahrávání z operační paměti (fetch). Vlákna běžící na pomalejších výpočetních jednotkách GPU se pak s hledáním dat v RAM nemusí tolik zdržovat, protože většinu potřebného naleznou ve společné cache. Předzpracovací program vytváří upravený kompilátor, řadový vývojář se jím tedy nemusí zaobírat. Logicky z toho ale vyplývá, že vylepšení nelze použít retroaktivně na již existující programy.

Výzkumníci tvrdí, že v testech dosáhli zrychlení v průměru o 21,4 %, některé úlohy byly ale urychleny až o 113 %, tedy na více než dvojnásobek. Testy však neprobíhaly na existujícím APU, vědci museli používat simulované dosud neexistující APU se sdílenou L3 cache.

Výsledkům výzkumu by zajisté měl věnovat pozornost Intel, který vyvíjí vlastní kompilátory a také nabízí výkonné procesory s (často nevyužitým) iGPU. A také vlastní Havok, který se před akvizicí zajímal o možnost akcelerace herní fyziky grafickým čipem. To je jen taková kacířská myšlenka.

Zdroj: X-bit labs, bit-tech.net