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 /usr
anvä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