GPGPU: SiSoft Sandra 2011 Cryptography Benchmark
Kapitoly článků
Nakousneme dnes také práci GPGPU. SiSoft Sandra 2011 má zajímavé testy, které navíc díky shodným algoritmům (byť pochopitelně s odlišnou implementací kódu) umožňuje navzájem porovnávat. Jedním z nich je test šifrování AES a hashování SHA.
Tyto výsledky nám dávají náhled na několik věcí. Jednak je to srovnání výkonu dvoujádrového „Zacate“ na 1,6 GHz se čtyřjádrovým Phenomem II na 2,5 GHz (Phenom II X4 je rychlejší přibližně čtyřikrát, velice hrubým odhadem bychom tak mohli říci, že při stejném taktu je jádro Phenomu II rychlejší oproti „Bobcatu“ asi tak jen o čtvrtinu, což je poměrně slušná vizitka pro „Bobcat“, anebo bída s nouzí pro Phenomy II, nehodící se škrtněte (můžete klidně škrtnout tuto domněnku jako celek ;-).
Pak je to pohled na práci s procesorem při nativním využití jeho instrukcí, která je pro šifrování rychlejší zhruba 3,5× než „přemílání“ přes OpenCL, pro hashování je však rychlejší už jen o čtvrtinu než přes OpenCL.
V neposlední řadě OpenCL umožňuje i takové šílenosti jako kombinace výkonu CPU a GPU jader, takže z pohledu OpenCL se opravdu jedná prostě o „82 nějakých jader“, které umí spřáhnout dohromady. V praxi pak nedostáváme samozřejmě výsledek, jako bychom „sečetli výkon jednotlivých druhů jader“, ale o něco menší, pravda, ne o moc (hlavně se nám zde neprojevuje žádný efekt „dekcelerace“, ale spíše to opravdu dává smysl). Nicméně použití integrované grafiky v procesoru „Fusion“ APU přes DirectCompute dává výsledek zhruba stejně dobrý, případně lepší než když spřáhneme dohromady CPU a GPU jádra tohoto čipu pomocí OpenCL.
Samozřejmě z toho nelze vyvozovat, že „OpenCL je brzda“, nebo že Phenom II X4 je rychlejší než integrovaný Radeon HD 6310 v procesoru „Zacate“. Algoritmy, tedy způsoby výpočtu dané úlohy, jsou stejné, liší se ale zcela pochopitelně jejich implementace, jednou je to přímo pro instrukce CPU, podruhé to jde přes OpenCL, potřetí přes DirectCompute. Ostatně i průběh zátěže během celého testu naznačuje, že optimalizace kódu má k dokonalosti nejspíše daleko (červená je GPU, zelená jsou procesorová jádra).
Vše závisí na tom, jak to v SiSoftware s pomocí všech, kteří se na tvorbě kódu podíleli, spatlali a co z toho vzniklo. Není vyloučeno, že některé úlohy by šlo třeba napsat s jiným algoritmem lépe s ohledem na možnosti daných instrukcí či funkcí toho kterého rozhraní tak, aby se došlo ke shodným výsledkům. V SiSoftware se však rozhodli pro shodné algoritmy, tak jim to neberme. Naopak třeba MediaConverter 7 od ArcSoftu rozhodně stejné algoritmy nemá, protože z každého typu kódování lezou jiné výsledky, v případě ATI/AMD grafik dokonce diametrálně jiné, ale na to se podíváme až příště. To je ovšem dáno tím, že u videa probíhá ztrátová komprese a každý algoritmus si jinak vybírá, co se v obrazové informaci při kompresi ztratí (zkazí). To si samozřejmě taková činnost, jako je šifrování nebo hashování, nemůže dovolit.