Nvidia Tesla K20 - součást nejvýkonnějšího superpočítače
27.11.2012, Petr Štefek, technologie
V dnešním článku si představíme hardware, který se stal stěžejním základem pro nejvýkonnější superpočítač Titan. Základem akcelerátorů Tesla K20 je jádro GK110, které drží primát čipu s největším množstvím tranzistorů.
Kapitoly článku:
- Nvidia Tesla K20 - úvod
- Nvidia Tesla K20 - jdeme hlouběji
- Nvidia Tesla K20 - rekapitulace k Tesla K10
- Nvidia Tesla K20 - pod kapotou GK110
- Nvidia Tesla K20 - HyperQ, Dynamic Parallelism, ECC
Když Nvidia uváděla novou generaci Tesla K20, slibovala, že s tímto novým jádrem dosáhne 3× vyšší výkon na watt, než tomu bylo v případě předešlé generace s GF100. Celková spotřeba řešení, ale zůstala mezigeneračně téměř stejná. Jak jsme si uváděli v předešlých kapitolách, tak maximální spotřeba musí zůstat i v případě těchto řešení relativně při zemi a nemůžeme si zde dovolit jít krom speciálních případů nad 225 W (TDP).
Tesla K20 přináší trojnásobný výkon v oblasti FP32 a dvojnásobný, pokud se týká FP64. Rozdíl mezi výkonem FP32 a FP64 je samozřejmě jasně patrný, ale to ovšem neznamená, že by Nvidia nechtěla dodržet to, co slíbila, ale jde na to jinak. Ztrojnásobit hardwarové prostředky umí každý, ale využít efektivně stávající a dosáhnout tím ve výsledku požadované výkony, to je ta cesta, kterou se Nvidia ubírá.
Protože Nvidia se soustředí téměř výhradně na to, aby Tesla K20 měla tu nejlepší možnou výkonnost, tak zde máme nové technologie pro dosažení maximální efektivity. HyperQ a Dynamic Parallelism jsou takovéto technologie a my si je popíšeme dále.
Hyper je ukázkou toho, jak někdy velmi jednoduchá řešení dokáží být ta nejúčinnější. HyperQ je v podstatě pojmenování toho, že Nvidia rozšířila počet úloh, které můžeme přiřadit SMX jednotce. Jádro GF100 (Fermi) toto neumělo a dokázalo SMX přiřadit pouze jedinou úlohu, ale novější jádro GK110 už jich umí rovnou 32. HyperQ musí prostě vytížit všechny SMX (SM) jednotky tak, aby bylo dosaženo co možná nejvyššího výkonu. Obecný problém paralelních architektur je právě vytížení jednotek tak, aby bylo dosaženo maximální efektivity.
Druhou zajímavou novinkou je Dynamic Parallelism, která skrývá funkčnost dynamické tvorby dalších threadů v rámci zpracovávání kódu. Ve starších architekturách jako je Fermi do toho muselo zasáhnout také CPU. V případě Kepleru GK110 už nemusí, což může znamenat v určitých ohledech výhodu pro specifické GPGPU aplikace. Radost budou mít především vývojáři GPGPU aplikací. Bližší podrobnosti o celé architektuře můžeme od Nvidie očekávat snad ve 3. kvartále tohoto roku. Velmi zajímavé bude sledovat, jaké aplikace se budou na tomto supervýkonném jádru stavět, a zda se konečně dočkáme nějakého superpočítače založeného na Tesla K20, který se postaví do čela výkonnostního žebříčku. Prozatím je na 6. místě Jaguar s kombinací AMD Opteron a Nvidia Tesla 2090.
Nvidia udělala významné pokroky také u ECC (Error Code Correction), kde GK 110 využívá nového ECC algoritmu. Tesla K20 má implementováno DRAM ECC do software bez nutnosti rozšiřovat kapacitu paměti pro kontrolní bit. ECC také může být v případě nutnosti deaktivována, což uspoří nějakou tu paměťovou propustnost. Podle Nvidie nedošlo k zásadním změnám, ale výkonnostní propad byl v případě aktivace snížen o 66%, ale bohužel se stále nedozvíme, kolik to znamená v přesných číslech.
Tesla K20 přináší trojnásobný výkon v oblasti FP32 a dvojnásobný, pokud se týká FP64. Rozdíl mezi výkonem FP32 a FP64 je samozřejmě jasně patrný, ale to ovšem neznamená, že by Nvidia nechtěla dodržet to, co slíbila, ale jde na to jinak. Ztrojnásobit hardwarové prostředky umí každý, ale využít efektivně stávající a dosáhnout tím ve výsledku požadované výkony, to je ta cesta, kterou se Nvidia ubírá.
Protože Nvidia se soustředí téměř výhradně na to, aby Tesla K20 měla tu nejlepší možnou výkonnost, tak zde máme nové technologie pro dosažení maximální efektivity. HyperQ a Dynamic Parallelism jsou takovéto technologie a my si je popíšeme dále.
Hyper-Q
Hyper je ukázkou toho, jak někdy velmi jednoduchá řešení dokáží být ta nejúčinnější. HyperQ je v podstatě pojmenování toho, že Nvidia rozšířila počet úloh, které můžeme přiřadit SMX jednotce. Jádro GF100 (Fermi) toto neumělo a dokázalo SMX přiřadit pouze jedinou úlohu, ale novější jádro GK110 už jich umí rovnou 32. HyperQ musí prostě vytížit všechny SMX (SM) jednotky tak, aby bylo dosaženo co možná nejvyššího výkonu. Obecný problém paralelních architektur je právě vytížení jednotek tak, aby bylo dosaženo maximální efektivity.
Dynamic Parallelism
Druhou zajímavou novinkou je Dynamic Parallelism, která skrývá funkčnost dynamické tvorby dalších threadů v rámci zpracovávání kódu. Ve starších architekturách jako je Fermi do toho muselo zasáhnout také CPU. V případě Kepleru GK110 už nemusí, což může znamenat v určitých ohledech výhodu pro specifické GPGPU aplikace. Radost budou mít především vývojáři GPGPU aplikací. Bližší podrobnosti o celé architektuře můžeme od Nvidie očekávat snad ve 3. kvartále tohoto roku. Velmi zajímavé bude sledovat, jaké aplikace se budou na tomto supervýkonném jádru stavět, a zda se konečně dočkáme nějakého superpočítače založeného na Tesla K20, který se postaví do čela výkonnostního žebříčku. Prozatím je na 6. místě Jaguar s kombinací AMD Opteron a Nvidia Tesla 2090.
Vylepšený Error Code Correction (ECC)
Nvidia udělala významné pokroky také u ECC (Error Code Correction), kde GK 110 využívá nového ECC algoritmu. Tesla K20 má implementováno DRAM ECC do software bez nutnosti rozšiřovat kapacitu paměti pro kontrolní bit. ECC také může být v případě nutnosti deaktivována, což uspoří nějakou tu paměťovou propustnost. Podle Nvidie nedošlo k zásadním změnám, ale výkonnostní propad byl v případě aktivace snížen o 66%, ale bohužel se stále nedozvíme, kolik to znamená v přesných číslech.