Dela via


Konfigurera GPU-specifika paket i Linux

I det här avsnittet beskrivs de paket som du behöver konfigurera för att CNTK ska kunna utnyttja NVIDIA-GPU:er.

Kontrollera GPU-kompatibiliteten och få den senaste drivrutinen

Du behöver ett CUDA-kompatibelt grafikkort för att kunna använda CNTK GPU-funktioner. Du kan kontrollera om kortet är CUDA-kompatibelt här och här (för äldre kort). GPU-kortets beräkningskapacitet (CC) måste vara 3,0 eller mer.

Om du har det kort som krävs installerar du den senaste drivrutinen:

  • Välj ditt kort och ladda ned drivrutinspaketet härifrån (vanligtvis tillgängligt som .run fil)

  • Om X Windows-hanteraren körs misslyckas troligen drivrutinsinstallationen. Öppna en fjärrterminalsession på datorn och stoppa X-Windows hanteraren. Se plattformsdokumentationen för de exakta kommandona.

Exempel: För Ubuntu använder du följande kommando (förutsatt att lightdm är din X-Windows manager):

sudo stop lightdm
  • Installera drivrutinen som i exemplet nedan (observera att filnamnet kan vara annorlunda för ditt system):
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run
sudo ./NVIDIA-Linux-x86_64-384.111.run

Vi rekommenderar att du godkänner standardinstallationsalternativen

Observera att drivrutinsinstallationsprogrammet kan klaga på nouveau kernel-drivrutinen. I din plattformsdokumentation finns instruktioner för hur du inaktiverar den. För Ubuntu kan du använda den här uppsättningen instruktioner.

  • Om det stoppas under stegen ovan startar du X Windows manager. Se plattformsdokumentationen för de exakta kommandona.

Exempel: För Ubuntu använder du följande kommando (om det är lightdm din X-Windows chef):

sudo start lightdm

CUDA 9

I proceduren nedan förklaras hur du installerar CUDA med fildistribution .run . Du kan också använda DEB installationen eller RPM paketinstallationen. Du hittar paketet för ditt system på NVIDIA CUDA 9.0 Nedladdningssida och installationsanvisningar i CUDA Online-dokumentationen.

Ladda ned och installera NVIDIA CUDA 9.0 Toolkit:

  • Leta upp .run filen för din plattform här och ladda ned den.

  • Om X Windows-hanteraren körs misslyckas troligen installationen. Öppna en fjärrterminalsession på datorn och stoppa X-Windows hanteraren. Se plattformsdokumentationen för de exakta kommandona.

Exempel: För Ubuntu använder du följande kommando (om det är lightdm din X-Windows chef):

sudo stop lightdm
  • Installera CUDA 9.0 Toolkit (observera att .run filnamnet kan vara annorlunda för ditt system):
chmod +x ./cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run

När du uppmanas av installationsprogrammet:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit:

Välj no om du redan har installerat den senaste drivrutinen genom att utföra stegen i föregående avsnitt. Om du inte har gjort det väljer du yes, men vi rekommenderar starkt att du uppdaterar till den senaste drivrutinen när du har installerat CUDA Toolkit.

Om du nekade drivrutinsinstallationen från CUDA 9.0-paketet får du följande varning i slutet av installationen:

***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

Ignorera den här varningen.

Om det stoppas under stegen ovan startar du X Windows manager. I din plattformsdokumentation finns exakta kommandon.

Exempel: För Ubuntu använder du följande kommando (om det är lightdm din X-Windows chef):

sudo start lightdm

Lägg till följande miljövariabel i den aktuella sessionen och din .bashrc profil (om du ändrade standardsökvägarna under CUDA-installationen ändrar du värdena nedan):

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

Nästa steg är valfritt. Du kan gå vidare till nästa avsnitt.

VALFRI. Verifiera cuda 9.0-installationen

Du kan verifiera CUDA-installationen genom att kompilera CUDA-exemplen (vi antar att standardsökvägarna användes under CUDA-installationen). Observera att det är en lång åtgärd att skapa alla exempel:

cd ~/NVIDIA_CUDA-9.0_Samples/
make

Efter den lyckade build-anropsverktyget deviceQuery :

~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery/deviceQuery

Om allt fungerar bra bör du få utdata som liknar dem nedan:

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

GPU Deployment Kit

Från och med CUDA version 8 är GPU Deployment Kit en del av CUDA-paketet och behöver inte längre installeras separat.

cuDNN

Installera NVIDIA CUDA Deep Neural Network Library (cuDNN).

Viktigt

Om du tidigare har installerat cuDNN för en äldre version kontrollerar du att du uppgraderar till den CUDA 9.0-kompatibla versionen

Viktigt

Installera cuDNN med den exakta versionen och målsökvägen enligt nedanstående. Detta är nödvändigt eftersom det förväntas av CNTK build-konfigurationsprogrammet.

  • Använd följande kommandon:
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

VALFRI. NCCL

NVIDIA:s NCCL-bibliotek innehåller optimerade primitiver för kollektiv multi-GPU-kommunikation i Linux. CNTK kan dra nytta av dessa accelererade primitiver för parallella jobb som körs på en enda värd (se här för en introduktion till parallell träning med CNTK).

Följ anvisningarna här för att ladda ned NVIDIA NCCL-biblioteket.

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

Använd sedan alternativet --with-nccl=<path> CNTK konfigurera för att skapa med NVIDIA NCCL. Om NCCL till exempel är installerat i en annan mapp än standardmappen /usranvänder du configure --with-nccl=<nccl install folder> (plus ytterligare alternativ) för att skapa med NVIDIA NCCL-stöd.

Anteckning

För närvarande är CNTK stöd för NVIDIA NCCL begränsat till dataparallell SGD med 32/64 toningsbitar, med hjälp av CNTK binärfil. Stöd för ytterligare parallelliseringsmetoder och CNTK v2 kommer att läggas till i framtiden. Den officiella versionen av CNTK skapas med NCCL aktiverat. Alla Linux-Python hjul innehåller redan NCCL-binärfil. För Brainscript-användare i Linux måste NCCL installeras. Om användaren föredrar att inte använda NCCL skapar du CNTK från källan. Observera att konfigurera automatiskt identifierar NCCL som installerats under /usr, så avinstallera NCCL innan du skapar.

CUB

Om du installerar CNTK för Python kan du gå vidare till nästa avsnitt. Annars fortsätter du vidare.

Hämta och installera NVIDIA CUB med hjälp av kommandona nedan.

Viktigt

Installera NVIDIA CUB med den exakta versionen och målsökvägen enligt nedanstående. Detta är nödvändigt eftersom det förväntas av CNTK build-konfigurationsprogrammet.

Använd följande kommandon:

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