Po nějaké době co se mi v počítačích ohřívaly různé kombinace GPU jak od AMD tak Nvidia s Ubuntu 18.04 a kdy jsem je rozjížděl společně a optimalizoval na výkon jsem se rozhodl se všemi co s linuxem každodenně zápasí o tu naši porci bodů vezdejších podělit, jak jsem pochodil. Existuje názor, že windows mají o desítky procent vyšší výkon při použití GPU než linux. Tento názor je a není pravdivý, dost tu totiž záleží jak to všechno nastavíte okolo, tučňák vám totiž nedá nic zadarmo ale správný hmat z něj udělá bodový oslíčku otřes se.
1. Kombinace AMD karet
V současnosti není velký problém namíchat si i několik GPU naráz, a to i různých generací za předpokladu že se jedná o podporovaný hardware. Důležité je jen jaký ovladač použijete. Existují 3 základní varianty - open source amd ovladač v rámci distribuce, dostupný okamžitě a potom od výrobce AMD ovladač amdgpu a amdgpu-pro (název různý ale instalační balíček stejný, liší se pouze jaké OpenGl, OpenCl, Vulkan a další možnosti se defaultně instalují). Rozdíly mezi nimi jsou v OpenCl ale podstatné. Základní ovladač v systému používá mesa knihovny na vše a jeho předností je veliká kompatibilita - smíchal jsem Vegu, Polaris a Bonaire do jednoho mixu a fungovalo to bez problémů. Nevýhodou je nejnižší výkon v OpenCl, vychází to zhruba od 83 - 60% možného podle hardwaru co používáte a to už se na Boinc moc nevyplatí. Zajímavé je to pouze pokud neřešíte spotřebu energie, aktuální nižší výkon vám nevadí (do budoucna bude docházet k postupému vyrovnávání ale to je ještě hudba budoucnost) a potřebujete bezbolestně smíchat dohromady různé generace či kategorie (profi/herní) GPU a neřešit verze kernelu a distribucí.
Druhá možnost je použít propriteární ovladač poskytovaný AMD. Velmi podrobný návod je zde:
https://amdgpu-install.readthedocs.io/en/amd-18.30/ Vypíchl bych že pro GPU starší než Vega10 se doporučuje instalovat s volbou ./amdgpu-install -y --opencl=legacy , pro Vega10 a novější --opencl=pal nebo --opencl=pal, legacy. Legacy je pomalejší než PAL, u vegy se jedná o cca 13,3 ku 8,3 GFlops což je docela poznat. Mixovat vegu se staršími generacemi GPU polaris či bonaire se mi neosvědčilo, ovladač se použije pomalejší pro celý systém, kdy rychlost v opencl je stejná jako u opensource ovladače a máte hodně omezené možnosti na jaké jádro a distribuci můžete instalovat nebo při použití pal starší karty nepočítají ač je systém vidí. Užitečné je to jen když potřebujete Vulkan/proprietární OpenGL či specifické video akcelerační funkce, případně máte 2 hardwarově stejné karty.
Třetí volba je použít ovladač OpenCl pal volbou ./amdgpu-pro-install -y --opencl=pal, nevýhodou je že můžete použít pouze generaci vega ale když máte kupříkladu nové APU od AMD a k němu Vegu, dostanete duální konfiguraci s nejlepším výkonem. Boinc pro Vega 64 ve svém benchmarku hlásí o něco vyšší výkon než má GeForce 1080Ti (13,3 ku 11,9TFlop) ovšem energetická efektivnost i reálný aplikační výkon 1080Ti je lepší, záleží na optimalizaci aplikace, kupříkladu v collatz conjecture je to 6,5 ku 5,5 minutám ve prospěch Geforce. Tato kombinace se tedy
nehodí pro nic co není generace vega nebo mix s vegou, ale jestli ji máte, tak poskytne výrazně vyšší výkon.
3. Kombinace AMD a NVIDIA karet
Rozjet tuto kombinaci je buď relativně snadné s tím, že obětujete výkon AMD, nebo relativně obtížné či zatím pro mě nemožné rozběhnout. Mám k dispozici 1 GeForce 1080Ti, kterou jsem míchal s kartami AMD.
Nejsnadnější varianta je nainstalovat proprietární ovladač pro nvidii a tuto kartu mít jako hlavní a následně přidat kartu AMD a běžet na opensource ovladači. Výkon AMD je na OpenCl nejhorší ale funguje to "out of the box." Nemusíte nic nastavovat a nevyskytly se mi žádné potíže s rozběhnutím X serveru a GUI. Vysoký výkon Nvidie to trochu kompenzuje a když máte úspornou AMD kartu, která by jinak zahálela a nemáte moc zkušeností, je to myslím dobrá volba ač ne nejrychlejší.
Druhá, výrazně komplikovanější varianta je donutit obě karty používat proprietární ovladače. Zde se musí postupovat velmi přesně podle návodu, karty fyzicky vyndávat z počítače a musíte umět hodně ohledně nastavování grub, instalaci ovladačů nvidia v textovém režimu a určitě mít druhý počítač s putty a nainstalované ssh na vašem stroji. Funkční návod (i pro Ubuntu 18.04) na karty před generací vega (otestováno s polaris a bonaire) je zde:
https://askubuntu.com/questions/892532/ ... untu-16-04. Důrazně bych ale chtěl varovat všechny co nejsou moc silní v kramflecích s konzolí aby se do toho pouštěli jen na počítači, kde nebude vadit, že se rozsype grafika a nebude fungovat nic kromě vzdálené správy přes ssh, tedy musíte mít k dispozici další počítač s putty. Karty se ale dají kdykoliv vyndat a pokud je v systému jen 1 kus, zase vše začne fungovat. Tedy nemusíte se bát, že si tímto trvale rozbijete systém, pokud si ho tedy náhodou nerozbijete sami.
Přinejhorším odinstalujete jeden ovladač vzdáleně a dostanete se spolehlivě do bodu 1 funkční karta. Výsledný výkon v OpenCl je o poznání vyšší i pro hardware AMD. Co jsem zatím nebyl schopný zvládnut je rozběhnout vegu s 1080Ti s ovladačem pal, který ji z užrané popelky vyšvihne na ač stále užraný tak obdobný výkonnostní level. Situace by se mohla zlepšit s novými jádry 4.18/20, která výrazně rozšířenou podporu pro hardware vegy přidávají v nativním formátu, tedy opensource ovladač bude opět o poznání rychlejší.
3. Karty NVIDIA
Pro karty Nvidia lze použít příjemný konzolový prográmek nvidia-smi a snadno jim změnit plánované TDP volbou sudo nvidia-smi -pl XXX kdy za X si dosadíte číslo, kupříkladu 300 (W) což je limit pro 1080Ti co mám ze standardních 250W. Samozřejmě to jde i směrem dolů, tedy můžete i šetřit energii za nižší výkon nebo snížíte hlučnost. Kdo hledá starší verze ovladačů, nvidia má pěkný archiv
https://www.nvidia.com/object/linux-amd ... chive.html Přetaktovávači také snadno aktivují Powermizer v konzoli příkazem sudo nvidia-xconfig --cool-bits=12 , což je šikovné zejména se zvýšením TDP na kartě
.
http://www.ckode.dk/linux/overclocking- ... -on-linux/ Přetaktovávat bych pro boinc nedoporučoval ale kdo chce, tu možnost má celkem jednoduše k dispozici.
Pro plné využití potenciálu vašeho hardwaru je ve všech případech nutné dále použít konfigurační soubory pro specifické nastavení projektů, dostupné zde na fóru. U collatz conjecture se jedná u nvidie o polovinu původního času, karty AMD s využitím proprietárních ovladačů mohou dosáhnout i více než o polovinu kratší doby výpočtu oproti původním hodnotám. Tedy ve finále se trocha šťourání a tweakování bohatě vyplatí.