Nastavení balíčků specifických pro GPU v Linuxu
Tato část popisuje balíčky, které potřebujete nastavit, aby CNTK využívat grafické procesory NVIDIA.
Kontrola kompatibility GPU a získání nejnovějšího ovladače
K dispozici je grafická karta kompatibilní s CUDA pro použití CNTK funkcí GPU. Tady můžete zkontrolovat, jestli je vaše karta kompatibilní s CUDA a tady (pro starší karty). Výpočetní funkce karty GPU (CC) musí být 3.0 nebo více.
Pokud máte požadovanou kartu, nainstalujte nejnovější ovladač:
Vyberte kartu a stáhněte balíček ovladačů odsud (obvykle je k dispozici jako
.run
soubor).Pokud je váš správce X Windows spuštěný, instalace ovladače pravděpodobně selže. Otevřete relaci vzdáleného terminálu na svém počítači a zastavte správce Windows X. Přesné příkazy najdete v dokumentaci k vaší platformě.
Příklad: Pro Ubuntu použijte následující příkaz (za předpokladulightdm
, že je vaším správcem X Windows):
sudo stop lightdm
- Nainstalujte ovladač jako v následujícím příkladu (všimněte si, že název souboru se může pro váš systém lišit):
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run
sudo ./NVIDIA-Linux-x86_64-384.111.run
Doporučujeme přijmout výchozí možnosti instalace.
Upozorňujeme, že instalační program ovladače si může stěžovat na ovladač jádra nouveau. Pokyny k zakázání najdete v dokumentaci k vaší platformě. Pro Ubuntu můžete použít tuto sadu pokynů.
- Pokud se během výše uvedených kroků zastavíte, spusťte X Windows manager. Přesné příkazy najdete v dokumentaci k vaší platformě.
Příklad: Pro Ubuntu použijte následující příkaz (v případě správce lightdm
Windows X):
sudo start lightdm
CUDA 9
Následující postup vysvětluje, jak nainstalovat CUDA pomocí .run
distribuce souborů. Můžete také použít DEB
instalaci RPM
balíčků nebo balíčků. Balíček pro váš systém najdete na stránce ke stažení a instalaci NVIDIA CUDA 9.0 v dokumentaci CUDA Online.
Stáhněte a nainstalujte Toolkit NVIDIA CUDA 9.0:
Soubor pro vaši platformu
.run
najdete tady a stáhněte si ho.Pokud je váš správce X Windows spuštěný, instalace pravděpodobně selže. Otevřete relaci vzdáleného terminálu na svém počítači a zastavte správce Windows X. Přesné příkazy najdete v dokumentaci k vaší platformě.
Příklad: Pro Ubuntu použijte následující příkaz (v případě vašeho lightdm
správce Windows X):
sudo stop lightdm
- Nainstalujte Toolkit CUDA 9.0 (všimněte si, že
.run
název souboru může být pro váš systém jiný):
chmod +x ./cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run
Po zobrazení výzvy instalačním programem:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit:
Vyberte no
, jestli jste už nainstalovali nejnovější ovladač, a to provedením kroků v předchozí části. Pokud jste to neudělali, vyberte yes
, ale důrazně doporučujeme po instalaci sady nástrojů CUDA aktualizovat na nejnovější ovladač.
Pokud jste instalaci ovladače odmítli z balíčku CUDA 9.0, zobrazí se na konci instalace následující upozornění:
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Toto upozornění ignorujte.
Pokud se během výše uvedených kroků zastavíte, spusťte X Windows manager. Přesné příkazy najdete v dokumentaci k vaší platformě.
Příklad: Pro Ubuntu použijte následující příkaz (v případě vašeho lightdm
správce X Windows):
sudo start lightdm
Do aktuální relace a profilu .bashrc
přidejte následující proměnnou prostředí (pokud jste během instalace CUDA upravili výchozí cesty, změňte hodnoty níže):
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
Další krok je volitelný. Můžete přejít k další části.
VOLITELNÉ. Ověření instalace CUDA 9.0
Instalaci CUDA můžete ověřit kompilací ukázek CUDA (předpokládáme, že se během instalace CUDA použily výchozí cesty). Všimněte si, že sestavení všech ukázek je zdlouhavá operace:
cd ~/NVIDIA_CUDA-9.0_Samples/
make
Po úspěšném spuštění nástroje pro vyvolání deviceQuery
sestavení:
~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery/deviceQuery
Pokud všechno funguje dobře, měli byste získat výstup podobný následujícímu:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 960"
CUDA Driver Version / Runtime Version 9.0 / 9.0
CUDA Capability Major/Minor version number: 5.2
Total amount of global memory: 2025 MBytes (2123235328 bytes)
( 8) Multiprocessors, (128) CUDA Cores/MP: 1024 CUDA Cores
GPU Max Clock rate: 1253 MHz (1.25 GHz)
Memory Clock rate: 3505 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 1048576 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 3 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1, Device0 = GeForce GTX 960
Result = PASS
Sada pro nasazení GPU
Od CUDA verze 8 je sada GPU Deployment Kit součástí balíčku CUDA a už se nevyžaduje samostatně.
cuDNN
Nainstalujte knihovnu NVIDIA CUDA Deep Neural Network (cuDNN).
Důležité
Pokud jste dříve nainstalovali cuDNN pro starší verzi, ujistěte se, že upgradujete na kompatibilní verzi CUDA 9.0.
Důležité
Nainstalujte cuDNN pomocí přesné verze a cílové cesty, jak je uvedeno níže. To je nezbytné, protože je očekáváno CNTK konfiguračním programem sestavení.
- Použijte následující příkazy:
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb
VOLITELNÉ. NCCL
Knihovna NCCL SPOLEČNOSTI NVIDIA poskytuje optimalizované primitivy pro kolektivní komunikaci s více GPU v Linuxu. CNTK může využít tyto akcelerované primitivy pro paralelní úlohy běžící na jednom hostiteli (viz zde pro úvod do paralelního trénování s CNTK).
Pokud chcete stáhnout knihovnu NVIDIA NCCL, postupujte podle pokynů zde .
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl-dev_2.1.2-1+cuda9.0_amd64.deb
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl2_2.1.2-1+cuda9.0_amd64.deb
sudo dpkg -i libnccl2_2.1.2-1+cuda9.0_amd64.deb libnccl-dev_2.1.2-1+cuda9.0_amd64.deb
Potom pomocí možnosti --with-nccl=<path>
konfigurace CNTK povolte vytváření pomocí nvidia NCCL.
Pokud je například seznam NCCL nainstalovaný ve složce kromě výchozí složky /usr
, použijte configure --with-nccl=<nccl install folder>
(plus další možnosti) k sestavení s podporou NVIDIA NCCL.
Poznámka
V současné době CNTK podpora nvidia NCCL je omezena na datově paralelní SGD s 32/64 přechodovými bity pomocí binárního CNTK. V budoucnu se přidá podpora dalších metod paralelizace a CNTK v2. Oficiální vydání CNTK je sestaveno s povoleným seznamem NCCL. Všechna kola Pythonu pro Linux už obsahují binární soubor NCCL. Pro uživatele brainscriptu v Linuxu je potřeba nainstalovat seznam NCCL. Pokud uživatel raději nepoužívá seznam NCCL, sestavte CNTK ze zdroje. Mějte na paměti, že konfigurace automaticky detekuje seznam NCCL nainstalovaný v /usr, proto před sestavením odinstalujte seznam NCCL.
MLÁDĚ
Pokud instalujete CNTK pro Python, můžete přejít k další části. V opačném případě pokračujte dál.
Získejte a nainstalujte NVIDIA CUB pomocí následujících příkazů.
Důležité
Nainstalujte NVIDIA CUB pomocí přesné verze a cílové cesty, jak je uvedeno níže. To je nezbytné, protože je očekáváno CNTK konfiguračním programem sestavení.
Použijte následující příkazy:
wget https://github.com/NVlabs/cub/archive/1.7.4.zip
unzip ./1.7.4.zip
sudo cp -r cub-1.7.4 /usr/local