Delen via


GPU-specifieke pakketten instellen in Linux

In deze sectie vindt u een overzicht van de pakketten die u moet instellen, zodat CNTK gebruik kan maken van NVIDIA GPU's.

Uw GPU-compatibiliteit controleren en het meest recente stuurprogramma downloaden

U hebt een CUDA-compatibele grafische kaart nodig die beschikbaar is voor het gebruik van CNTK GPU-mogelijkheden. U kunt controleren of uw kaart hier en hier (voor oudere kaarten) compatibel is met CUDA. Uw GPU-kaart Compute Capability (CC) moet 3.0 of meer zijn.

Als u de vereiste kaart hebt, installeert u het nieuwste stuurprogramma:

  • Selecteer uw kaart en download het stuurprogrammapakket hier (meestal beschikbaar als .run bestand)

  • Als uw X Windows manager wordt uitgevoerd, mislukt de installatie van het stuurprogramma waarschijnlijk. Open een externe terminalsessie op uw computer en stop de X Windows manager. Raadpleeg uw platformdocumentatie voor de exacte opdrachten.

Voorbeeld: voor Ubuntu gebruikt u de volgende opdracht (ervan uitgaande dat lightdm uw X-Windows manager is):

sudo stop lightdm
  • Installeer het stuurprogramma zoals in het onderstaande voorbeeld (houd er rekening mee dat de bestandsnaam mogelijk anders is voor uw systeem):
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run
sudo ./NVIDIA-Linux-x86_64-384.111.run

We raden u aan de standaardinstallatieopties te accepteren

Houd er rekening mee dat het installatieprogramma van het stuurprogramma kan klagen over nouveau kernel driver. Raadpleeg de documentatie van uw platform voor instructies voor het uitschakelen ervan. Voor Ubuntu kunt u deze set instructies gebruiken.

  • Als deze is gestopt tijdens de bovenstaande stappen, start u X Windows manager. Raadpleeg uw platformdocumentatie voor de exacte opdrachten.

Voorbeeld: voor Ubuntu gebruikt u de volgende opdracht (in het geval van lightdm uw X Windows manager):

sudo start lightdm

CUDA 9

In de onderstaande procedure wordt uitgelegd hoe u CUDA installeert met behulp van .run bestandsdistributie. U kunt ook de installatie van pakketten gebruikenDEB.RPM U vindt het pakket voor uw systeem op NVIDIA CUDA 9.0 Downloadpagina en installatie-instructies in CUDA Online-documentatie.

Download en installeer de NVIDIA CUDA 9.0 Toolkit:

  • Zoek het .run bestand voor uw platform hier en download het.

  • Als uw X Windows manager wordt uitgevoerd, mislukt de installatie waarschijnlijk. Open een externe terminalsessie op uw computer en stop de X Windows manager. Raadpleeg uw platformdocumentatie voor de exacte opdrachten.

Voorbeeld: voor Ubuntu gebruikt u de volgende opdracht (in het geval van lightdm uw X Windows manager):

sudo stop lightdm
  • Installeer de CUDA 9.0-Toolkit (houd er rekening mee dat de .run bestandsnaam mogelijk anders is voor uw systeem):
chmod +x ./cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run

Wanneer u hierom wordt gevraagd door het installatieprogramma:

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

Selecteer no of u het meest recente stuurprogramma al hebt geïnstalleerd door de stappen in de vorige sectie uit te voeren. Als u dit nog niet hebt gedaan, selecteert u yesdeze, maar het wordt ten zeerste aangeraden om na de installatie van de CUDA-toolkit bij te werken naar het nieuwste stuurprogramma.

Als u de installatie van het stuurprogramma van het CUDA 9.0-pakket hebt geweigerd, krijgt u de volgende waarschuwing aan het einde van de installatie:

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

Negeer deze waarschuwing.

Als deze is gestopt tijdens de bovenstaande stappen, start u X Windows manager. Raadpleeg uw platformdocumentatie voor exacte opdrachten.

