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 Radeon HD 6900: Cayman v rybníku

29.12.2010, Petr Štefek, technologie
AMD Radeon HD 6900: Cayman v rybníku
V dnešním článku se podíváme na zbrusu nový grafický čip AMD Cayman, jenž reprezentuje značný evoluční krok a základ architektury budoucnosti, na které bude AMD v dalších letech stavět další generace grafických karet.
Jak jsme si vysvětlili v minulé kapitole, zbrusu novou VLIW4 architekturu s menším počtem stream procesorů v ALU bude jednodušší plně vytěžovat, což bude mít blahodárný vliv i na využití GPU při akceleraci různých aplikací, jinak řečeno GPU computing. Na tomto poli ale již exceluje Nvidia, která dělá vše proto, aby byla první volbou v oblasti akcelerovaných výpočtů na GPU. Pro AMD to znamená, že bude muset udělat podstatně větší změny než pouhou úpravu architektury VLIW5. Fermi ovšem bude pro Cayman velmi těžkým soustem a opravdu nikdo nečeká, že by jej měl v oblasti GPU computingu překonat.

AMD má v rukávu eso v podobě funkce zvané asynchronní dispatch. Tato nová vlastnost umožní stejně jako v případě Fermi vykonávat současně více kernelů. Paralelní vykonávání kernelů je pro využití stěžejní, neboť se mezi nimi nemusí přepínat a neztrácí tak efektivitu. AMD tuto vlastnost posouvá ještě o krok dále.



Když mluvíme o tom, že AMD provedlo další krok, musíme zmínit i to, co Nvidia v tomto ohledu neumí. Architektura Fermi může současně vykonávat více kernelů, ale každý z nich je svázaný se stejným vláknem CPU. Nezávislost je v tomto ohledu podle AMD klíčem k větší efektivitě. Cayman v tomto ohledu umožňuje vykonávat nezávislé vlákna ke kernelům. Teoreticky to tedy může přinést AMD hardwarovou výhodu, kterou proti Fermi v oblasti GPU computingu opravdu potřebují jako sůl.

V podstatě je asynchronního dispatche dosaženo tím, že GPU skryje některé informace o svém stavu před aplikacemi a kernely, což vede v podstatě k vizualizaci GPU zdrojů. Dokud je každý z kernelů považován za běžícího na svém vlastním GPU, tak má také svou příkazovou frontu a svůj vlastní adresovací prostor. Tato funkčnost klade větší nároky na GPU a jeho ovladače tak, aby dokázaly řídit sdílené vykonávání (GPU je fakticky stále pouze jedno). Tato náročnost je ale vykoupena tím, že každá alternativa jako kontext switching (Fermi) je podstatně náročnější.



Pokud se budeme ptát, kde je tato funkce asynchronního přepínání podporována, pak nás to logicky povede k vyjmenování všech současných API. DirectCompute to neumí a umět nebude a stejná pohádka je to i s novějším DirectCompute 11. Jediná spása je tedy pro tuto funkci OpenCL, kde se objeví jeho podpora formou rozšíření. Otázkou je, nakolik se stane OpenCL využitelným v praxi pro velkou masu aplikací. Pokud bychom se totiž spoléhali pouze na DirectCompute, tak bude tato výhoda smazána.

Další vymoženosti architektury Cayman se soustředí převážně na optimalizace v oblasti práce s pamětí a cache (vyrovnávací paměti). Hardwarově nedošlo v rámci architektury k žádným podstatnějším změnám, a tak jsou optimalizace spíše kosmetické.

Local Data Store (lokální datové uložiště) přiřazené ke každé SIMD je nyní schopno přemostit (bypass) hierarchii cache a Global Data Store. Cayman disponuje druhým DMA enginem, čímž zajistil vykonávání čtení a zapisování do paměti dvakrát v každém směru. Kromě jiného dokáže Cayman operace čtení ze shaderů sloučit do menšího počtu operací.

Abychom zde ovšem neplýtvali místem, je nutné říci, že AMD bude mít karty do profesionálního segmentu poněkud jinak vybavené a dnes popisovaný Cayman patří převážně do domácího a herní segmentu. U těchto karet předpokládám nasazení ECC pamětí a dalších vymožeností, bez kterých by je vědecká obec je stěží mohla brát vážně. Dobrá je ovšem zpráva, že i běžný Cayman umí 64bitové výpočty.