Sdílet prostřednictvím


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 .runnajdete 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