Microsoft Cognitive Toolkit 简明教程

Microsoft Cognitive Toolkit (CNTK) - CPU and GPU

Microsoft Cognitive Toolkit 提供了两种不同的构建版本,即仅限 CPU 和仅限 GPU。

CPU only build version

仅限 CPU 的 CNTK 构建版本使用优化的 Intel MKLML,其中 MKLML 是 MKL(Math Kernel Library)的子集,并且随 Intel MKL-DNN 一起作为 Intel MKL 的终止版本发布,以供 MKL-DNN 使用。

GPU only build version

另一方面,仅限 GPU 的 CNTK 构建版本使用高度优化的 NVIDIA 库,例如 CUBcuDNN 。它支持跨多个 GPU 和多个机器进行分布式训练。为了让 CNTK 在分布式训练中运行得更快,GPU 构建版本还包括: −

  1. MSR-developed 1bit-quantized SGD.

  2. 与 Block-momentum SGD 平行的训练算法。

Enabling GPU with CNTK on Windows

在上一节中,我们了解了如何安装 CNTK 的基本版本以与 CPU 配合使用。现在让我们讨论如何安装 CNTK 以与 GPU 配合使用。但是,在深入了解之前,你首先应该拥有一个受支持的显卡。

目前,CNTK 支持至少支持 CUDA 3.0 的 NVIDIA 显卡。要确保支持,你可以通过 https://developer.nvidia.com/cuda-gpus 检查你的 GPU 是否支持 CUDA。

因此,让我们了解一下在 Windows 操作系统上使用 CNTK 启用 GPU 的步骤 −

Step 1 − 根据你正在使用的显卡,首先你需要为你的显卡配备最新的 GeForce 或 Quadro 驱动程序。

Step 2 − 下载完驱动程序后,你需要从 NVIDIA 网站 https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64 安装 Windows 版 CUDA 工具包版本 9.0。安装完毕后,运行安装程序并按照说明操作。

Step 3 − 接下来,你需要从 NVIDIA 网站 https://developer.nvidia.com/rdp/form/cudnn-download-survey 安装 cuDNN 二进制文件。使用 CUDA 9.0 版本时,cuDNN 7.4.1 会运行良好。基本上,cuDNN 是 CUDA 之上的一个层,由 CNTK 使用。

Step 4 − 下载 cuDNN 二进制文件后,你需要将 zip 文件解压缩到 CUDA 工具包安装的根文件夹中。

Step 5 − 这是最后一步,它将在 CNTK 中启用 GPU 使用。在 Windows 操作系统上的 Anaconda 提示符中执行以下命令 −

pip install cntk-gpu

Enabling GPU with CNTK on Linux

让我们了解一下如何在 Linux 操作系统上使用 CNTK 启用 GPU −

Downloading the CUDA toolkit

首先,你需要从 NVIDIA 网站链接安装 CUDA 工具包:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal[[role="bare"] [role="bare"]https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type =runfilelocal]。

Running the installer

现在,完成二进制文件下载后,打开终端并执行以下命令来运行安装程序,然后按照屏幕上的说明操作 −

sh cuda_9.0.176_384.81_linux-run

Modify Bash profile script

在 Linux 电脑上安装 CUDA 工具包后,你需要修改 BASH 个人资料脚本。为此,首先在文本编辑器中打开 $HOME/.bashrc 文件。现在,在脚本的末尾,包含以下代码行 −

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

Installing cuDNN libraries

最后,我们需要安装 cuDNN 二进制文件。可以从 NVIDIA 网站 https://developer.nvidia.com/rdp/form/cudnn-download-survey 下载。使用 CUDA 9.0 版本时,cuDNN 7.4.1 会运行良好。基本上,cuDNN 是 CUDA 之上的一个层,由 CNTK 使用。

下载 Linux 版本后,使用以下命令将其解压到 /usr/local/cuda-9.0 文件夹 −

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

根据需要更改路径到文件名。