Microsoft Cognitive Toolkit (CNTK) - CPU e GPU

O Microsoft Cognitive Toolkit oferece duas versões de compilação diferentes, ou seja, somente CPU e somente GPU.

Versão de compilação apenas para CPU

A versão compilada apenas para CPU do CNTK usa o Intel MKLML otimizado, onde MKLML é o subconjunto de MKL (Math Kernel Library) e lançado com Intel MKL-DNN como uma versão finalizada do Intel MKL para MKL-DNN.

GPU apenas compilar versão

Por outro lado, a versão compilada apenas para GPU do CNTK usa bibliotecas NVIDIA altamente otimizadas, como CUB e cuDNN. Ele oferece suporte a treinamento distribuído em várias GPUs e máquinas. Para um treinamento distribuído ainda mais rápido em CNTK, a versão de construção de GPU também inclui -

  • SGD quantizado de 1 bit desenvolvido por MSR.

  • Algoritmos de treinamento paralelo SGD de momento de bloco.

Habilitando GPU com CNTK no Windows

Na seção anterior, vimos como instalar a versão básica do CNTK para usar com a CPU. Agora vamos discutir como podemos instalar o CNTK para usar com uma GPU. Mas, antes de se aprofundar nisso, primeiro você deve ter uma placa de vídeo compatível.

No momento, o CNTK oferece suporte à placa de vídeo NVIDIA com pelo menos suporte CUDA 3.0. Para ter certeza, você pode verificar em https://developer.nvidia.com/cuda-gpus se sua GPU suporta CUDA.

Então, vamos ver as etapas para habilitar a GPU com CNTK no sistema operacional Windows -

Step 1 - Dependendo da placa de vídeo que você está usando, primeiro você precisa ter os drivers GeForce ou Quadro mais recentes para sua placa de vídeo.

Step 2 - Depois de baixar os drivers, você precisa instalar o kit de ferramentas CUDA versão 9.0 para Windows do site da NVIDIA https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64. Após a instalação, execute o instalador e siga as instruções.

Step 3 - Em seguida, você precisa instalar os binários cuDNN do site da NVIDIA https://developer.nvidia.com/rdp/form/cudnn-download-survey. Com a versão CUDA 9.0, cuDNN 7.4.1 funciona bem. Basicamente, cuDNN é uma camada no topo do CUDA, usada pelo CNTK.

Step 4 - Depois de baixar os binários cuDNN, você precisa extrair o arquivo zip para a pasta raiz da instalação do kit de ferramentas CUDA.

Step 5- Esta é a última etapa que permitirá o uso da GPU dentro do CNTK. Execute o seguinte comando dentro do prompt do Anaconda no sistema operacional Windows -

pip install cntk-gpu

Ativando GPU com CNTK no Linux

Vamos ver como podemos habilitar GPU com CNTK no sistema operacional Linux -

Baixando o kit de ferramentas CUDA

Primeiro, você precisa instalar o kit de ferramentas CUDA do site da NVIDIA https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type = runfilelocal .

Executando o instalador

Agora, uma vez que você tenha binários no disco, execute o instalador abrindo um terminal e executando o seguinte comando e a instrução na tela -

sh cuda_9.0.176_384.81_linux-run

Modificar script de perfil Bash

Depois de instalar o kit de ferramentas CUDA em sua máquina Linux, você precisa modificar o script de perfil BASH. Para isso, primeiro abra o arquivo $ HOME / .bashrc no editor de texto. Agora, no final do script, inclua as seguintes linhas -

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Installing

Instalando bibliotecas cuDNN

Por fim, precisamos instalar os binários cuDNN. Ele pode ser baixado do site da NVIDIAhttps://developer.nvidia.com/rdp/form/cudnn-download-survey. Com a versão CUDA 9.0, cuDNN 7.4.1 funciona bem. Basicamente, cuDNN é uma camada no topo do CUDA, usada pelo CNTK.

Depois de baixar a versão para Linux, extraia-a para o /usr/local/cuda-9.0 pasta usando o seguinte comando -

tar xvzf -C /usr/local/cuda-9.0/ cudnn-9.0-linux-x64-v7.4.1.5.tgz

Altere o caminho para o nome do arquivo conforme necessário.