Voorbeeld: voor Ubuntu gebruikt u de volgende opdracht (in het geval van lightdm uw X-Windows manager):

sudo start lightdm

Voeg de volgende omgevingsvariabele toe aan uw huidige sessie en uw .bashrc profiel (als u de standaardpaden tijdens de CUDA-installatie hebt gewijzigd, wijzigt u de onderstaande waarden):

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

De volgende stap is optioneel. U kunt verdergaan naar de volgende sectie.

OPTIONELE. CUDA 9.0-installatie controleren

U kunt uw CUDA-installatie controleren door de CUDA-voorbeelden te compileren (we gaan ervan uit dat de standaardpaden zijn gebruikt tijdens de CUDA-installatie). Houd er rekening mee dat het bouwen van alle steekproeven een langdurige bewerking is:

cd ~/NVIDIA_CUDA-9.0_Samples/
make

Nadat het hulpprogramma voor het aanroepen deviceQuery van de build is geslaagd:

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

Als alles goed werkt, moet u een uitvoer krijgen die vergelijkbaar is met de uitvoer hieronder:

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

Vanaf CUDA versie 8 maakt de GPU Deployment Kit deel uit van het CUDA-pakket en hoeft deze niet meer afzonderlijk te worden geïnstalleerd.

cuDNNN

Installeer NVIDIA CUDA Deep Neural Network Library (cuDNN).

Belangrijk

Als u cuDNN eerder hebt geïnstalleerd voor een oudere versie, moet u ervoor zorgen dat u een upgrade uitvoert naar de compatibele CUDA 9.0-versie

Belangrijk

Installeer cuDNN met behulp van de exacte versie en het doelpad zoals hieronder is opgegeven. Dit is nodig omdat dit wordt verwacht door het CNTK buildconfiguratieprogramma.

  • Gebruik de volgende opdrachten:
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

OPTIONELE. NCCL

DE NCCL-bibliotheek van NVIDIA biedt geoptimaliseerde primitieven voor collectieve multi-GPU-communicatie op Linux. CNTK kan profiteren van deze versnelde primitieven voor parallelle taken die worden uitgevoerd op één host (zie hier voor een inleiding tot parallelle training met CNTK).

Volg hier de instructies om de NVIDIA NCCL-bibliotheek te downloaden.

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

Gebruik vervolgens de optie --with-nccl=<path> CNTK configureren om bouwen met NVIDIA NCCL in te schakelen. Als NCCL bijvoorbeeld is geïnstalleerd in andere map dan de standaardmap /usr, gebruikt u configure --with-nccl=<nccl install folder> (plus aanvullende opties) om te bouwen met NVIDIA NCCL-ondersteuning.

Notitie

Momenteel is de ondersteuning van CNTK voor NVIDIA NCCL beperkt tot gegevensparallel SGD met 32/64 kleurovergangsbits, met behulp van het binaire CNTK. Ondersteuning voor aanvullende parallelle methoden en CNTK v2 wordt in de toekomst toegevoegd. De officiële release van CNTK is gebouwd met NCCL ingeschakeld. Alle linux Python wielen bevatten al NCCL binair bestand. Voor Brainscript-gebruikers op Linux moet NCCL worden geïnstalleerd. Als de gebruiker liever geen NCCL gebruikt, maakt u CNTK van de bron. Houd er rekening mee dat met de configuratie automatisch NCCL wordt gedetecteerd die is geïnstalleerd onder /usr, dus verwijder NCCL voordat u bouwt.

CUB

Als u CNTK installeert voor Python, kunt u doorgaan naar de volgende sectie. Ga anders verder.

Download en installeer NVIDIA CUB met behulp van de onderstaande opdrachten.

Belangrijk

Installeer NVIDIA CUB met behulp van de exacte versie en het doelpad zoals hieronder is opgegeven. Dit is nodig omdat dit wordt verwacht door het CNTK buildconfiguratieprogramma.

Gebruik de volgende opdrachten:

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