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 yes
deze, 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